Bird
Raised Fist0
dbtdata~10 mins

Why documentation makes data discoverable in dbt - Test Your Understanding

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to add a description to a model in dbt.

dbt
models:
  - name: customers
    description: "[1]"
Drag options to blanks, or click blank then click option'
ACreate a table
BLoad data
CRun the model
DList of customers with details
Attempts:
3 left
💡 Hint
Common Mistakes
Using commands instead of descriptions
Leaving the description empty
2fill in blank
medium

Complete the code to document a column in a dbt model.

dbt
columns:
  - name: customer_id
    description: "[1]"
Drag options to blanks, or click blank then click option'
AUnique identifier for each customer
BCustomer's age
CDate of purchase
DTotal sales amount
Attempts:
3 left
💡 Hint
Common Mistakes
Using unrelated descriptions
Leaving descriptions vague
3fill in blank
hard

Fix the error in the dbt schema file to make documentation discoverable.

dbt
version: 2
models:
  - name: orders
    description: "Order details"
    columns:
      - name: order_id
        [1]: "Unique order number"
Drag options to blanks, or click blank then click option'
Adoc
Bdesc
Cdescription
Ddetails
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect keys like 'desc' or 'doc'
Misspelling 'description'
4fill in blank
hard

Fill both blanks to create a documented test for a column in dbt.

dbt
tests:
  - [1]:
      severity: [2]
Drag options to blanks, or click blank then click option'
Anot_null
Bwarn
Cerror
Dunique
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'unique' test when checking for nulls
Setting severity to an invalid value
5fill in blank
hard

Fill all three blanks to create a documented source in dbt.

dbt
sources:
  - name: [1]
    description: "[2]"
    tables:
      - name: [3]
Drag options to blanks, or click blank then click option'
Araw_data
BRaw data from sales system
Ctransactions
Dcustomers
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing source and table names
Leaving description empty

Practice

(1/5)
1. Why is documentation important in dbt projects for data discoverability?
easy
A. It speeds up the data processing time.
B. It explains data clearly so users can find and understand it easily.
C. It automatically fixes errors in data models.
D. It encrypts data for security.

Solution

  1. Step 1: Understand the purpose of documentation in dbt

    Documentation provides clear explanations about data models and columns.
  2. Step 2: Connect documentation to data discoverability

    Clear explanations help users find and understand data easily, improving discoverability.
  3. Final Answer:

    It explains data clearly so users can find and understand it easily. -> Option B
  4. Quick Check:

    Documentation improves discoverability [OK]
Hint: Documentation means clear explanations for easy data finding [OK]
Common Mistakes:
  • Confusing documentation with data processing speed
  • Thinking documentation fixes data errors automatically
  • Assuming documentation encrypts data
2. Which of the following is the correct way to add a description to a dbt model in YAML?
easy
A. models: - name: sales description: 'Contains sales data by region'
B. models: name: sales description: 'Contains sales data by region'
C. model: - name: sales description: 'Contains sales data by region'
D. models: - sales: description: 'Contains sales data by region'

Solution

  1. Step 1: Recall YAML structure for dbt model descriptions

    The correct syntax uses 'models:' followed by a list with '- name:' and 'description:' keys.
  2. Step 2: Identify the option matching this structure

    models: - name: sales description: 'Contains sales data by region' correctly uses a list item with 'name' and 'description' under 'models'.
  3. Final Answer:

    models:\n - name: sales\n description: 'Contains sales data by region' -> Option A
  4. Quick Check:

    Correct YAML list syntax [OK]
Hint: YAML lists use dash and indentation for model descriptions [OK]
Common Mistakes:
  • Missing dash for list items
  • Using singular 'model' instead of 'models'
  • Incorrect indentation breaking YAML format
3. Given this YAML snippet in a dbt model file:
models:
  - name: customers
    description: 'Customer details including name and email'
  - name: orders
    description: 'Order records with dates and amounts'
What will dbt documentation show for the 'orders' model?
medium
A. Error loading description
B. Customer details including name and email
C. Order records with dates and amounts
D. No description available

Solution

  1. Step 1: Locate the 'orders' model in the YAML snippet

    The 'orders' model is listed with a description: 'Order records with dates and amounts'.
  2. Step 2: Understand dbt documentation usage

    dbt uses the description text to show model info in docs.
  3. Final Answer:

    Order records with dates and amounts -> Option C
  4. Quick Check:

    Model description matches YAML text [OK]
Hint: Match model name to its description in YAML [OK]
Common Mistakes:
  • Mixing descriptions between models
  • Assuming missing description means error
  • Confusing model names
4. You wrote this YAML for a dbt model description but the docs show no description:
models:
  name: products
  description: 'Product catalog details'
What is the likely error?
medium
A. Missing dash (-) before 'name' to define list item
B. Incorrect key 'description' instead of 'desc'
C. YAML does not support descriptions
D. Model name should be uppercase

Solution

  1. Step 1: Check YAML list syntax for models

    dbt expects 'models:' followed by a list indicated by '-'. Missing dash means no list item.
  2. Step 2: Identify the missing dash before 'name'

    Without '-', YAML treats 'name' as a key under 'models', not a list item, so description is ignored.
  3. Final Answer:

    Missing dash (-) before 'name' to define list item -> Option A
  4. Quick Check:

    Dash defines list items in YAML [OK]
Hint: Always use dash for list items in YAML [OK]
Common Mistakes:
  • Using wrong key names
  • Thinking YAML disallows descriptions
  • Ignoring YAML indentation rules
5. You want to improve data discoverability by adding descriptions to columns in a dbt model. Which YAML snippet correctly documents the 'customer_id' column with a description?
hard
A. models: - name: customers columns: - name: customer_id desc: 'Unique ID for each customer'
B. models: - name: customers columns: customer_id: 'Unique ID for each customer'
C. models: - name: customers columns: - customer_id: 'Unique ID for each customer'
D. models: - name: customers columns: - name: customer_id description: 'Unique ID for each customer'

Solution

  1. Step 1: Recall correct YAML structure for column documentation in dbt

    Columns are listed as items with '- name:' and 'description:' keys.
  2. Step 2: Identify the option matching this structure

    models: - name: customers columns: - name: customer_id description: 'Unique ID for each customer' correctly uses '- name: customer_id' and 'description' key.
  3. Final Answer:

    models:\n - name: customers\n columns:\n - name: customer_id\n description: 'Unique ID for each customer' -> Option D
  4. Quick Check:

    Correct column description syntax [OK]
Hint: Use '- name:' and 'description:' for columns in YAML [OK]
Common Mistakes:
  • Using key-value pairs without dash for columns
  • Using 'desc' instead of 'description'
  • Incorrect indentation breaking YAML