Bird
Raised Fist0
Snowflakecloud~20 mins

Data lineage tracking in Snowflake - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Data Lineage Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding Data Lineage Purpose

What is the primary purpose of data lineage tracking in a Snowflake data warehouse?

ATo automatically scale compute resources based on query load.
BTo encrypt data at rest and in transit within Snowflake.
CTo monitor and visualize the flow of data from source to destination for auditing and troubleshooting.
DTo create backups of data at regular intervals.
Attempts:
2 left
💡 Hint

Think about why knowing where data comes from and where it goes is important.

❓ Architecture
intermediate
2:00remaining
Snowflake Data Lineage Components

Which Snowflake feature is essential to capture detailed data lineage information automatically?

ASnowflake Access History
BSnowflake Query History
CSnowflake Tasks
DSnowflake Streams
Attempts:
2 left
💡 Hint

Consider which feature records executed queries and their details.

❓ Configuration
advanced
3:00remaining
Query to Extract Table Lineage

Given Snowflake's QUERY_HISTORY view, which SQL query correctly extracts the source tables used in queries for lineage tracking?

Snowflake
SELECT query_id, array_agg(DISTINCT referenced_object_name) AS source_tables FROM snowflake.account_usage.query_history WHERE start_time > CURRENT_TIMESTAMP() - INTERVAL '1 DAY' GROUP BY query_id;
ASELECT query_id, array_agg(DISTINCT referenced_object_name) AS source_tables FROM snowflake.account_usage.query_history WHERE start_time > CURRENT_TIMESTAMP() - INTERVAL '1 DAY' GROUP BY query_id;
BSELECT query_id, array_agg(DISTINCT table_name) AS source_tables FROM snowflake.account_usage.query_history WHERE start_time > CURRENT_TIMESTAMP() - INTERVAL '1 DAY' GROUP BY query_id;
CSELECT query_id, array_agg(DISTINCT referenced_table) AS source_tables FROM snowflake.account_usage.query_history WHERE start_time > CURRENT_TIMESTAMP() - INTERVAL '1 DAY' GROUP BY query_id;
DSELECT query_id, array_agg(DISTINCT source_table) AS source_tables FROM snowflake.account_usage.query_history WHERE start_time > CURRENT_TIMESTAMP() - INTERVAL '1 DAY' GROUP BY query_id;
Attempts:
2 left
💡 Hint

Check the exact column names in the QUERY_HISTORY view for referenced tables.

❓ security
advanced
2:00remaining
Securing Data Lineage Metadata

Which Snowflake feature should you use to restrict access to sensitive data lineage metadata to only authorized users?

ARow Access Policies
BNetwork Policies
CResource Monitors
DVirtual Warehouses
Attempts:
2 left
💡 Hint

Think about controlling access to specific rows or data within tables.

❓ service_behavior
expert
2:30remaining
Impact of Query History Retention on Lineage

Snowflake retains query history for 365 days by default. What is the impact on data lineage tracking if this retention period is reduced to 7 days?

ALineage tracking will stop completely because query history is mandatory for lineage.
BLineage tracking will continue unaffected because lineage data is stored separately.
CLineage tracking will improve because less data means faster processing.
DLineage tracking will only be possible for queries executed within the last 7 days, limiting historical analysis.
Attempts:
2 left
💡 Hint

Consider how query history retention affects available lineage data.

Practice

(1/5)
1. What is the main purpose of data lineage tracking in Snowflake?
easy
A. To increase storage capacity automatically
B. To show where data comes from and how it moves
C. To encrypt data at rest
D. To create user accounts

Solution

  1. Step 1: Understand data lineage concept

    Data lineage tracks the origin and flow of data through systems.
  2. Step 2: Match with Snowflake purpose

    Snowflake uses lineage to show data source and movement, not storage or encryption.
  3. Final Answer:

    To show where data comes from and how it moves -> Option B
  4. Quick Check:

    Data lineage = data origin and flow [OK]
Hint: Data lineage means tracking data origin and flow [OK]
Common Mistakes:
  • Confusing lineage with storage management
  • Thinking lineage is about encryption
  • Mixing lineage with user management
