dbt Fundamentals
dbt (data build tool) is a transformation framework that lets analytics engineers write modular SQL models, test their outputs, and document lineage. It runs inside the data warehouse, turning raw data into trusted, version-controlled datasets through a software engineering workflow.
itData engineering and analytics | OpenSkills.info
Intro
dbt Fundamentals
dbt transforms data that is already in a data platform into trusted datasets for analytics, operations, and AI. You write transformation logic as SQL select statements. dbt compiles that logic, runs it in the data platform, and records how the pieces depend on each other.
That position matters. Extract and load tools move source data into a warehouse or another supported data platform. Business intelligence tools query prepared data and present it to people. dbt sits between them. It turns loaded data into documented, tested data products without becoming the system that extracts data or the dashboard that displays it.
The mental model
Think of a dbt project as a software project whose output is reliable data.
Each model contains transformation logic. A SQL model is usually one select statement in one file. When dbt runs the model, a materialization controls how the result is represented in the data platform, such as a view or table.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://docs.getdbt.com/docs/introduction
Supports
- dbt transforms loaded data inside a supported data platform for downstream analytics, operations, and AI
- The dbt framework includes a language and an engine
- The language includes SQL, Jinja, YAML configuration, and tests
- Engines compile and execute the transformation graph and produce metadata
- Current distinctions among dbt Core version one, dbt Fusion, local development tools, and the managed dbt platform
- Software engineering practices, including version control, modularity, testing, documentation, and continuous integration
- https://docs.getdbt.com/docs/build/projects
Supports
- A dbt project is anchored by dbt_project.yml and may contain models, snapshots, seeds, data tests, macros, docs, sources, and other resources
- Model, source, seed, snapshot, macro, and documentation definitions
- Project configuration controls resource paths and other behavior
- https://docs.getdbt.com/docs/build/sql-models
Supports
- A SQL model is a select statement, normally one per file in the models directory
- dbt wraps a model query to create a relation in the target data platform
- Views are the default materialization unless configuration changes the behavior
- Models use the SQL dialect of the connected data platform and execute there
- Compiled and executed SQL is available for inspection
- https://docs.getdbt.com/reference/dbt-jinja-functions/ref
Supports
- ref returns a relation for a model, seed, or snapshot
- ref compiles to a database object name and creates a dependency
- Dependencies let dbt build the graph in order
- https://docs.getdbt.com/docs/build/sources
Supports
- Sources name and describe data loaded by extract and load tools
- The source function compiles to a full table name and creates a dependency
- Sources support descriptions, data tests, and freshness calculation
- https://docs.getdbt.com/docs/build/data-tests
Supports
- Data tests are assertions about models and other project resources
- A data test selects failing records and passes when no failing rows return
- Built-in generic data tests cover unique, not null, accepted values, and relationships assertions
- Singular and generic data test definitions
- https://docs.getdbt.com/docs/build/documentation
Supports
- dbt generates project documentation as a website
- Generated documentation can include model code, the DAG, tests, warehouse metadata, and descriptions
- Descriptions can document models, columns, sources, and other resources
- https://docs.getdbt.com/reference/commands/build
Supports
- dbt build processes models, tests, seeds, snapshots, and supported user-defined functions in DAG order
- Build writes manifest and run results artifacts
- Error-level upstream test failures can skip dependent resources
- https://docs.getdbt.com/docs/build/materializations
Supports
- Materializations control how models persist in the data platform
- Built-in view, table, incremental, ephemeral, and materialized view concepts
- Materialization tradeoffs used in the slides and cheatsheet
- https://docs.getdbt.com/reference/dbt-commands
Supports
- Command roles summarized in the cheatsheet, including run, test, build, compile, docs, debug, and list
- https://docs.getdbt.com/reference/node-selection/syntax
Supports
- Node selection targets project resources and their graph relationships
- Link rationale for graph-aware development and continuous integration scope
- https://docs.getdbt.com/guides
Supports
- Official data-platform-specific quickstarts as the recommended first hands-on step
- https://docs.getdbt.com/docs/deploy/deployments
Supports
- Link rationale for progressing from development into environments, job scheduling, and production operation
