dbt Core: data transformation in SQL versionato

dbt (data build tool) Core: data transformation framework di Fishtown Analytics (poi dbt Labs), 2016+. SQL con Jinja2, version control Git, testing, documentation auto-generata. Standard de facto del modern data stack.

Open SourceR&D dbtData TransformationAnalytics EngineeringSQLdbt LabsOpen Source

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 è ELTExtract, Load (raw data nel warehouse), poi Transform in SQL direttamente nel DB. Il layer di Transform necessita pratiche software engineering: versionamento, testing, documentazione, modularità.

dbtdata 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
  • Testingdbt test verifica vincoli sui dati (unique, not_null, accepted_values, relationships)
  • Documentationdbt docs genera 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).

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi