Encyklopedia architektury danych — zasoby edukacyjne dla analityków Polska
Strona główna Data Lake Data Warehouse ETL Modelowanie danych Governance danych O nas Kontakt
Przechowywanie danych

Data Lake

Centralne repozytorium przechowujące dane w formacie surowym, niezależnie od struktury źródła. Architektura data lake umożliwia gromadzenie dużych wolumenów danych bez konieczności wcześniejszego definiowania schematu.

Definicja i charakterystyka

Data lake to architektura przechowywania danych, w której gromadzone są zasoby w formacie natywnym — bez wstępnej transformacji ani narzucania struktury. Termin ten upowszechnił się w branży analitycznej jako odpowiedź na ograniczenia tradycyjnych hurtowni danych, które wymagały kosztownego i czasochłonnego modelowania przed załadowaniem nowych źródeł.

Kluczową cechą odróżniającą data lake od hurtowni danych jest podejście do schematu. W data lake stosuje się zasadę schema-on-read — schemat jest definiowany w momencie odczytu, nie zapisu. Pozwala to na elastyczne przechowywanie danych ustrukturyzowanych, półustrukturyzowanych i nieustrukturyzowanych w jednym repozytorium.

Articles published on this website summarize publicly available information, industry research and educational materials.

Architektura warstwowa

Nowoczesne implementacje data lake opierają się na architekturze warstwowej, gdzie dane przepływają przez kolejne etapy przetwarzania. Każda warstwa ma określony poziom przetworzenia i jakości danych.

Infrastruktura fizyczna data lake zazwyczaj opiera się na rozproszonych systemach przechowywania — HDFS (Hadoop Distributed File System) w środowiskach on-premise lub object storage w chmurze (Amazon S3, Azure Data Lake Storage, Google Cloud Storage). Nad warstwą przechowywania znajdują się silniki obliczeniowe i warstwy katalogowania metadanych.

Strefy danych (Bronze / Silver / Gold)

Wzorzec stref medalionowych (Medallion Architecture) dzieli dane na trzy warstwy o rosnącym stopniu przetworzenia:

Strefa Nazwa alternatywna Stan danych Cel
Bronze Raw / Landing Surowy, niezmieniony Archiwizacja źródłowa
Silver Cleansed / Refined Oczyszczony, ujednolicony Analiza eksploracyjna
Gold Curated / Business Zagregowany, modelowany Raportowanie i ML

Strefa Bronze zawiera dane w dokładnie takiej postaci, w jakiej zostały przyjęte ze źródła. Żadne modyfikacje nie są dozwolone — jest to strefa archiwalna. Strefa Silver zawiera dane po podstawowym oczyszczeniu: usunięciu duplikatów, standaryzacji formatów dat, ujednoliceniu nazw kolumn. Strefa Gold zawiera dane gotowe do bezpośredniego użycia przez narzędzia BI lub modele uczenia maszynowego.

Formaty plików

Wybór formatu pliku ma istotny wpływ na wydajność odczytu i koszt przechowywania w data lake:

Format Typ Kompresja Optymalizacja Typowe użycie
CSV/JSON Wierszowy Opcjonalna Brak Strefa Bronze, dane wejściowe
Parquet Kolumnowy Wbudowana Zapytania analityczne Strefy Silver/Gold
ORC Kolumnowy Wbudowana Hive, Spark Strefy Silver/Gold (Hadoop)
Avro Wierszowy Wbudowana Serializacja Streaming, Kafka
Delta/Iceberg Kolumnowy + log Wbudowana ACID, time travel Data Lakehouse

Porównanie z data warehouse

Data lake i data warehouse nie są rozwiązaniami konkurencyjnymi — w dojrzałych architekturach analitycznych pełnią komplementarne role. Data lake służy jako warstwa gromadzenia i eksploracji, podczas gdy data warehouse jest zoptymalizowany pod kątem raportowania operacyjnego i zapytań OLAP.

W praktyce wiele organizacji implementuje przepływ danych z data lake do data warehouse: dane surowe trafiają do data lake (strefa Bronze), po oczyszczeniu lądują w strefie Silver, a wybrane zestawy danych są ładowane do hurtowni danych w formie zdenormalizowanych tabel faktów i wymiarów.

Architektura Data Lakehouse próbuje połączyć zalety obu podejść: otwarte formaty kolumnowe z warstwą transakcyjną (Delta Lake, Apache Iceberg, Apache Hudi) zapewniają wydajność zbliżoną do hurtowni danych przy jednoczesnym zachowaniu elastyczności i niskiego kosztu przechowywania charakterystycznego dla data lake.

Zastosowania praktyczne

Data lake szczególnie dobrze sprawdza się w następujących scenariuszach:

  • Gromadzenie danych z heterogenicznych źródeł (bazy relacyjne, logi, IoT, API)
  • Przechowywanie danych historycznych przed decyzją o ich strukturyzacji
  • Trenowanie modeli uczenia maszynowego na surowych danych
  • Eksploracyjna analiza danych przez analityków i data scientists
  • Archiwizacja danych regulacyjnych w formacie niezmutowanym