Architektura danych, czyli wstęp do Data Warehouse, Data Lake i Data Lakehouse 

Dobór odpowiedniej architektury przechowywania i modelowania danych może istotnie wpływać na efektywność, skalowalność i elastyczność procesów w organizacji. Właściwa selekcja struktury danych ma duże znaczenie dla skuteczności analiz, dostępu do informacji oraz zdolności organizacji do adaptacji zmieniających się warunków rynkowych. W niniejszym artykule zajmiemy się analizą trzech powszechnie stosowanych struktur danych: Data Warehouse, Data Lake i Data Lakehouse.

Analizując powyższe struktury, skoncentrujemy się na ich fundamentalnych założeniach, funkcjonalnościach oraz ewolucji w organizacji danych. Artykuł obejmuje nie tylko teoretyczne aspekty, ale także praktyczne wyzwania i korzyści związane z każdą z tych architektur.

Architektura danych, czyli wstęp do Data Warehouse, Data Lake i Data Lakehouse

Architektura danych w tradycyjnej postaci – hurtownia danych (Data Warehouse)

Hurtownią danych nazywamy centralne miejsce przechowywania i zarządzania danymi biznesowymi, zebranymi z różnych źródeł danych w organizacji. Jest to specjalnie zorganizowana baza danych, której głównym celem jest ułatwienie analiz, raportowania i podejmowania strategicznych decyzji. Kluczową cechą Data Warehouse jest jej zdolność do konsolidacji, integracji i transformacji danych z różnych systemów, co umożliwia uzyskanie spójnego i jednolitego źródła informacji dla użytkowników biznesowych. 

Klasyczna struktura Data Warehouse opiera się na modelu danych relacyjnych, co oznacza, że dane są przechowywane w tabelach ze zdefiniowanymi połączeniami. Podstawowe obiekty to tabele Fact (zdarzenia) oraz Dimension (z wymiarami do tych zdarzeń). Struktura zorganizowana jest w taki sposób, aby umożliwiać łatwe zapytania i analizę danych za pomocą języka zapytań SQL. 

Kluczowym elementem jest także proces ETL (ang. Extract, Transform, Load), który obejmuje wydobycie danych z różnych źródeł, ich transformację i załadowanie do hurtowni danych. Źródłami dla hurtowni są dane ustrukturyzowane.  

Poniższa grafika opisuje schemat działania klasycznej hurtowni danych: 

Schemat działania w klasycznych hurtowniach danych

Zalety klasycznej struktury Data Warehouse

Podstawową zaletą tradycyjnej architektury hurtowni jest poprawa standardów, jakości i spójności danych w firmie. Organizacje generują zbiory z wielu różnych, często niespójnych źródeł. Hurtownia danych w swojej strukturze je konsoliduje i standaryzuje. Tworzy produkt cechujący się dużą wiarygodnością — będący tzw. jednym źródłem prawdy. Daje tym samym pewność co do poprawności raportów biznesowych. 

Dane są zoptymalizowane pod kątem szybkich i skomplikowanych analiz, co umożliwia łatwe generowanie raportów biznesowych. Ponieważ dane w hurtowni są poprawnie przygotowane, można łatwo połączyć się z nimi z poziomu narzędzi business intelligence (jak np. Power BI) i szybko tworzyć wymagane zestawienia. Data Warehouse jest projektowany tak, aby dostarczać informacji potrzebnych do podejmowania decyzji na poziomie strategicznym w organizacji.

Dane historyczne

Hurtownie danych charakteryzują się zdolnością dogromadzenia danych historycznych, umożliwiając analizę zmian i trendów w czasie. To istotne z punktu widzenia analiz długoterminowych tendencji. Dzięki możliwości sprawdzenia danych historycznych jesteśmy w stanie lepiej zrozumieć ewolucję zdarzeń.

Dodatkowo stosowanie koncepcji wolno zmieniających się wymiarów (ang. Slowly Changing Dimensions [SCD]), pozwala na skuteczne śledzenie zmian danych w tabelach typu Dim. Jest to kluczowe dla utrzymania spójności informacji w kontekście ewoluujących struktur danych w czasie.

