dbt (Data Built Tool) Commands Cheat Sheet

Master DBT with this cheat sheet: Quick commands guide for efficient data build tool usage and streamlined workflows.

By

Jatin Solanki

Updated on

February 4, 2024

What is dbt?

As a data engineer, you need to be able to transform raw data into meaningful insights that can inform business decisions. dbt (Data Build Tool) is an open-source tool that allows you to build and manage data transformation pipelines in your data warehouse. dbt makes it easy to write modular, testable, and reusable SQL code that can be easily maintained and updated over time. In this article, we'll provide a cheat sheet for data engineers who are new to dbt or looking to expand their dbt skills. We'll cover some of the most commonly used dbt commands and provide sample code snippets that can be used as a reference for writing dbt code. By following these examples and referencing the dbt documentation, you can create robust and efficient data transformations in your data warehouse.

Basic and common commands:



dbt init: Initializes a new dbt project.

dbt debug: Runs a dry-run of a dbt command without actually executing the command.

dbt compile: Compiles the SQL in your dbt project, generating the final SQL code that will be executed against your data warehouse.

dbt run: Executes the compiled SQL in your data warehouse.

dbt test: Runs tests defined in your dbt project, checking for errors or inconsistencies in your data.

dbt deps: Installs dependencies for your dbt project.

dbt docs generate: Generates documentation for your dbt project.

dbt docs serve: Serves the documentation generated by dbt docs generate on a local server.

dbt seed: Seeds your data warehouse with initial data.

dbt snapshot: Takes a snapshot of your data warehouse, capturing the current state of your data.

dbt snapshot-freshness: Checks the freshness of your snapshots and generates a report indicating which snapshots need to be refreshed.

dbt run-operation: Runs a custom operation defined in your dbt project.


These commands are just a subset of the dbt commands available, but they cover most of the basic functionality of dbt. You can find more information about these commands and additional commands in the dbt documentation.

Additionally, here are some sample code snippets that can be used as a reference for writing dbt code:

1. Creating a new model:


-- models/my_model.sql

SELECT
    column1,
    column2,
    column3
FROM
    source_table
WHERE
    column1 > 10

2.Using a Macro:


-- macros/my_macro.sql

{% macro my_macro(column_name) %}
    COALESCE({{ column_name }}, 0)
{% endmacro %}


-- models/my_model.sql

SELECT
    {{ my_macro("column1") }} AS column1,
    {{ my_macro("column2") }} AS column2,
    {{ my_macro("column3") }} AS column3
FROM
    source_table

3.Defining a test:


-- models/my_model.sql

SELECT
    column1,
    column2,
    column3
FROM
    source_table
WHERE
    column1 > 10


-- tests/my_model_test.sql

SELECT COUNT(*) AS record_count
FROM {{ source('my_model') }}
WHERE column1 > 10

4.Defining a snapshot:


-- snapshots/my_snapshot.sql

SELECT
    column1,
    column2,
    column3
FROM
    source_table
WHERE
    column1 > 10

These snippets demonstrate some basic dbt functionality, including creating a model, using a macro, defining a test, and defining a snapshot. You can customize these snippets to fit your specific use case, and use them as a starting point for your own dbt code.

5. Using a materialized view:

 

6. Defining custom operation: 



-- operations/my_operation.sql

{% macro my_operation(param1, param2) %}
    SELECT {{ param1 }} + {{ param2 }} AS result
{% endmacro %}


-- models/my_model.sql

{{ dbt_utils.log('Running my_operation', 'info') }}
{{ run_operation('my_operation', param1=10, param2=20) }}

These snippets demonstrate more advanced functionality, including using a materialized view and defining a custom operation. The materialized view example shows how to define an incremental strategy and a unique key for a materialized view, which can help improve performance and reduce duplication in your data warehouse. The custom operation example shows how to define a custom macro that can be used to execute a SQL query and return a result, and how to call that macro from a dbt model.

Overall, these cheat sheet snippets should provide a good starting point for data engineers who are new to dbt or looking to expand their dbt skills. By following these examples and referencing the dbt documentation, you can create robust and efficient data transformations in your data warehouse.


Now, that you have learned about dbt basics, its time to monitor it and raise alerts for any failure. Decube provides observability for dbt models, signup for 30 days free trial - no card required.

Table of Contents

Read other blog articles

Grow with our latest insights

Sneak peek from the data world.

Thank you! Your submission has been received!
Talk to a designer

All in one place

Comprehensive and centralized solution for data governance, and observability.

decube all in one image