Tworzenie deklaratywnych pipeline’ów ETL w Databricks z Delta Live Tables.

Mikolaj Klepacz
Mikolaj Klepacz
May 26, 2025
18 min read
Loading the Elevenlabs Text to Speech AudioNative Player...

Wprowadzenie
Wraz z ciągłym wzrostem rozmiaru i złożoności ekosystemów danych, rośnie potrzeba budowania odpornych data pipelines z szybkim time to market. To zachęca firmy do sięgania po nowe metodologie dla swoich procesów ETL, takie jak deklaratywne pipelines, które pozwalają deweloperom skupić się na definiowaniu docelowego stanu danych bez konieczności martwienia się o kolejność wykonywania zadań.

Wraz z wydaniem Delta Live Tables, Databricks dąży do zastosowania tego podejścia na swojej platformie i dostarczenia rozwiązania do przetwarzania danych, które obsługuje logikę transformacji za użytkownika, a także oferuje inne przydatne funkcje, takie jak automatyczne sprawdzanie jakości danych, monitoring i obserwowalność.

Deklaratywne podejście do data pipelines
Stosowanie podejścia deklaratywnego nie jest unikalne dla data engineering. W DevOps narzędzia takie jak Kubernetes i Terraform zrewolucjonizowały praktyki wdrożeniowe, wprowadzając koncepcję Infrastructure as Code, która pozwala inżynierom definiować docelowy stan infrastruktury i środowisk zamiast określania każdego kroku operacyjnego. Podobnie deklaratywne pipelines pozwalają inżynierom określić końcowy stan bazy danych, pozostawiając działania operacyjne systemowi.

Tradycyjnie pipelines ETL są tworzone przez jawne określenie kolejności wykonywania zadań, skupiając się na relacjach między zadaniami, aby zapewnić spójność wyników, brak utraty danych i unikanie duplikatów.

Typowy proces można zdefiniować w następujących krokach:

  • Pobierz pliki ze storage.
  • Załaduj dane do staging tables.
  • Wykonaj transformacje na danych, łącząc dane z różnych źródeł.
  • Załaduj do finalnej destynacji i wykonaj data quality checks.

Chociaż to imperatywne podejście jest elastyczne i dobrze znane, może być trudne do skalowania i utrzymania wraz ze wzrostem złożoności pipeline, ponieważ deweloper musi ręcznie odzwierciedlać data lineage, co utrudnia optymalizację pod kątem równoległości, skalowania i minimalizacji kosztów.

Deklaratywne pipelines nie wymagają jawnego określania kolejności transformacji. Autor pipeline określa, jak powinien wyglądać końcowy stan danych, a silnik pipeline automatycznie ustala rzeczywiste kroki, tj. kolejność transformacji, harmonogramowanie zadań, zarządzanie zależnościami, alokację zasobów i optymalizację. Teoretycznie to podejście zapewnia skalowalność i prostotę w coraz bardziej złożonych rozwiązaniach danych.

Ta metoda może być świetnym wyborem w wielu przypadkach, ale decydując się na framework deklaratywny, należy wziąć pod uwagę mniejszą elastyczność, ponieważ takie rozwiązania ukrywają szczegóły operacyjne, co może utrudniać debugowanie i rozwiązywanie problemów. Dodatkowo, vendor lock-in może być problemem ze względu na zastrzeżoną składnię lub integracje specyficzne dla platformy.

Wprowadzenie do Delta Live Tables
Delta Live Tables (DLT) to deklaratywny framework ETL do budowania skalowalnych i niezawodnych pipelines do przetwarzania danych. Pozwala użytkownikom skupić się na transformacjach i docelowych strukturach danych, automatycznie zarządzając orkiestracją, infrastrukturą obliczeniową, jakością danych i obsługą błędów.

Czym różni się Delta Live Tables od Delta tables?
Delta table to domyślny format tabeli danych w Databricks, który rozszerza format plików parquet, umożliwiając transakcje ACID. Delta Live Tables pozwala natomiast opisać, jak dane przepływają między tymi tabelami, tworząc je i zarządzając aktualizacjami.

DLT używa następujących datasetów do utrzymania wyników deklaratywnych zapytań:

  • Streaming table – Delta table z obsługą streamingu i incremental data processing. Zawsze definiowana względem źródła danych, które rośnie w sposób ciągły lub przyrostowy.
  • View – logiczny dataset obliczany przy każdym zapytaniu. Przydatny do dzielenia dużych zapytań na mniejsze.
  • Materialized view – widok z preobliczonymi wynikami, odświeżany przy każdej aktualizacji pipeline.

Delta Live Tables używa tych datasetów do definiowania pipeline, który jest główną jednostką uruchamiania workflow przetwarzania danych. Pipeline jest zwykle zdefiniowany w pliku źródłowym (notebook lub plik python), który zawiera wszystkie definicje streaming tables i materialized views zadeklarowane w SQL lub pythonie. Po utworzeniu kodu pipeline z logiką, należy utworzyć sam pipeline, podając jego konfigurację.

Kluczowe funkcje Delta Live Tables:

  • Automatyczne zarządzanie zależnościami i wizualizacja pipeline
  • Wymuszanie jakości danych (data quality enforcement)
  • Incremental i streaming data processing
  • Monitoring i obserwowalność

Przykład pipeline w DLT
W tym rozdziale zostanie utworzony przykładowy pipeline Delta Live Tables, który pokazuje możliwości frameworka. Przykład używa danych z /databricks-datasets na DBFS, konkretnie retail-org dataset. Proces czyta dane o zamówieniach, łączy je z tabelą produktów i wyciąga listę najlepiej sprzedających się kategorii produktów.

Execution graph of a Delta Live Tables pipeline showing the flow between streaming tables (products, sales_orders) and materialized views (top_products).

Details view of the 'top_products' materialized view in a Delta Live Tables pipeline, showing its status, source code, table name, and runtime information.
Sample data preview of the 'top_products' table in the Catalog Explorer, showing product categories and their corresponding total sales in USD.

Możemy również sprawdzić nasze oczekiwania DQ zdefiniowane w tabeli product_sales_categorised. Nie ma awarii, ponieważ wszystkie identyfikatory produktów z sales_orders były dostępne w tabeli produktów.

Data quality view of the 'product_sales_categorised' table showing expectations, actions, failure percentage, and the number of failed records (0 failures).

Deklaratywne data pipelines upraszczają tworzenie i utrzymanie złożonych workflow, pozwalając zespołom danych skupić się na analizie zamiast na infrastrukturze. Delta Live Tables to przykład takiego podejścia, umożliwiający tworzenie niezawodnych pipelines w pythonie lub SQL, z automatyczną orkiestracją, kontrolą jakości danych, przetwarzaniem przyrostowym i monitoringiem.

Twitter streaming danych przez pub sub i beam

Systemy  rozproszone i twierdzenie CAP

Testowanie  Databricks z działaniami GitHub

Share this post
Data Engineering
Mikolaj Klepacz
MORE POSTS BY THIS AUTHOR
Mikolaj Klepacz

Curious how we can support your business?

TALK TO US