Ograniczenia konwencjonalnego podejścia do tworzenia hurtowni danych

Klasyczne, relacyjne hurtownie danych stanowią fundament dla wielu przedsiębiorstw, umożliwiając im skuteczne zarządzanie dużą ilością zbiorów i wykorzystywanie ich do uzyskania wartościowych informacji biznesowych. Ta tradycyjna architektura ma jednak pewne wady. 

Wdrożenie i utrzymanie 

Należą do nich choćby koszty wdrożenia i utrzymania. Implementacja klasycznego Data Warehouse może być kosztowna, zarówno pod względem infrastruktury sprzętowej, oprogramowania, jak i zasobów ludzkich potrzebnych do utrzymania systemu. Skomplikowany proces ETL oraz konieczność dostosowania do specyficznych wymagań biznesowych mogą znacząco wpływać na budżet. 

Złożoność i trudności w skalowaniu 

Kolejną niedoskonałością Data Warehouse może być złożoność jej projektowania. Tworzenie klasycznej architektury hurtowni danych, zwłaszcza w środowiskach o dużym stopniu skomplikowania i różnorodności, zazwyczaj jest czasochłonne i wymaga zaawansowanej wiedzy specjalistycznej. Hurtownia danych często posiada także ograniczenia skalowalności — wraz z rosnącym wolumenem danych pojawiają się dodatkowe, znaczące potrzeby inwestycji w infrastrukturę i technologie.  

Opóźniony dostęp do danych 

Wadą tego rodzaju projektu jest także zazwyczaj występujące opóźnienie w dostarczaniu danych. W środowisku biznesowym, gdzie szybkość reakcji na zmiany ma kluczowe znaczenie, często występuje potrzeba dostępu do danych w czasie bliskim do rzeczywistego. Jest to trudne do osiągnięcia w klasycznej integracji typu ETL. Ponadto wprowadzanie nowych funkcjonalności i wszelkiego rodzaju development jest czasochłonny, co również może stanowić istotne utrudnienie dla dynamicznych biznesów.  

Ukierunkowanie na dane strukturalne 

Słabością klasycznych hurtowni danych może być ich ukierunkowane na dane strukturalne i schemat relacyjny. Obsługa danych nieustrukturyzowanych, takich jak multimedia, teksty czy dane z mediów społecznościowych, jest w data warehouse problematyczna, a takie dane analizuje się w dzisiejszym świecie coraz częściej.

Korzystanie z nieustrukturyzowanych danych jest kluczowym elementem zarówno w inicjatywach z obszaru data science, jak i w innowacyjnych projektach z obszaru sztucznej inteligencji. Co za tym idzie, efektywny i elastyczny dostęp do takich danych jest coraz bardziej istotny.

Przykłady tradycyjnego modelu hurtowni danych

  • Microsoft SQL Server — MS SQL umożliwia organizacjom przechowywanie danych biznesowych, a zintegrowane narzędzia, takie jak SQL Server Integration Services (SSIS) i SQL Server Analysis Services (SSAS), wspierają procesy ETL i analizy.
  • Oracle Exadata — dedykowane rozwiązanie do przechowywania i przetwarzania danych, które oferuje wysoką wydajność i skalowalność. Jest często wykorzystywane jako platforma hurtowni danych w środowisku Oracle.
  • IBM Db2 Warehouse — produkt do zarządzania hurtowniami danych od IBM. Oferuje zaawansowane narzędzia analityczne, integrację z narzędziami do raportowania i wizualizacji danych, a także elastyczność w obszarze przetwarzania danych.
  • SAP BW (Business Warehouse) — to rozwiązanie dla obszaru hurtowni danych od SAP, które integruje dane z różnych źródeł w jednym repozytorium. Jest zoptymalizowane pod kątem analizy biznesowej i współpracuje z innymi produktami SAP.
  • Snowflake — platforma, która oferuje elastyczność, skalowalność i łatwość użycia. Snowflake umożliwia przechowywanie danych w chmurze i integrację z różnymi narzędziami analitycznymi.
  • Vertica (Hewlett Packard Enterprise) — platforma hurtowni danych zorientowana na analizę. Zapewnia wysoką wydajność, a także umożliwia przechowywanie i pracę na dużej ilości danych.

