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.
Scanned 5/27/2026
Install via CLI
openskills install jpoutrin/product-forge---
name: dbt
description: 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.
user-invocable: false
---
# 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
```sql
-- 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
```sql
-- 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
```yaml
# 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
No comments yet. Be the first to comment!