dbt hat die Arbeit mit Daten revolutioniert. SQL-Modelle, die dbt kompiliert und ausführt — Versionierung, Tests und Dokumentation als Code.
Was ist dbt¶
dbt transformiert Daten im Warehouse mit SELECT-Statements. Es kümmert sich um DDL, Abhängigkeiten, Tests und Dokumentation.
dbt-Modelle¶
-- models/staging/stg_orders.sql
WITH source AS (
SELECT * FROM {{ source('raw', 'orders') }}
)
SELECT
id AS order_id,
user_id AS customer_id,
created_at AS order_date,
amount_cents / 100.0 AS amount_eur,
status
FROM source
WHERE status != 'test'
Tests¶
# schema.yml
version: 2
models:
- name: stg_orders
columns:
- name: order_id
tests: [unique, not_null]
- name: amount_eur
tests: [not_null]
Inkrementelle Modelle¶
{{ config(materialized='incremental', unique_key='order_id') }}
SELECT * FROM {{ ref('stg_orders') }}
{% if is_incremental() %}
WHERE order_date > (SELECT MAX(order_date) FROM {{ this }})
{% endif %}
Zusammenfassung¶
dbt ist der Standard für Warehouse-Transformationen. SQL-Modelle, Tests und Dokumentation als Code.
dbtsqlTransformationanalytics engineering