Data Lake, czyli elastyczna struktura przechowywania

Termin Data Lake, czyli w tłumaczeniu na język polski „jezioro danych”, pierwszy raz użyty został w 2010 roku przez Jamesa Dixona — założyciela i byłego dyrektora technicznego Pentaho. W opisie swojej koncepcji jeziora danych Dixon wskazał na potrzebę uniknięcia ograniczeń związanych z tradycyjnym podejściem do hurtowni, które cechuje się małą elastycznością i skalowalnością. Opowiadając o swoim pomyśle, powiedział:  

„Jeśli pomyślisz o Data Mart jako o magazynie wody butelkowej, oczyszczonej, zapakowanej i ustrukturyzowanej tak, aby była łatwa do spożycia, to Data Lake jest dużym zbiornikiem wodnym w bardziej naturalnym stanie. Zawartość jeziora danych wypływa ze źródła i wypełnia jezioro, a różni użytkownicy jeziora mogą przyjść, aby zbadać, zanurkować czy też pobrać próbki”.

Schemat architektury repozytorium danych Data Lake.

Kiedy wybrać Data Lake w organizacji?

Jeśli w naszej organizacji mamy do czynienia z dużymi zbiorami różnorodnych danych, magazyn danych typu Data Lake będzie bardzo dobrym wyborem. Umożliwia przechowywanie wielu typów danych, w tym danych ze zdefiniowaną strukturą, nieustrukturyzowanych i półstrukturalnych. Może zawierać dane tekstowe, pliki multimedialne, dane z urządzeń IoT (ang. Internet of Things) i inne.

  • Struktura Data Lake jest łatwo skalowalna, co oznacza, że można ją rozbudowywać w miarę wzrostu ilości przechowywanych danych. Wykorzystuje rozproszone środowisko, co umożliwia łatwe dodawanie nowych zasobów do systemu.
  • W Data Lake nie ma potrzeby wcześniejszego definiowania schematu. Elastyczność magazynu pozwala na przechowywanie danych w ich naturalnej postaci oraz na późniejsze ich przekształcenie, gdy zostaną zidentyfikowane konkretne potrzeby analityczne.
  • Data Lake może obsługiwać dane w czasie rzeczywistym, co pozwala na szybką analizę i reakcję na zmiany w biznesie. Jest to szczególnie ważne w kontekście dynamicznych środowisk i szybko zmieniających się warunków rynkowych.
  • Data Lake jest często używany jako fundament dla analizy Big Data. Dzięki swojej elastyczności i skalowalności umożliwia przechowywanie ogromnych ilości danych, które mogą być następnie analizowane za pomocą różnych narzędzi i technologii analitycznych.
  • Dane w Data Lake są dostępne dla wielu zastosowań i narzędzi analitycznych. Pracownicy różnych działów w organizacji mogą korzystać z tych danych, co wspomaga współpracę i zdolność do podejmowania decyzji opartych na informacjach.

Ograniczenia Data Lake

Mimo wielu zalet Data Lake nie jest pozbawiony wad, które mogą stanowić wyzwanie dla organizacji:

Złożona eksploracja danych

Elastyczność Data Lake prowadzi do braku schematu w przechowywanych danych. Bez odpowiedniej kontroli i zarządzania istnieje ryzyko, że struktura danych stanie się chaotyczna, co utrudni analizę i zrozumienie zgromadzonych informacji. Co więcej, z powodu różnorodności i braku porządku, eksploracja danych w Data Lake może być bardziej złożona w porównaniu do analizy w tradycyjnych hurtowniach danych. Wymaga zaawansowanych narzędzi i umiejętności. Data Lake jest przeznaczony raczej dla analityków danych niż specjalistów biznesowych czy kierownictwa.

Niska jakość danych

Data Lake pozwala na przechowywanie danych w ich oryginalnej formie, co może prowadzić do zagrożeń związanych z jakością danych. Nieuporządkowane, błędne lub niespójne dane mogą negatywnie wpływać na jakość analiz i podejmowanie decyzji. Ponadto słabością może być brak jednolitego modelu danych. W przeciwieństwie do klasycznych hurtowni danych Data Lake nie narzuca jednolitego schematu, co przekłada się na trudności w interpretacji i zrozumieniu danych przez użytkowników.

Trudności w zachowaniu bezpieczeństwa

Zarządzanie bezpieczeństwem danych w Data Lake także może być skomplikowane, zwłaszcza w przypadku przechowywania różnorodnych danych. Konieczne jest skonfigurowanie odpowiednich mechanizmów dostępu i kontroli, aby zapobiec nieautoryzowanemu dostępowi do wrażliwych informacji. W przypadku danych regulowanych, takich jak informacje osobowe, Data Lake wymaga skomplikowanych mechanizmów zabezpieczeń, aby zapewnić zgodność z przepisami dotyczącymi prywatności i regulacjami branżowymi.

Mimo tych wyzwań, skuteczne zarządzanie Data Lake oraz zastosowanie odpowiednich strategii i narzędzi mogą przyczynić się do wykorzystania jego potencjału i osiągnięcia korzyści z analizy różnorodnych danych w organizacji.

Przykłady technologii Data Lake w praktyce

Data Lakes są platformami służącymi do gromadzenia, przechowywania i przetwarzania różnorodnych danych w ich oryginalnej formie. Poniżej znajdują się przykłady popularnych narzędzi i platform do budowy i zarządzania Data Lakes:

  • Azure Data Lake Storage (ADLS) — usługa przechowywania danych w chmurze od Microsoft Azure, zaprojektowana specjalnie do obsługi potrzeb Data Lake. Dysponuje możliwością przechowywania dużej ilości danych w formie plików i może być zintegrowana z innymi narzędziami do analizy danych w chmurze.
  • Amazon S3 (Simple Storage Service) — usługa przechowywania danych w chmurze publicznej, dostępna w ramach platformy AWS. Choć nie jest specyficznie zbudowana jako narzędzie do zarządzania Data Lake, jest często używana do przechowywania dużej ilości danych różnego typu (co tworzy podstawę dla Data Lake).
  • Google Cloud Storage — usługa podobna do powyższych, oferowana przez Google Cloud.
  • Hadoop Distributed File System (HDFS) — HDFS to rozproszony system plików, który jest często wykorzystywany w ekosystemie Apache Hadoop. HDFS umożliwia przechowywanie dużych ilości danych w sposób rozproszony, co jest charakterystyczne dla podejścia Data Lake.
  • IBM Cloud Object Storage — usługa przechowywania obiektowego w chmurze, która jest często wykorzystywana jako platforma do budowy Data Lakes. Zapewnia elastyczność i skalowalność w przechowywaniu dużych ilości danych.

Warto zauważyć, że implementacja Data Lake zazwyczaj obejmuje nie tylko platformę przechowywania danych, ale także narzędzia i usługi do zarządzania kontrolą dostępu, przetwarzaniem danych oraz narzędziami do analizy. Wybór konkretnego narzędzia zależy od wymagań organizacji, rodzaju danych oraz preferencji dotyczących środowiska chmurowego.

Data Lakehouse. Połączenie tradycji i nowoczesności w podejściu do przechowywania Danych

Magazyn Data Lakehouse to połączenie dwóch opisanych już architektur: Data Lake i Data Warehouse. Jest to nowoczesna struktura przechowywania i zarządzania danymi, która łączy elastyczność i skalowalność Data Lake z możliwościami przetwarzania i analizy danych w stylu tradycyjnych hurtowni danych. Cechuje się pewnymi unikalnymi właściwościami, które stanowią odpowiedź na wyzwania związane z obiema architekturami.

Schemat architektury Data Lakehouse

Dlaczego warto użyć Data Lakehouse?

Data Lakehouse utrzymuje elastyczność przechowywania różnorodnych danych, bez konieczności wcześniejszego definiowania struktury. Umożliwia to gromadzenie danych w ich oryginalnej formie. Jednakże w Data Lakehouse zarządzanie metadanymi, takimi jak definicje schematów, jest dużo bardziej rozwinięte w porównaniu do czystych Data Lakes.

Pomaga to w lepszym zrozumieniu i śledzeniu danych zgromadzonych w tej strukturze. Co więcej, w przeciwieństwie do Data Lake, Data Lakehouse oferuje narzędzia i mechanizmy do przetwarzania i analizy w stylu hurtowni danych. To oznacza, że dane mogą być przetwarzane w sposób zoptymalizowany pod kątem szybkiego zapytania i raportowania.

Bezpieczeństwo i dane historyczne

W Data Lakehouse, zastosowanie zabezpieczeń i kontroli dostępu jest bardziej zaawansowane, co pozwala na lepszą ochronę danych i zgodność z przepisami. Niektóre platformy Data Lakehouse oferują funkcje wersjonowania danych, co pozwala na śledzenie zmian w czasie. Może to być istotne w kontekście analizy historycznej i audytu.

Integracja z zewnętrznymi narzędziami

Platformy Data Lakehouse zapewniają interfejsy programistyczne (API), które umożliwiają integrację z różnymi narzędziami analitycznymi oraz oferują łatwe w obsłudze interfejsy graficzne. Integracja z różnorodnymi narzędziami analitycznymi ułatwia pracę z danymi i generowanie raportów.

Ponadto platformy Data Lakehouse często integrują się z popularnymi narzędziami biznesowymi, takimi jak Microsoft Power BI, Tableau czy Qlik. Pozwala to na łatwe korzystanie z tych programów do tworzenia interaktywnych wizualizacji danych, raportów i paneli zarządzania. Co więcej, Data Lakehouse zazwyczaj zapewnia obsługę języka SQL, co ułatwia pracę z danymi, zwłaszcza dla użytkowników zaznajomionych z tradycyjnymi hurtowniami danych.  

Data Lakehouse jest odpowiedzią na dążenie do połączenia elastyczności Data Lake z mocą przetwarzania i analiz z tradycyjnych hurtowni danych. To podejście stara się zniwelować pewne wady obu struktur, oferując bardziej kompleksowe i wszechstronne rozwiązanie dla organizacji pracujących z danymi.

Wyzwania w Data Lakehouse

Chociaż Data Lakehouse stanowi ewolucję i próbę połączenia najlepszych cech Data Lake i tradycyjnej hurtowni danych, to implementacja może stanowić wyzwanie.

Utrata kontroli nad danymi

Traktowanie Lakehouse jako idealnej struktury typu „wszystko w jednym” lub „jedna platforma do wszystkiego” jest mylnym podejściem ze względu na złożoność poszczególnych elementów. Pomimo usiłowań stworzenia spójnego rozwiązania, ryzyko utraty kontroli nad strukturą danych w Data Lakehouse wciąż istnieje, szczególnie jeżeli zbiór danych jest bardzo duży i zróżnicowany.

Co więcej, skomplikowane zarządzanie metadanymi, choć stanowi przewagę w zakresie kontroli nad danymi, może również wymagać większego nakładu pracy w obszarze konfiguracji i utrzymania.

Wysokie koszty utrzymania

Co więcej, podobnie jak w przypadku innych zaawansowanych struktur danych, utrzymanie infrastruktury Data Lakehouse może wiązać się z wysokimi kosztami. Data Lakehouse łączy elastyczność Data Lake z wydajnością Data Warehouse, co sprawia, że struktura ta jest zazwyczaj bardziej złożona, a to wymaga zaawansowanej konfiguracji, zarządzania oraz utrzymania.

Wpływ na koszty ma również wielkość danych — jeśli organizacja operuje na dużą skalę i przechowuje ogromne ilości danych, naturalnie będzie generować wyższe koszty. Ponadto wdrożenie Data Lakehouse, tak jak i innych zaawansowanych technologii, może wymagać specjalistycznego szkolenia personelu, co z kolei wygeneruje koszty związane z edukacją pracowników.

Warto podkreślić, że wady te są względne i zależą od konkretnego kontekstu biznesowego oraz dostosowania struktury do potrzeb organizacji. Pomimo tych potencjalnych wyzwań, Data Lakehouse pozostaje potężnym narzędziem, które może dostarczyć wartości poprzez lepszą analizę danych i bardziej elastyczne zarządzanie.

Przykłady Data Lakehouse

Chociaż określenie „Data Lakehouse” jest stosunkowo nowe i nie zawsze jednoznacznie zdefiniowane, niektóre platformy i narzędzia zostały już zaprojektowane z myślą o połączeniu cech Data Lake i tradycyjnej hurtowni danych. Poniżej przedstawiamy kilka przykładów platform i narzędzi, które są często uznawane za storage w koncepcji Data Lakehouse:

  • Azure Synapse Analytics — platforma analizy danych w chmurze od Microsoft Azure, która łączy funkcje Data Lake i hurtowni danych. Pozwala na integrację danych z różnych źródeł i przeprowadzanie zaawansowanych analiz na dużą skalę.
  • Delta Lake (Databricks) — Delta Lake to otwarty projekt rozwijany przez społeczność, a jednocześnie oferowany jako usługa przez platformę Databricks. Delta Lake łączy funkcje Data Lake i hurtowni danych, dodając transakcyjne możliwości do Apache Spark, co pozwala na aktualizację, wstawianie i usuwanie danych. Przykład wdrożenia Data Lakehouse na przykładzie firmy farmaceutycznej Walgreens opisany został w artykule dostępnym tutaj.
  • Snowflake Data Lakehouse — chmurowa platforma analityczno-magazynowa, która oferuje funkcje Data Lakehouse. W Snowflake użytkownicy mogą integrować dane z różnych źródeł, przechowywać je w formie Data Lake i jednocześnie korzystać z zaawansowanych możliwości hurtowni danych do analizy.
  • Amazon Redshift — usługa magazynowania danych w chmurze AWS. Amazon Redshift AQUA (Advanced Query Accelerator) dla S3 umożliwia korzystanie z danych przechowywanych w Amazon Simple Storage Service (S3) jako Data Lake, jednocześnie oferując wydajność tradycyjnej hurtowni danych.
  • Google BigQuery Omni — usługa magazynowania danych w chmurze, która łączy cechy Data Lake i hurtowni danych. Pozwala na analizę danych przechowywanych w różnych chmurach i źródłach danych, co zwiększa elastyczność i umożliwia korzystanie z jednolitego interfejsu do analizy danych.

Warto zaznaczyć, że rozwój koncepcji Data Lakehouse jest dynamiczny, a nowe platformy i narzędzia mogą pojawiać się na rynku, wychodząc naprzeciw rosnącym potrzebom organizacji w zakresie zarządzania danymi i analiz.

Którą architekturę danych wybrać?

Decyzja pomiędzy architekturą Data Warehouse, Data Lake, a Data Lakehouse zależna jest od konkretnej charakterystyki danych, celów organizacji oraz strategii biznesowej. Każda z tych struktur reprezentuje unikalne podejście do gromadzenia, przechowywania i przetwarzania danych.

Zasoby ludzkie i umiejętności zespołu IT również odgrywają ważną rolę. Selekcja powinna być zgodna z dostępnymi zasobami oraz zdolnościami personelu Wybór musi być dokładnie dostosowany do indywidualnych potrzeb danego przedsiębiorstwa.

Warto zauważyć, że każda z tych architektur niesie ze sobą różne wyzwania i korzyści. Data Warehouse może być kosztowny, ale bardziej efektywny w analizie biznesowej. Data Lake jest skalowalny, ale wymaga skomplikowanego zarządzania jakością danych.

Data Lakehouse, będący połączeniem tych podejść, stara się zbalansować te aspekty, oferując elastyczność i wydajność. Idealnym rozwiązaniem może być hybrydowe podejście, łączące korzyści różnych architektur w zależności od konkretnych wymagań biznesowych.