Skip to main content

Set up the dbt project

In this part of the tutorial, you will:

Step 1: Download the sample dbt project

Let's get started by downloading a sample dbt project. We'll use the standard dbt Jaffle Shop example.

  1. First, create a folder that will ultimately contain both your dbt project and Dagster code.

    mkdir tutorial-dbt-dagster
  2. Then, navigate into that folder:

    cd tutorial-dbt-dagster
  3. Finally, download the sample dbt project into that folder.

    git clone https://github.com/dbt-labs/jaffle_shop.git

Step 2: Configure your dbt project to run with DuckDB

Running dbt requires a data warehouse to store the tables that are created from the dbt models. For our data warehouse, we'll use DuckDB, because setting it up doesn't require any long-running services or external infrastructure.

You'll set up dbt to work with DuckDB by configuring a dbt profile:

  1. Navigate into the jaffle_shop folder, which was created when you downloaded the project, inside your tutorial-dbt-dagster folder:

    cd jaffle_shop
  2. In this folder, with your text editor of choice, create a file named profiles.yml and add the following code to it:

    jaffle_shop:
    target: dev
    outputs:
    dev:
    type: duckdb
    path: tutorial.duckdb
    threads: 24

Step 3: Build your dbt project

With the profile configured above, your dbt project should now be usable. To test it out, run:

dbt build

This will run all the models, seeds, and snapshots in the project and store a set of tables in your DuckDB database.

note

For other dbt projects, you may need to run additional commands before building the project. For instance, a project with dependencies will require you to run dbt deps before building the project. For more information, see the official dbt Command reference page.

note

What's next?

At this point, you should have a fully-configured dbt project that's ready to work with Dagster. The next step is to load the dbt models into Dagster as assets.