// SQLMesh patterns for data transformation with column-level lineage and virtual environments. Use when building data pipelines that need advanced features like automatic DAG inference and efficient incremental processing.
| name | sqlmesh |
| description | SQLMesh patterns for data transformation with column-level lineage and virtual environments. Use when building data pipelines that need advanced features like automatic DAG inference and efficient incremental processing. |
This skill provides SQLMesh patterns for data transformation.
sqlmesh_project/
âââ config.yaml
âââ models/
â âââ staging/
â â âââ stg_customers.sql
â âââ marts/
â âââ dim_customers.sql
âââ macros/
âââ seeds/
âââ audits/
âââ tests/
-- models/staging/stg_customers.sql
MODEL (
name staging.stg_customers,
kind INCREMENTAL_BY_TIME_RANGE (
time_column created_at
),
cron '@daily'
);
SELECT
id AS customer_id,
LOWER(email) AS email,
created_at
FROM raw.customers
WHERE created_at BETWEEN @start_ds AND @end_ds
| Kind | Use Case |
|---|---|
FULL | Complete refresh each run |
INCREMENTAL_BY_TIME_RANGE | Time-based incremental |
INCREMENTAL_BY_UNIQUE_KEY | Key-based merge |
VIEW | Virtual table |
SEED | Static CSV data |
# Create a virtual environment for testing
sqlmesh plan dev
# Apply to production
sqlmesh plan prod
-- audits/no_nulls.sql
AUDIT (
name assert_no_null_customer_id,
model staging.stg_customers
);
SELECT * FROM staging.stg_customers
WHERE customer_id IS NULL