Back to dbt Foundations: What and Why

Why dbt Exists — The Analytics Engineering Wave

The problem dbt solves: SQL scripts everywhere, no lineage, no tests, no docs. The fix: treat SQL like code. FIND_VIDEO: search 'why dbt analytics engineering' — recommended channel: dbt Labs / Kahan Data Solutions. Aim for 10 min or under.

15 minutesVideo LessonPDF notes
🎯 Free Guest Mode: You are learning for free. Sign in to save your completion progress and quiz answers.

Ready to continue?

Mark this lesson as complete when you're ready to proceed.

Key moments

  1. dbt Overview and Installation — Introduces dbt within the ELT paradigm and demonstrates CLI installation using pip.
  2. Version Control Setup — Covers creating a remote GitHub repository and cloning it to the local workspace.
  3. Project Initialization — Executes the dbt init command to generate the foundational project directory structure.
  4. Directory Structure Exploration — Explores the purpose of core folders and the root dbt_project.yml file.
  5. Connection Profile Configuration — Configures Snowflake warehouse credentials and target parameters in profiles.yml.
  6. Connectivity Validation — Uses dbt debug to test configuration settings and warehouse connectivity.
  7. First Model Run — Runs dbt run to compile SQL models and materialize tables in Snowflake.
  8. Committing Project Files — Stages and commits the configured project files back to the remote Git repository.
PDF notes

Frequently asked questions

Where does dbt look for profiles.yml by default?

dbt searches in the hidden `~/.dbt/` folder in the current user's home directory. This keeps sensitive credentials out of version-controlled project folders.

Why does dbt run fail with a project file not found error?

The terminal is not in the directory containing `dbt_project.yml`. Change directory to your dbt project root and re-run the command.

What is the difference between dbt debug and dbt run?

`dbt debug` checks connection parameters, paths, and database access without altering data. `dbt run` compiles and executes transformation models directly in the database.

How was this lesson?

Your feedback helps us refine explanations and catch bugs.