Nowoczesna transformacja danych z dbt, re_data i Airflow

Robert Michalak
Robert Michalak
April 1, 2026
min read
Loading the Elevenlabs Text to Speech AudioNative Player...

Tradycyjne narzędzia do transformacji danych to zazwyczaj monolityczne platformy typu all-in-one, które brakuje elastyczności i możliwości dostosowania. Od kilku lat trendy zmieniają się w kierunku bardziej wyspecjalizowanych usług, takich jak transformacja, orkiestracja, testowanie, interfejs użytkownika itp. Integracja oddzielnych narzędzi może prowadzić do dostarczania lepszych danych klientom oraz poprawy ogólnego doświadczenia. Nowoczesne podejście oznacza, że proces rozwoju może być iteracyjny i stopniowy, z pełną automatyzacją i ciągłym dostarczaniem. W tym artykule wykorzystamy narzędzia:

  • dbt
  • re_data
  • Airflow

jako przykład budowy nowoczesnego procesu transformacji danych (data pipeline).

dbt

dbt to framework do zarządzania procesami transformacji danych dla modeli danych. Modele wykorzystują zapytania SQL, które opisują transformacje i są wykonywane na docelowej platformie danych, takiej jak BigQuery, Databricks, Postgres, Snowflake i wiele innych. Modele mogą być budowane na podstawie innych modeli, co prowadzi do tworzenia wielokrotnego użytku frameworka z gotowymi do użycia blokami konstrukcyjnymi. Ta modularna natura pozwala na podzielenie logiki na prostsze, mniejsze części, które mogą być ponownie wykorzystywane w różnych transformacjach. W porównaniu do tradycyjnych narzędzi nie musimy powtarzać złożonej logiki w wielu pipeline'ach – często kopiowanej z jednego pipeline'u do drugiego.

[Przykładowy model: client.sql]Kod dbt jest przechowywany w jednym miejscu (na repozytorium git), co zapewnia jedno źródło prawdy. Możemy grupować modele danych w pakiety, wersjonować je i dodawać szczegółową dokumentację. Dokumentacja może być napisana w zwykłym tekście lub markdown, aby opisać projekt, źródła, kolumny modeli i więcej. Wygenerowana dokumentacja to prosta strona internetowa z sekcjami i wykresami dla lepszej widoczności i zrozumienia projektu.

[Przykładowa dokumentacja wygenerowana przez dbt]Każdy model może mieć testy wykonywane podczas rozwoju i w czasie rzeczywistym. Testy to pliki SQL, które mogą sprawdzać na przykład wartości not null, unikalne wartości lub referencje (czy wartości id odpowiadają tym samym wartościom id w innym modelu). Testy w dbt działają jak testy jednostkowe w programowaniu – potwierdzają, że kod działa poprawnie i pozwalają na kontrolowane zmiany w modelach.

[Przykład testu: assert_client_total_amount.sql]dbt jest dostępny w dwóch wersjach:

  • dbt core – open-source, narzędzie wiersza poleceń z wszystkimi funkcjonalnościami transformacji.
  • dbt cloud – zasadniczo to dbt core, ale z interfejsem w chmurze. UI posiada dodatkowe funkcjonalności, takie jak metadane, automatyczne generowanie dokumentacji, integracja z innymi narzędziami.

Podsumowując, praca z dbt pozwala użytkownikom skupić się na logice biznesowej podczas tworzenia modeli danych, a framework zajmuje się kolejnością wykonywania i tworzeniem obiektów. Modele danych tworzą zaufane źródło dla raportowania, modelowania ML lub innych pipeline'ów. Modularne podejście z wielokrotnego użytku modelami danych ułatwia rozpoczęcie pracy nad analizą danych – nie musimy budować pipeline'u „od zera”.

re_data

re_data to open-source'owy framework, który rozszerza dbt o testy i metryki zorientowane na jakość danych. To rozwiązanie umożliwia śledzenie zmian w danych, monitorowanie wyników, inspekcję lineage danych oraz szczegółów projektu. Wszelkie wykryte anomalie w danych mogą być wysyłane jako powiadomienia na Slacku lub e-mailu. Metryki oparte na czasie są zbierane dla monitorowanych tabel i mogą być rozszerzane przez użytkownika o własne obliczenia. Wbudowane metryki to zestaw standardowych obliczeń na danych tabeli, takich jak liczba wierszy, wartość minimalna, wartość maksymalna, liczba wartości null itp. Metryki mogą być później testowane w celu wykrycia problemów – re_data dostarcza bibliotekę z gotowymi do użycia asercjami. Wszystkie wyniki testów są przechowywane i mogą być później analizowane w celu znalezienia problemów z danymi.

[Przykładowy model dbt z re_data: client.sql]Wersja 2:

[Konfiguracja modelu dbt z testami re_data: schema.yml]Z re_data możemy również generować UI, które zawiera szczegółowe informacje:

  • alerty o problemach z danymi lub zmianach w schemacie
  • lineage danych z dodatkowymi informacjami o anomaliach
  • historia testów
  • tabele z detalami dotyczącymi metryk i testów powiązanych z nimi

[Przykład UI, obraz z dokumentacji re_data: https://docs.getre.io/latest/docs/re_data/getting_started/toy_shop/generate_ui]Bardziej zaawansowanym rozwiązaniem jest re_cloud. To rozwiązanie oparte na chmurze, które może integrować wszystkie wyniki re_data w jednym miejscu. re_cloud może integrować się z wieloma rozwiązaniami, takimi jak: BigQuery, Redshift, Snowflake, dbt, GreatExpectations i więcej. Może to być pojedynczy punkt monitorowania, w którym użytkownicy z różnych zespołów mogą sprawdzać raporty i alerty.

Airflow

Airflow to narzędzie do orkiestracji napisane w Pythonie. Dzięki wysokiej możliwości dostosowania (możemy dodawać własny kod Python jako wtyczki) możemy dodać dowolną funkcjonalność, której potrzebujemy. Dzięki Airflow możemy tworzyć przepływy przetwarzania, które wykonują potrzebne kroki transformacji w określonych harmonogramach.

[Przykład DAG w Airflow]

Podsumowanie

Kombinacja dbt, re_data i Airflow daje nam:

  • Praca jest podzielona między wyspecjalizowane zespoły z większą jasnością, kto za co odpowiada
  • Dane są niezawodne dzięki wdrożonym kontrolom jakości danych i logiki biznesowej oraz stałemu monitorowaniu i alertowaniu
  • Narzędzia mogą być rozszerzane o inne „bloki” w razie potrzeby. Na przykład możemy dodać GreatExpectations, jeśli chcemy testować dane wejściowe.
  • Proces rozwoju jest iteracyjny i stopniowy, z odpowiednią kontrolą wersji.

Przykładowa architektura znajduje się na poniższym obrazku:

Stateful-vs-stateless architecture which solution is better for your application

Data exploration-definition and techniques

Everything you need to know about data quality management-best-practices-and-tools

Share this post
DevOps
Robert Michalak
MORE POSTS BY THIS AUTHOR
Robert Michalak

Curious how we can support your business?

TALK TO US