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
Recall & Review
beginner
What is a seed in dbt?
A seed in dbt is a CSV file that contains static reference data. It is loaded into the data warehouse as a table for easy use in transformations.
Click to reveal answer
beginner
Why use seeds for static reference data in dbt?
Seeds allow you to manage small, unchanging datasets like country codes or product categories directly in your project, making them easy to version control and use in models.
Click to reveal answer
beginner
How do you load a seed file into your data warehouse using dbt?
You run the command dbt seed. This reads CSV files in the seeds folder and creates tables in your warehouse.
Click to reveal answer
beginner
Where do you place seed CSV files in a dbt project?
Seed CSV files are placed in the seeds/ directory inside your dbt project folder.
Click to reveal answer
intermediate
Can you transform seed data directly in dbt models?
Yes, once seeds are loaded as tables, you can reference and transform them in your dbt models like any other table.
Click to reveal answer
What command do you use to load seed files into your warehouse in dbt?
Adbt seed
Bdbt run
Cdbt test
Ddbt compile
✗ Incorrect
The dbt seed command loads CSV files from the seeds folder into your data warehouse as tables.
Where should you store static reference data CSV files in a dbt project?
Aseeds/
Bmodels/
Csnapshots/
Dmacros/
✗ Incorrect
Seed CSV files belong in the seeds/ directory to be recognized by dbt.
What is a key benefit of using seeds for static data?
AThey run faster than models
BThey automatically update from external sources
CThey replace all models
DThey allow version control of static data
✗ Incorrect
Seeds let you keep static data in your project files, so you can track changes with version control.
Can you join seed tables with other tables in dbt models?
ANo, seeds are read-only
BYes, seeds become regular tables after loading
COnly if you convert seeds to models
DOnly in snapshots
✗ Incorrect
Once loaded, seed data is a normal table and can be joined or transformed like any other table.
Which of these is NOT true about seeds in dbt?
ASeeds are stored as CSV files
BSeeds can be used for static reference data
CSeeds automatically update from APIs
DSeeds are loaded with dbt seed command
✗ Incorrect
Seeds do not update automatically from APIs; they are static files you manage manually.
Explain what seeds are in dbt and why they are useful for static reference data.
Think about how you keep small, unchanging data in your project.
You got /4 concepts.
Describe the steps to add and use a seed file in a dbt project.
Consider the file location, command, and usage in models.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of using seeds in dbt?
easy
A. To create dynamic tables based on SQL queries
B. To load static reference data from CSV files into your database
C. To schedule dbt runs automatically
D. To write Python scripts for data transformation
Solution
Step 1: Understand what seeds are in dbt
Seeds are CSV files that contain static reference data you want to load into your database.
Step 2: Identify the main use of seeds
Seeds let you easily add fixed data tables without writing SQL queries.
Final Answer:
To load static reference data from CSV files into your database -> Option B
Quick Check:
Seeds = static CSV data load [OK]
Hint: Seeds = fixed CSV data loaded as tables [OK]
Common Mistakes:
Confusing seeds with models that run SQL
Thinking seeds schedule dbt runs
Assuming seeds are for dynamic data
2. Which command do you run to load or refresh seed data in your database?
easy
A. dbt test
B. dbt run
C. dbt seed
D. dbt compile
Solution
Step 1: Recall dbt commands related to seeds
The command dbt seed loads CSV seed files into the database as tables.
Step 2: Differentiate from other commands
dbt run runs models, dbt test runs tests, and dbt compile compiles SQL but does not load seeds.
Final Answer:
dbt seed -> Option C
Quick Check:
Load seeds = dbt seed [OK]
Hint: Use 'dbt seed' to load CSV data tables [OK]
Common Mistakes:
Using 'dbt run' to load seeds
Confusing 'dbt test' with loading data
Thinking 'dbt compile' loads data
3. Given a seed CSV file countries.csv with columns id and name, what will be the output of this dbt model SQL?
select * from {{ ref('countries') }}
medium
A. A table with all rows and columns from countries.csv
B. Only the id column from countries.csv
C. An empty table because seeds are not loaded automatically
D. An error because seeds cannot be referenced
Solution
Step 1: Understand how seeds are referenced in dbt
Seeds become tables in the database and can be referenced using ref() like models.
Step 2: Predict the query output
The query selects all columns and rows from the seed table countries, so it returns the full CSV data.
Final Answer:
A table with all rows and columns from countries.csv -> Option A
Quick Check:
ref(seed) = full seed table [OK]
Hint: ref(seed_name) returns full seed table [OK]
Common Mistakes:
Thinking seeds cannot be referenced
Assuming seeds load empty tables
Expecting partial columns only
4. You ran dbt seed but your seed table did not update. Which of these is the most likely cause?
medium
A. You forgot to add the seed CSV file in the seeds folder
B. You ran dbt run instead of dbt seed
C. Your seed CSV file has syntax errors
D. You did not configure the seed in dbt_project.yml
Solution
Step 1: Check seed discovery mechanism
dbt automatically discovers and loads CSV files from the seeds/ folder with dbt seed.
Step 2: Identify why table doesn't update
If the CSV file is missing from the seeds/ folder, dbt seed runs successfully but skips that seed, leaving the table unchanged.
Final Answer:
You forgot to add the seed CSV file in the seeds folder -> Option A
Quick Check:
Seeds folder missing CSV = no update [OK]
Hint: Place seed CSVs in seeds/ folder for dbt seed [OK]
Common Mistakes:
Thinking seeds require config in dbt_project.yml
Confusing dbt run with dbt seed
CSV syntax errors (would cause explicit failure)
5. You want to use a seed file currencies.csv with columns code and symbol inside a model to join with a transactions table on currency_code. Which is the correct way to write the join in your model SQL?
hard
A. select t.*, c.symbol from transactions t join currencies c on t.currency_code = c.code
B. select t.*, c.symbol from transactions t join currencies.csv c on t.currency_code = c.code
C. select t.*, c.symbol from transactions t join seed('currencies') c on t.currency_code = c.code
D. select t.*, c.symbol from transactions t join {{ ref('currencies') }} c on t.currency_code = c.code
Solution
Step 1: Recall how to reference seeds in dbt models
Seeds are referenced using {{ ref('seed_name') }} to get the table name in SQL.
Step 2: Identify the correct join syntax
Joining transactions with {{ ref('currencies') }} correctly uses the seed table in the join.
Final Answer:
select t.*, c.symbol from transactions t join {{ ref('currencies') }} c on t.currency_code = c.code -> Option D
Quick Check:
Join seed with ref() = correct [OK]
Hint: Use ref('seed_name') to join seed tables in models [OK]