dbt Skill
dbt
dbt (data build tool) patterns for data transformation and analytics engineering. Use when building data models, implementing data quality tests, or managing data transformation pipelines.
SKILL.md
Full skill instructions
dbt Skill
This skill provides dbt patterns for analytics engineering.
Project Structure
dbt_project/
├── dbt_project.yml
├── models/
│ ├── staging/
│ │ └── stg_customers.sql
│ ├── intermediate/
│ │ └── int_customer_orders.sql
│ └── marts/
│ └── fct_orders.sql
├── seeds/
├── macros/
├── tests/
└── snapshots/
Model Patterns
Staging Models
-- models/staging/stg_customers.sql
with source as (
select * from {{ source('raw', 'customers') }}
),
renamed as (
select
id as customer_id,
lower(email) as email,
created_at
from source
)
select * from renamed
Incremental Models
-- models/marts/fct_orders.sql
{{
config(
materialized='incremental',
unique_key='order_id'
)
}}
select *
from {{ ref('stg_orders') }}
{% if is_incremental() %}
where updated_at > (select max(updated_at) from {{ this }})
{% endif %}
Testing
# models/schema.yml
models:
- name: stg_customers
columns:
- name: customer_id
tests:
- unique
- not_null
- name: email
tests:
- unique
Best Practices
- Use staging → intermediate → marts pattern
- Source all raw data with
source() - Reference models with
ref() - Add documentation and tests
- Use incremental models for large datasets
