whatisgithub

What is dbt-core?

dbt-labs/dbt-core — explained in plain English

Analysis updated 2026-06-24

12,769PythonAudience · dataComplexity · 3/5LicenseSetup · moderate

In one sentence

Command-line tool for data analysts that turns SQL SELECT statements into clean, tested tables in a data warehouse, automatically handling the order transformations need to run.

Mindmap

mindmap
  root((repo))
    What it does
      Transform raw data
      Run SQL models
      Test data quality
    Key concepts
      SQL models
      Model dependencies
      Data lineage
    Audience
      Data analysts
      Data engineers
    Deployment
      dbt Core local
      dbt Cloud hosted
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Transform raw warehouse data into analytics-ready tables using plain SQL files

USE CASE 2

Run automated data quality checks to catch nulls, duplicates, and unexpected values after each run

USE CASE 3

Build dependency-aware data pipelines without writing custom orchestration code

USE CASE 4

Visualize how your data flows through a project as an auto-generated lineage diagram

What is it built with?

PythonSQLJinja2

How does it compare?

dbt-labs/dbt-corexszyou/faypypa/pipx
Stars12,76912,77612,786
LanguagePythonPythonPython
Setup difficultymoderatemoderateeasy
Complexity3/53/51/5
Audiencedatadeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires a supported data warehouse connection (Snowflake, BigQuery, Redshift, Postgres, etc.) before running any models.

Apache 2.0, use, modify, and distribute freely for any purpose, including commercial products.

So what is it?

dbt (data build tool) is a command-line tool that helps data analysts transform raw data in a warehouse into clean, structured tables ready for analysis. Instead of writing complex scripts or building custom pipelines, analysts write plain SQL SELECT statements, and dbt takes care of turning those statements into actual tables or views in the database. The central concept is a "model," which is just a SQL file that pulls from other tables or models. Models can reference each other, so dbt tracks the order in which they need to run. If model B depends on model A, dbt knows to run A first. It can also visualize these relationships as a diagram, which helps teams understand how data flows through their project. dbt also includes a testing layer so teams can verify that their data meets expectations: things like checking that a column has no nulls, or that every value in a field is unique. Running tests after each transformation run helps catch data quality problems early. The open-source version (dbt Core) runs locally or in CI pipelines. A hosted option (dbt Cloud) adds collaboration features, scheduling, and a web interface. Both use the same model syntax, so it is straightforward to move between them. The README is brief and links to external documentation for full usage details. An active community exists on Slack and the dbt Community Discourse forum.

Copy-paste prompts

Prompt 1
I have a raw orders table in Snowflake. Write a dbt model that joins it with a customers table, calculates revenue per customer per month, and names the output monthly_customer_revenue.
Prompt 2
Add a dbt test to my users model that checks the email column has no null values and every user_id is unique.
Prompt 3
My dbt model B depends on model A. Show me how to use the ref() function so dbt automatically runs A before B and fails fast if A fails.
Prompt 4
Write a dbt macro that formats any date column to YYYY-MM-DD and can be reused across multiple models in my project.
Prompt 5
Show me how to set up a dbt project from scratch against a local PostgreSQL database, create one model, and run dbt test to verify the output.

Frequently asked questions

What is dbt-core?

Command-line tool for data analysts that turns SQL SELECT statements into clean, tested tables in a data warehouse, automatically handling the order transformations need to run.

What language is dbt-core written in?

Mainly Python. The stack also includes Python, SQL, Jinja2.

What license does dbt-core use?

Apache 2.0, use, modify, and distribute freely for any purpose, including commercial products.

How hard is dbt-core to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is dbt-core for?

Mainly data.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.