ELT invece di ETL
Il paradigma dei data warehouse cloud (Snowflake, BigQuery, Redshift) e lakehouse rende storage ed elaborazione SQL a basso costo. Il pattern moderno è ELT — Extract, Load (raw data nel warehouse), poi Transform in SQL direttamente nel DB. Il layer di Transform necessita pratiche software engineering: versionamento, testing, documentazione, modularità.
dbt — data build tool — è stato creato da Tristan Handy e Drew Banin presso Fishtown Analytics (poi rinominata dbt Labs) dal 2016. Licenza Apache 2.0 per dbt Core. La versione 0.15 (dicembre 2019) consolida maturity produzione.
Cosa fa dbt
Un progetto dbt è una directory di file SQL con Jinja2 templating:
-- models/orders_summary.sql
SELECT
customer_id,
COUNT(*) as total_orders,
SUM(amount) as total_revenue
FROM {{ ref('raw_orders') }}
WHERE status = 'completed'
GROUP BY customer_id
Il comando dbt run compila i modelli, risolve ref() e source(), genera ordine topologico di esecuzione, esegue SQL contro il data warehouse.
Features
- Version control — ogni transformation è codice Git
- Testing —
dbt testverifica vincoli sui dati (unique, not_null, accepted_values, relationships) - Documentation —
dbt docsgenera sito statico con lineage grafico dei modelli - Incremental models — refresh efficiente di tabelle grandi
- Snapshots — SCD Type 2 automatico
- Seeds — CSV statici caricati come reference data
- Macros — funzioni SQL riusabili in Jinja
- Packages — dependencies simili a npm/PyPI
Adapter per DB
dbt è database-agnostic via adapter:
- dbt-snowflake, dbt-bigquery, dbt-redshift, dbt-databricks
- dbt-postgres, dbt-spark
- dbt-duckdb (popolare per local dev)
Modern Data Stack
dbt è il “T” del Modern Data Stack:
- Extract/Load — Fivetran, Airbyte, Meltano
- Transform — dbt
- Warehouse — Snowflake, BigQuery, Redshift, Databricks
- BI — Looker, Metabase, Superset
dbt Labs
dbt Labs (ex Fishtown Analytics) è startup VC-funded con prodotto commerciale dbt Cloud (SaaS) oltre a dbt Core open source. Modello open core.
Nel contesto italiano
Adoption italiana in aziende con data warehouse moderni: banche, retail, ecommerce, telco. Community dbt meetup italiana attiva dal 2021.
Riferimenti: dbt Core. Tristan Handy, Drew Banin, Fishtown Analytics/dbt Labs (2016). Licenza Apache 2.0. Jinja2 templating. Modern Data Stack. dbt Cloud (commercial).
