dbt

SKILL.md

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
Weekly Installs
1
GitHub Stars
8
First Seen
6 days ago
Installed on
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1