Bird
Raised Fist0
dbtdata~20 mins

Column descriptions in dbt - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Column Description Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Purpose of column descriptions in dbt

What is the main purpose of adding column descriptions in a dbt model?

ATo provide clear explanations of what each column represents for better understanding and documentation.
BTo change the data type of the column during model compilation.
CTo automatically generate SQL queries for data transformation.
DTo enforce data validation rules on the column values.
Attempts:
2 left
💡 Hint

Think about why documentation is important in data projects.

Predict Output
intermediate
1:30remaining
Output of dbt column description YAML snippet

Given the following dbt schema YAML snippet, what will be the description of the customer_id column in the generated documentation?

dbt
models:
  - name: orders
    columns:
      - name: customer_id
        description: "Unique identifier for each customer"
A"Primary key for orders table"
B"Unique identifier for each customer"
C"Date when the order was placed"
D"Total amount of the order"
Attempts:
2 left
💡 Hint

Look at the description field under the customer_id column.

data_output
advanced
1:30remaining
Effect of missing column descriptions in dbt docs

What will be the output in the dbt documentation site for a column that has no description provided in the schema YAML?

AThe data type of the column shown instead of description.
BAn error message preventing documentation generation.
CThe column name repeated as the description automatically.
D"No description provided" or blank space under the column description section.
Attempts:
2 left
💡 Hint

Consider how dbt handles optional documentation fields.

🔧 Debug
advanced
2:00remaining
Identify the error in this dbt column description YAML

Which option contains a syntax error that will cause dbt to fail when parsing this column description YAML?

dbt
models:
  - name: sales
    columns:
      - name: sale_date
        description: "Date of the sale"
      - name: amount
        description "Total sale amount"
AIncorrect indentation for the 'sale_date' column description.
BUsing double quotes instead of single quotes for descriptions.
CMissing colon after 'description' for the 'amount' column.
DMissing dash before the 'amount' column name.
Attempts:
2 left
💡 Hint

Look carefully at the line defining the description for the 'amount' column.

🚀 Application
expert
2:30remaining
Using column descriptions to improve data quality communication

You want to use column descriptions in dbt to communicate data quality expectations for a status column that only accepts values 'active', 'inactive', or 'pending'. Which description best achieves this goal?

A"Status of the user account; valid values are 'active', 'inactive', or 'pending'."
B"User account status."
C"Contains various status codes."
D"Indicates if the user is logged in or not."
Attempts:
2 left
💡 Hint

Think about how to clearly communicate allowed values in documentation.

Practice

(1/5)
1. What is the main purpose of adding column descriptions in dbt?
easy
A. To change the data type of columns
B. To create new columns in the model
C. To explain what each column means for better understanding
D. To write SQL queries inside the YAML file

Solution

  1. Step 1: Understand the role of column descriptions

    Column descriptions provide explanations about what each column represents in the data model.
  2. Step 2: Differentiate from other YAML uses

    They do not change data types, create columns, or contain SQL code; they only describe columns.
  3. Final Answer:

    To explain what each column means for better understanding -> Option C
  4. Quick Check:

    Column descriptions = explain columns [OK]
Hint: Descriptions explain columns, not change data or structure [OK]
Common Mistakes:
  • Thinking descriptions change data types
  • Confusing descriptions with SQL code
  • Assuming descriptions create new columns
2. Which of the following is the correct syntax to add a column description in a dbt YAML file?
easy
A. description: customer_id: 'Unique ID for each customer'
B. columns: - name: customer_id description: 'Unique ID for each customer'
C. columns: customer_id: 'Unique ID for each customer'
D. columns: - customer_id: 'Unique ID for each customer'

Solution

  1. Step 1: Recall YAML structure for columns in dbt

    The correct format uses a list under columns: with each item having name and description keys.
  2. Step 2: Compare options to correct format

    columns: - name: customer_id description: 'Unique ID for each customer' matches the correct YAML syntax with dash, name, and description keys properly indented.
  3. Final Answer:

    columns: - name: customer_id description: 'Unique ID for each customer' -> Option B
  4. Quick Check:

    YAML columns list with name and description = columns: - name: customer_id description: 'Unique ID for each customer' [OK]
Hint: Use dash list with name and description keys in YAML [OK]
Common Mistakes:
  • Using key-value pairs without dash list
  • Putting description outside columns section
  • Incorrect indentation or missing name key
3. Given this YAML snippet in a dbt model:
columns:
  - name: order_id
    description: 'Unique order identifier'
  - name: order_date
    description: 'Date when order was placed'
What will dbt show for the order_date column in documentation?
medium
A. No description available
B. Unique order identifier
C. order_date
D. Date when order was placed

Solution

  1. Step 1: Locate the description for order_date

    The YAML shows order_date has description 'Date when order was placed'.
  2. Step 2: Understand dbt documentation behavior

    dbt uses the description text to show in docs, not the column name or other text.
  3. Final Answer:

    Date when order was placed -> Option D
  4. Quick Check:

    dbt docs show column description text [OK]
Hint: dbt docs show the description text, not column name [OK]
Common Mistakes:
  • Confusing column name with description
  • Assuming no description if present
  • Picking wrong description text
4. You wrote this YAML for column descriptions but dbt docs shows no descriptions:
columns:
  - name: user_id
    description 'User unique ID'
What is the error causing descriptions not to appear?
medium
A. Missing colon after description key
B. Wrong indentation of columns
C. Missing dash before name
D. Description text should be uppercase

Solution

  1. Step 1: Check YAML syntax for description key

    The line description 'User unique ID' is missing a colon after description.
  2. Step 2: Understand YAML parsing impact

    Without the colon, YAML is invalid and dbt cannot read the description, so docs show no description.
  3. Final Answer:

    Missing colon after description key -> Option A
  4. Quick Check:

    YAML keys need colon after them [OK]
Hint: Always put colon after YAML keys like description [OK]
Common Mistakes:
  • Forgetting colon after keys
  • Incorrect indentation
  • Assuming case sensitivity matters
5. You want to add descriptions for multiple columns in a dbt model YAML file. Which approach correctly documents two columns product_id and price with descriptions, ensuring dbt docs will display them properly?
hard
A. columns: - name: product_id description: 'ID of the product' - name: price description: 'Price in USD'
B. columns: product_id: 'ID of the product' price: 'Price in USD'
C. columns: - product_id: 'ID of the product' - price: 'Price in USD'
D. columns: name: product_id description: 'ID of the product' name: price description: 'Price in USD'

Solution

  1. Step 1: Recall correct YAML list format for multiple columns

    Each column must be an item in a list with name and description keys.
  2. Step 2: Evaluate each option's structure

    columns: - name: product_id description: 'ID of the product' - name: price description: 'Price in USD' correctly uses a list with two items, each having name and description properly indented.
  3. Final Answer:

    columns: - name: product_id description: 'ID of the product' - name: price description: 'Price in USD' -> Option A
  4. Quick Check:

    List of columns with name and description keys = columns: - name: product_id description: 'ID of the product' - name: price description: 'Price in USD' [OK]
Hint: Use dash list with name and description for each column [OK]
Common Mistakes:
  • Using key-value pairs without dash list
  • Repeating keys without list items
  • Incorrect indentation breaking YAML