Bird
Raised Fist0
dbtdata~10 mins

Model naming conventions in dbt - Interactive Code Practice

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 name a dbt model file correctly.

dbt
models/[1].sql
Drag options to blanks, or click blank then click option'
Acustomer-orders
BCustomerOrders
Ccustomer_orders
Dcustomer orders
Attempts:
3 left
💡 Hint
Common Mistakes
Using camel case or spaces in model file names.
Using hyphens instead of underscores.
2fill in blank
medium

Complete the code to define a model name in dbt's dbt_project.yml file.

dbt
models:
  my_project:
    [1]:
      materialized: table
Drag options to blanks, or click blank then click option'
Acustomer_orders
BCustomerOrders
Ccustomer-orders
Dcustomer orders
Attempts:
3 left
💡 Hint
Common Mistakes
Using camel case or spaces in model names.
Using hyphens instead of underscores.
3fill in blank
hard

Fix the error in the model name to follow dbt naming conventions.

dbt
select * from [1]
Drag options to blanks, or click blank then click option'
Acustomer orders
BCustomerOrders
Ccustomer-orders
Dcustomer_orders
Attempts:
3 left
💡 Hint
Common Mistakes
Using uppercase letters in model names.
Using spaces or hyphens instead of underscores.
4fill in blank
hard

Fill both blanks to create a dbt model file path and name following conventions.

dbt
models/[1]/[2].sql
Drag options to blanks, or click blank then click option'
Astaging
BStaging
Ccustomer_orders
DCustomerOrders
Attempts:
3 left
💡 Hint
Common Mistakes
Using uppercase letters in folder or file names.
Using camel case instead of underscores.
5fill in blank
hard

Fill all three blanks to define a model name, description, and materialization in dbt_project.yml following conventions.

dbt
models:
  my_project:
    [1]:
      description: "[2]"
      materialized: [3]
Drag options to blanks, or click blank then click option'
Acustomer_orders
BCustomer orders data
Ctable
DCustomerOrders
Attempts:
3 left
💡 Hint
Common Mistakes
Using uppercase or camel case for model names.
Using invalid materialization types.

Practice

(1/5)
1. Which of the following is the best practice for naming a dbt model?
easy
A. Use clear, lowercase names with underscores to separate words
B. Use uppercase letters and spaces between words
C. Use special characters like # or $ in the name
D. Use very long names without any separators

Solution

  1. Step 1: Understand dbt naming conventions

    dbt recommends using clear, lowercase names with underscores to separate words for readability and consistency.
  2. Step 2: Evaluate each option

    Use clear, lowercase names with underscores to separate words follows the recommended style. Options A, B, and D do not follow best practices.
  3. Final Answer:

    Use clear, lowercase names with underscores to separate words -> Option A
  4. Quick Check:

    Clear lowercase with underscores = C [OK]
Hint: Choose lowercase with underscores for clarity [OK]
Common Mistakes:
  • Using uppercase letters in model names
  • Including spaces or special characters
  • Using inconsistent naming styles
2. Which of these is a valid dbt model name?
easy
A. customer_orders
B. SalesReport2023
C. Inventory-List
D. Profit$Summary

Solution

  1. Step 1: Check naming rules for dbt models

    Model names should be lowercase and use underscores to separate words, avoiding special characters and uppercase letters.
  2. Step 2: Analyze each option

    customer_orders uses lowercase letters and underscores only, making it valid. Options B, C, and D contain uppercase letters or special characters.
  3. Final Answer:

    customer_orders -> Option A
  4. Quick Check:

    Lowercase with underscores = A [OK]
Hint: Pick lowercase with underscores, no special chars [OK]
Common Mistakes:
  • Using uppercase letters in model names
  • Including hyphens or special characters
  • Starting names with numbers
3. Given the following dbt model names, which one best describes a model that summarizes monthly sales data?
monthly_sales_summary
salesMonthlySummary
monthly-sales-summary
MonthlySalesSummary
medium
A. MonthlySalesSummary
B. salesMonthlySummary
C. monthly-sales-summary
D. monthly_sales_summary

Solution

  1. Step 1: Identify the best naming style for dbt models

    dbt prefers lowercase names with underscores to separate words for clarity and consistency.
  2. Step 2: Compare each model name

    monthly_sales_summary uses lowercase with underscores and clearly describes the model. Options A and B use camel case or uppercase letters, and C uses hyphens, which are not recommended.
  3. Final Answer:

    monthly_sales_summary -> Option D
  4. Quick Check:

    Lowercase with underscores = D [OK]
Hint: Look for lowercase with underscores describing content [OK]
Common Mistakes:
  • Using camelCase or PascalCase
  • Using hyphens instead of underscores
  • Ignoring clarity in names
4. You have a dbt model named CustomerOrders. What is the issue with this name and how can you fix it?
medium
A. It uses underscores incorrectly; rename to customerorders
B. It uses uppercase letters; rename to customer_orders
C. It is too short; rename to customer_orders_summary
D. It uses special characters; rename to customer-orders

Solution

  1. Step 1: Identify naming convention violation

    The model name uses uppercase letters, which is against dbt's lowercase naming convention.
  2. Step 2: Apply correct naming style

    Rename the model to lowercase letters with underscores: customer_orders.
  3. Final Answer:

    It uses uppercase letters; rename to customer_orders -> Option B
  4. Quick Check:

    Uppercase letters not allowed = A [OK]
Hint: Rename uppercase to lowercase with underscores [OK]
Common Mistakes:
  • Ignoring uppercase letters in names
  • Removing underscores instead of fixing case
  • Adding unnecessary special characters
5. You want to create a dbt model that calculates the total revenue per product category for the last year. Which model name follows best practices and clearly describes the model's purpose?
hard
A. totalRevenuePerCategoryLastYear
B. Total_Revenue_Per_Category_Last_Year
C. total_revenue_per_category_last_year
D. revenue-category-last-year

Solution

  1. Step 1: Understand naming best practices

    dbt model names should be lowercase, use underscores, and clearly describe the model's content.
  2. Step 2: Evaluate each option

    total_revenue_per_category_last_year uses lowercase letters and underscores, and clearly describes the model. Options A and C use uppercase or camel case, and D uses hyphens.
  3. Final Answer:

    total_revenue_per_category_last_year -> Option C
  4. Quick Check:

    Lowercase with underscores and clear description = B [OK]
Hint: Use lowercase with underscores and descriptive words [OK]
Common Mistakes:
  • Using camelCase or PascalCase
  • Using hyphens instead of underscores
  • Using uppercase letters