How To Use dbt Seeds?

Why dbt Seeds? Set up & use dbt Seeds effectively

How To Use dbt Seeds?

dbt (short for "data build tool") is a popular open-source software application used for transforming and testing data in analytics pipelines, typically stored in data warehouses. It's written in Python and uses SQL to define transformations. dbt allows data analysts and engineers to transform data by creating, documenting, and executing SQL-based data transformation workflows.

What is dbt Seeds?

dbt Seeds is a feature that lets you upload smaller datasets directly from CSV files into your data warehouse. Think of it as a handy tool for managing 'lightweight' data - stuff like date dimension tables, country lists, or mappings not in the source system. It's easier to use than many data loading methods because it treats CSV data just like any other table in the database.

However, remember it's only for smaller data sets - if you're dealing with lots of data, you'll need a more powerful data loading technique.

Why dbt Seeds?

dbt Seeds are all about making your life easier. Need to load CSV files into your database? dbt Seeds is there to lend a helping hand. Have static data that's not large, but is still a crucial part of your data transformation process? dbt Seeds is your answer.

Though, before we start celebrating, remember that dbt Seeds is meant for small data sets. Larger volumes of data need more heavyweight techniques.

Setting Up dbt Seeds

So you're ready to dip your toes into dbt Seeds? Let's get started. First, you're going to need a CSV file with your data - and it's got to be well-structured. Put a header row with column names, you know the drill.

Next, we're going to place that CSV file into the seeds directory of the dbt project. If it doesn't exist, just create it. Here's what it should look like:

Example of how to set up dbt seeds

After that, let's let dbt know about your seed file in the dbt_project.yml file. Here's how:

Example of how to add dbt seeds in dbt project

Utilizing dbt Seeds

So now that your CSV file is in place, let's load that data into your database. It's as simple as typing dbt seed into your terminal. And voila! You've got a table in your database with the same name as your CSV file (the '.csv' extension removed), chock-full of data from your file.

Now that data can be referenced in your dbt models just by using the name of the seed file (with the .csv extension removed). If your project's named analytics and your file was your_file.csv, you'd reference the data like this:

Example of how to call dbt seeds in order to use in dbt/SQL workflows.


To sum it all up, dbt Seeds is a brilliant tool for managing small static datasets. We've walked through the basics of using dbt Seeds today, right from setting up the CSV file to referencing it in your dbt models. Keep in mind that as with any tool, the trick is knowing when to use it.

New Release

Get in Touch to Learn More

See Why Users Love CastorDoc
Fantastic tool for data discovery and documentation

“[I like] The easy to use interface and the speed of finding the relevant assets that you're looking for in your database. I also really enjoy the score given to each table, [which] lets you prioritize the results of your queries by how often certain data is used.” - Michal P., Head of Data