IT Narzędzie ETL

DBT

Znany też jako:data build tooldbt Coredbt Cloud

Definicja #

DBT (data build tool) to open-source'owe narzędzie stworzone przez dbt Labs (dawniej Fishtown Analytics), które pozwala transformować dane w data warehousach i data lake'ach przy użyciu SQL. DBT realizuje warstwę "Transform" w architekturze ELT (Extract, Load, Transform).

Kluczowe koncepcje DBT:

  • Modele — pliki .sql zawierające zapytania SELECT; DBT materializuje je jako tabele lub widoki w bazie danych. Relacje między modelami definiuje się przez {{ ref('model_name') }}
  • DAG (Directed Acyclic Graph) — DBT automatycznie buduje graf zależności między modelami i uruchamia je we właściwej kolejności (dbt run)
  • Testy — wbudowane testy danych: not_null, unique, accepted_values, relationships; własne testy w SQL lub Pythonie
  • Dokumentacja — automatyczna generacja dokumentacji z opisami modeli i kolumn w schema.yml; dbt docs generate tworzy przeglądarkę z lineage grafem
  • Snapshots — śledzenie zmian w danych (Slowly Changing Dimensions); historyczna wersjonalizacja tabel
  • Seeds — ładowanie małych zbiorów danych z CSV do bazy
  • Macros i Jinja — szablony SQL z logiką (pętle, warunki, zmienne) używając Jinja2

DBT obsługuje popularne platformy danych: Snowflake, BigQuery, Redshift, Databricks, DuckDB, PostgreSQL i inne przez adaptery.

Dwa warianty:

  • dbt Core — open-source, uruchamiany lokalnie lub w CI/CD
  • dbt Cloud — SaaS z interfejsem, schedulerem, historią uruchomień i integrację z Git

Zastosowania #

  • Transformacje danych w data warehouse — modelowanie warstw Bronze/Silver/Gold (lub Raw/Staging/Mart) bez pisania pipeline'ów ETL w Pythonie
  • Automatyczne testowanie jakości danych — not_null, unique, freshness checks jako część pipeline CI/CD
  • Dokumentacja lineage danych — automatyczna mapa zależności między tabelami i modelami dla zespołu danych
  • Współdzielenie logiki biznesowej — makra DBT do wielokrotnego użycia transformacji (np. standardowy model dat, walut)
  • Integracja z BI narzędziami — modele DBT jako źródło dla Metabase, Looker, Tableau, Power BI

Ścieżka nauki #

DBT jest kluczową umiejętnością dla Data Engineerów i Analytics Engineerów pracujących w nowoczesnym data stacku.

Zacznij od:

  • Instalacja: pip install dbt-core dbt-postgres (lub adapter dla Snowflake/BigQuery)
  • Kurs oficjalny: dbt Learn (dbt Labs, bezpłatny) — fundamentals i advanced
  • Inicjalizacja projektu: dbt init, konfiguracja profiles.yml z połączeniem do bazy
  • Pierwszy model: plik .sql z SELECT, dbt run, sprawdzenie tabeli w bazie
  • Referencje: {{ ref() }} do budowania zależności między modelami

Następnie pogłębiaj:

  • Testy danych: schema.yml, testy not_null i unique, custom generic tests
  • Materialization: table, view, incremental, ephemeral — kiedy używać której
  • Makra Jinja — generowanie SQL dynamicznie, pakiety dbt (dbt-utils, dbt-date)
  • Snapshots SCD Type 2 — śledzenie historii zmian w danych
  • Integracja z Airflow lub Prefect jako orchestratorem pipeline'ów DBT

FAQ #

Czym jest DBT i do czego służy?
DBT (data build tool) to narzędzie do transformacji danych w data warehousach przy użyciu SQL. Zastępuje ręczne pisanie skryptów ETL — zamiast tego piszesz modele SQL, a DBT zarządza zależnościami, testuje dane i dokumentuje pipeline. Jest kluczowym elementem modern data stack razem ze Snowflake lub BigQuery.
Czym różni się ELT od ETL i jak pasuje tu DBT?
ETL (Extract-Transform-Load) transformuje dane przed załadowaniem do bazy. ELT (Extract-Load-Transform) najpierw ładuje surowe dane do data warehouse, a potem je transformuje — na miejscu, korzystając z mocy obliczeniowej chmurowego magazynu danych. DBT realizuje właśnie warstwę Transform w ELT, działając bezpośrednio w bazie.
Czy DBT wymaga znajomości Pythona?
DBT Core jest oparty na SQL i Jinja2 — Python jest potrzebny tylko do instalacji (pip) i zaawansowanych funkcji (dbt Python models w BigQuery/Databricks od wersji 1.3). Większość codziennej pracy z DBT to pisanie SQL i YAML. Znajomość Pythona przydaje się przy pisaniu własnych testów i makr.
DBT Core vs dbt Cloud — co wybrać?
dbt Core to open-source — uruchamiasz lokalnie lub w CI/CD (GitHub Actions, GitLab CI). dbt Cloud to SaaS z interfejsem web, IDE, schedulerem, historią uruchomień i alertami. Dla nauki i małych projektów dbt Core wystarczy. W firmach dbt Cloud przyspiesza wdrożenie i collaboration — cena od 100 USD/miesiąc za użytkownika.
Ostatnia aktualizacja:

Przeglądaj słownik IT alfabetycznie

Wybierz literę, aby zobaczyć wszystkie hasła zaczynające się od niej.