Bird
Raised Fist0
dbtdata~3 mins

Why documentation makes data discoverable in dbt - The Real Reasons

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
The Big Idea

What if you could find and trust any data instantly without endless questions?

The Scenario

Imagine you join a new team with hundreds of data tables and no notes. You ask around, but no one remembers what each table means or how to use it.

The Problem

Without documentation, you waste hours guessing what data means. You make mistakes using wrong tables or columns. It's frustrating and slows down your work.

The Solution

Good documentation explains what each table and column means, how data is created, and how to use it. This makes finding and trusting data easy and fast.

Before vs After
Before
SELECT * FROM sales_data WHERE date > '2023-01-01'; -- but what is sales_data?
After
-- sales_data: contains all sales transactions with customer info
SELECT * FROM sales_data WHERE date > '2023-01-01';
What It Enables

With clear documentation, anyone can quickly find the right data and understand it, making teamwork smooth and decisions smarter.

Real Life Example

A marketing analyst uses documented data models to find customer purchase trends without asking the data team, saving days of back-and-forth.

Key Takeaways

Documentation saves time by explaining data clearly.

It reduces errors by making data meaning obvious.

It helps teams work better together with shared understanding.

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