Headder AdSence

🧱 Module 3: Create Your First dbt Project and Connect to a Data Warehouse

📘 Introduction

Now that dbt CLI is installed, it’s time to create your first dbt project. In this module, you’ll:

  • Initialize a dbt project

  • Connect it to a data warehouse (we’ll use Snowflake or PostgreSQL)

  • Understand the project folder structure

  • Create and run your first model

Let’s dive in and turn raw data into analytics-ready models using just SQL.




🧰 What You’ll Need

  • dbt CLI installed (dbt --version)

  • Access to Snowflake or Postgres (other adapters also work)

  • Terminal or command prompt

  • Basic SQL knowledge


🚀 Step-by-Step: Create a dbt Project


🔹 Step 1: Initialize Your Project

In terminal or CMD, navigate to your workspace and run: 


dbt init my_dbt_project

Replace my_dbt_project with your preferred name.

🔹 Step 2: Choose Your Adapter

During the init process, dbt will ask you to choose a warehouse adapter.

For example:

  • snowflake for Snowflake

  • postgres for PostgreSQL

Follow the prompts and confirm project setup.

🔹 Step 3: Understand Project Structure

After setup, you’ll see folders like: 

my_dbt_project/

├── dbt_project.yml      # Project config file

├── models/              # Where your SQL models live

├── snapshots/           # Optional - point-in-time copies

├── seeds/               # Static CSV data files

├── macros/              # Reusable SQL logic (Jinja)

└── target/              # Output folder (autogenerated)

models/ is where you’ll spend most of your time.

🔹 Step 4: Set Up Your Profile

dbt connects to the warehouse using a profiles.yml file.

Location:

  • Windows: C:\Users\<yourname>\.dbt\profiles.yml

  • Mac/Linux: ~/.dbt/profiles.yml

Snowflake Example:

my_dbt_project:

  target: dev

  outputs:

    dev:

      type: snowflake

      account: your_account

      user: your_user

      password: your_password

      role: your_role

      database: your_database

      warehouse: your_warehouse

      schema: analytics

      threads: 1

Postgres Example:

my_dbt_project:
  target: dev
  outputs:
    dev:
      type: postgres
      host: localhost
      user: your_user
      password: your_password
      port: 5432
      dbname: your_db
      schema: analytics
      threads: 1

🔹 Step 5: Test the Connection

Inside your project folder, run:

dbt debug

✅ You should see:
All checks passed! Connection is working.


🔹 Step 6: Create and Run Your First Model

Create a file:
📄 models/first_model.sql

Paste this simple model:

SELECT 1 AS id, 'dbt works!' AS message

Run your model:
dbt run

🎉 That’s it! Your first model is live in your data warehouse.


💡 Pro Tips

  • Keep models small and modular — one concept per file

  • Use Jinja templating for dynamic logic (we’ll cover this in Module 4)

  • Use dbt run --select model_name to run individual models


📌 What’s Next?

📍 Next Module: Create Modular dbt Models Using SQL + Jinja
You’ll learn to layer models and add reusable SQL logic with Jinja templating.

No comments:

Post a Comment