2. Which Snowflake command helps you explore data lineage by showing object dependencies?
easy
A. SHOW OBJECT DEPENDENCIES
B. SHOW USERS
C. DESCRIBE TABLE
D. CREATE WAREHOUSE

Solution

  1. Step 1: Identify command for lineage

    SHOW OBJECT DEPENDENCIES lists how objects depend on each other, revealing lineage.
  2. Step 2: Eliminate unrelated commands

    SHOW USERS lists users, DESCRIBE TABLE shows table structure, CREATE WAREHOUSE creates compute resources.
  3. Final Answer:

    SHOW OBJECT DEPENDENCIES -> Option A
  4. Quick Check:

    Lineage command = SHOW OBJECT DEPENDENCIES [OK]
Hint: Use SHOW OBJECT DEPENDENCIES to see lineage [OK]
Common Mistakes:
  • Using SHOW USERS for lineage
  • Confusing DESCRIBE TABLE with lineage
  • Thinking CREATE WAREHOUSE shows dependencies
3. Given the following Snowflake query:
SHOW OBJECT DEPENDENCIES LIKE 'SALES_DATA';

What does this query return?
medium
A. List of users who accessed SALES_DATA
B. List of warehouses running SALES_DATA queries
C. List of tables with similar names to SALES_DATA
D. List of objects that depend on or are used by SALES_DATA

Solution

  1. Step 1: Understand SHOW OBJECT DEPENDENCIES usage

    This command shows dependencies related to the specified object, here SALES_DATA.
  2. Step 2: Interpret LIKE filter

    LIKE 'SALES_DATA' filters to objects named SALES_DATA, showing their dependencies.
  3. Final Answer:

    List of objects that depend on or are used by SALES_DATA -> Option D
  4. Quick Check:

    SHOW OBJECT DEPENDENCIES LIKE = dependency list [OK]
Hint: SHOW OBJECT DEPENDENCIES lists related objects [OK]
Common Mistakes:
  • Thinking it shows user access logs
  • Confusing with warehouse usage
  • Assuming it lists similar table names
4. You run SHOW OBJECT DEPENDENCIES LIKE 'CUSTOMER_ORDERS'; but get no results. What is a likely reason?
medium
A. The object name is misspelled or does not exist
B. You need to create a warehouse first
C. SHOW OBJECT DEPENDENCIES does not work on tables
D. Your user lacks SELECT permission on CUSTOMER_ORDERS

Solution

  1. Step 1: Check object existence

    No results usually mean the object name is wrong or missing in the database.
  2. Step 2: Verify command applicability and permissions

    SHOW OBJECT DEPENDENCIES works on tables; warehouse creation is unrelated; lack of SELECT permission does not hide dependencies.
  3. Final Answer:

    The object name is misspelled or does not exist -> Option A
  4. Quick Check:

    No results = wrong or missing object name [OK]
Hint: Check spelling and existence if no dependencies show [OK]
Common Mistakes:
  • Assuming warehouse needed for lineage
  • Thinking permissions block SHOW OBJECT DEPENDENCIES
  • Believing tables can't have dependencies
5. You want to track data lineage for a complex pipeline involving multiple views and tables in Snowflake. Which approach best ensures accurate lineage tracking?
hard
A. Only track lineage for base tables, ignoring views
B. Manually document dependencies in a spreadsheet
C. Use SHOW OBJECT DEPENDENCIES and automate lineage extraction with Snowflake metadata queries
D. Rely on user memory to recall data flow

Solution

  1. Step 1: Understand lineage complexity

    Complex pipelines need automated, accurate tracking to avoid errors and omissions.
  2. Step 2: Evaluate options for accuracy and scalability

    Manual docs and memory are error-prone; ignoring views misses dependencies; using SHOW OBJECT DEPENDENCIES with automation is best practice.
  3. Final Answer:

    Use SHOW OBJECT DEPENDENCIES and automate lineage extraction with Snowflake metadata queries -> Option C
  4. Quick Check:

    Automate lineage with SHOW OBJECT DEPENDENCIES for accuracy [OK]
Hint: Automate lineage extraction using SHOW OBJECT DEPENDENCIES [OK]
Common Mistakes:
  • Relying on manual documentation only
  • Ignoring views in lineage tracking
  • Trusting memory instead of tools
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard