Hurtownia danych czy "jezioro danych" (Data Lake)




Byłem kilka miesięcy temu w dużej firmie zajmującej się handlem detalicznym. Rozmawialiśmy o problemach jak ta firma ma z raportowanie. Wyglądało to tak:


  • Bardzo dużo systemów źródłowych zasilających wiele systemów raportowych

  • Raporty z tych systemów prezentują rozbieżne wyniki

  • Różne wyniki generują różne wnioski biznesowe

  • Do tego zawiłe utrzymywanie i rozbudowywanie takiego środowiska


Osoby, z którymi rozmawiałem były głęboko przekonane, że konieczny jest jakiś zdecydowany ruch ich firmy w obszarze raportowym. I jak się okazało mieli ten ruch obmyślony, a oczekiwali jedynie potwierdzenia słuszności swojej idei. Takim ruchem według nich powinno być kopiowanie wszystkich danych do jednego miejsca zwanego przez nich Data Lake. Kopiowanie bez żadnego czyszczenia i integracji. A następnie udostępnienie użytkownikom tych danych. I wówczas wszystkie problemy znikną.


Próbowałem tłumaczyć, że potrzebują tradycyjnej Hurtowni Danych (Data Warehouse), a Data Lake może być jedynie jej rozszerzeniem. Nikogo nie przekonałem. A w informacji zwrotnej po spotkaniu dostałem wiadomość, że: "szukają partnera z bardziej nowoczesnym podejściem do rozwiązań raportowych niż tradycyjne hurtownie danych". :-(


Czy więc Hurtownie Danych są już passé? Czy za chwilę całkiem znikną zastąpione przez nowoczesne rozwiązanie Data Lake? A ja - jeśli nie chcę w historii informatyki zająć miejsca tuż obok kart perforowanych i dyskietek – powinienem jak najszybciej wykonać skok na główkę do jakiegoś jeziora? ;-)

Żeby odpowiedzieć na to pytanie trzeba najpierw ustalić co to jest Hurtownia Danych i co to jest Data Lake.


Co to jest Hurtownia danych


Hurtownia Danych to system gromadzący możliwie jak najwięcej danych z przedsiębiorstwa. Te dane są gromadzone w uporządkowany sposób. Kluczowym elementem hurtowni jest model danych. Jak mawiał twórca pierwszej w Polsce Hurtowni Danych dla NBP – model danych dla Hurtowni Danych to to samo co fundament dla domu. Można budować bez fundamentu, ale czy taki dom długo postoi?

Są dwa główne podejścia do budowy modelu danych: wielowymiarowy (Kimball) i znormalizowany (Inmon). W obu kluczowym założeniem jest to, że dane określonego typu są zintegrowane i trafiają do jednego obszaru danych w hurtowni. W uproszczeniu można powiedzieć, że na przykład dane klientów są gromadzone w jednej tabeli (nawet jeśli zbieramy je z kilku systemów źródłowych) i jeden klient występuje w takiej tabeli tylko raz (mimo, że w różnych systemach źródłowych może funkcjonować pod różnymi identyfikatorami).


Co to jest Data Lake


Data Lake też rozumiem jako składnicę różnych danych. Ale zapisywanych w postaci takiej jak w systemach źródłowych (strukturalnych i niestrukturalnych) bez żadnych albo z małymi transformacjami. Data Lake nie ma zintegrowanego modelu danych. Odnosząc się do powyższego przykładu – jeśli dane o klientach są w wielu systemach źródłowych to w Data Lake’u będzie kilka tabel z tymi danymi, każda z kopią danych z różnego systemu źródłowego.

Hurtownia danych + Big Data

Data Lake jest często utożsamiany z Big Datą. Na jednym ze szkoleń Microsoftu widziałem taki slajd: microsoft.com.


Dobrze pokazuje on miejsce rozwiązań Big Data w ramach Hurtowni Danych.


  • Pierwszy (ETL Offload Data Prep) to Big Data jako obszar przejściowy do wykonania transformacji wymagających dużo mocy, której wyniki trafiają ostatecznie do Hurtowni Danych. Pewnie można takie użycie nazwać Data Lake – ale taki Data Lake jest tylko środkiem do zasilenia docelowej Hurtowni Danych.

  • W dwóch kolejnych przypadkach Big Data jest tylko inną technologią na potrzeby Hurtowni Danych – w obu przypadkach dane tam gromadzone są uporządkowane i zintegrowane – inaczej nie byłby możliwy prosty dostęp do tych danych jak do pozostałych elementów hurtowni. Gdyby takie użycie Big Data nazywać Data Lake to by znaczyło, że Data Lake to po prostu inna nazwa na Hurtownię Danych.

  • Ostatnia architektura (Run data science) pokazuje Big Datę jako środowisko obok Hurtowni Danych na potrzeby analiz zaawansowanych wykonywanych przez data scientist’ów. Dane tam są wrzucone bez większych zmian. Potrzebne transformacje i czyszczenie danych zrobią w miarę potrzeb sami data scientist’ci.


Data Lake rozumiem tak jak w ostatnim wypadku. Środowisko nieuporządkowanych danych na potrzeby różnego rodzaju prób danych, sprawdzania ich jakości i użyteczności oraz do budowania i weryfikowania modeli predykcyjnych czy innych analiz zaawansowanych. Jeśli nasze dane mają służyć tylko do analiz zaawansowanych data scientistów to taki Data Lake nam wystarczy. Ale jeśli mają służyć do przygotowywania spójnych raportów prezentujących obraz całej firmy, w szczególności samodzielnego robienia raportów przez użytkowników to bez tradycyjnej Hurtowni Danych, ze zintegrowanymi, spójnymi i wyczyszczonymi danymi, raczej się nie obejdzie.



Andrzej Szczechla

Principal Data Architect w BitPeak

31 wyświetlenia