• Akademia
  • Blog
  • O Serverless
  • O stronie

Co to jest Data Lake? Definicja


Co to jest Data Lake? Definicja
Wyobra藕 sobie jezioro sk艂adaj膮ce si臋 z niesko艅czonej ilo艣ci kropel po艂膮czonych ze sob膮 tylko dlatego, 偶e znajduj膮 si臋 w tym samym miejscu. Ka偶da kropla to jaki艣 zbi贸r danych, wszystkie razem stanowi膮 pewn膮 ca艂o艣膰 (np. dane przedsi臋biorstwa, dane dot. bada艅 nad nowym lekiem itp.). Teraz, gdy widzisz ten obraz w swojej g艂owie to dobry moment, aby przedstawi膰 Ci definicj臋.

Definicja

Data lake to (centralne) repozytorium, kt贸re przechowuje ustrukturyzowane i nieustrukturyzowane dane w dowolnej skali. W jeziorze danych przechowujesz dane w takim formacie w jakim oryginalnie s膮 (bez konieczno艣ci ich uprzedniej transformacji i strukturyzacji) lub przetworzone je艣li Ci to bardziej odpowiada (np. do formatu Apache Parquet).

Bezpo艣rednio na tych danych uruchamiasz r贸偶ne rodzaje analiz, kt贸re mo偶esz wykorzysta膰 do wizualizacji (generowanie raport贸w, dashboardy itp.), przetwarzania big-data, analityki w czasie rzeczywistym oraz machine learning.

Wszystko po to, aby podejmowa膰 (automatycznie) lepsze decyzje.

Sk膮d ta nazwa?

Jeziora danych sw膮 nieco dziwn膮 nazw臋 zawdzi臋czaj膮 idei, kt贸ra stawia je w opozycji wobec hurtowni danych, w kt贸rych dane musz膮 by膰 zgodne z g贸ry przyj臋t膮, narzucon膮 struktur膮. Jak woda w butelce na linii produkcyjnej.
Data mart - krople zamkni臋te w butelce

Dane, podobnie jak woda w jeziorze znajduj膮 si臋 w swojej naturalnej formie i nie s膮 podawane takim procesom standaryzacji鈥 st膮d data lake. 馃檪
Data mart to nie Data lake

Ukucie terminu data lake przypisuje si臋 Jamesowi Dixon (贸wczesnemu) CTO firmy Pentaho. Powiedzia艂 on

The difference between a data lake and a data warehouse is that in a data warehouse, the data is pre-categorized at the point of entry, which can dictate how it鈥檚 going to be analyzed. This is especially true in online analytical processing, which stores the data in an optimal form to support specific types of analysis.

Do czego s艂u偶y data lake?

Mimo tego, i偶 koncepcja data lake liczy sobie blisko dekad臋 (a big data jeszcze wi臋cej) dopiero od niedawna staje si臋 powszechna, moim zdaniem, g艂贸wnie na skutek popularyzacji chmury publicznej. To przecie偶 us艂ugi zarz膮dzane wy偶szego rz臋du zdejmuj膮 z nas ci臋偶ar samodzielnej instalacji oraz konfiguracji specjalistycznego oprogramowania oferuj膮c praktycznie bezobs艂ugowe rozwi膮zania. A to drastycznie obni偶a pr贸g wej艣cia w 艣wiat data lake.

Pytanie: Po co mieliby艣my do niego wchodzi膰?

Z definicji data lake daje nam du偶o wi臋ksz膮 elastyczno艣膰 techniczn膮 i biznesow膮. Sk艂adowanie danych w 藕r贸d艂owym formacie pozwala je analizowa膰 z wielu perspektyw, r贸wnie偶 tych, kt贸re pojawi艂y si臋 post factum, co cz臋sto nie jest mo偶liwe w przypadku baz danych oraz hurtowni danych, gdzie dane s膮 przechowywane z my艣l膮 o konkretnych (znanych zawczasu) zastosowaniach i przystosowane do odpowiadaj膮cych im analiz.

Do najpopularniejszych obecnie zastosowa艅 mo偶emy zaliczy膰:

  • Analiza danych organizacji pochodz膮cych z wielu wewn臋trznych system贸w
  • IoT - analiza i przetwarzanie danych pochodz膮cych z wszelkiego typu urz膮dze艅
  • Analiza log贸w - biznesowych (np. klikanie w reklamy) jak i technicznych (np. AWS CloudTrail Logs)
  • Uczenie maszynowe (machine learning) w celu odnajdywania heurystyk i przewidywania zdarze艅 (np. awaria maszyny lub zachowanie klienta)
  • Badania naukowe - cho膰by w medycynie (ludzki genom, leki itd.), naukach spo艂ecznych, ekonomii i wielu innych.

Jak to dzia艂a?

Jeziora danych przechowuj膮 ogromne ilo艣ci danych, co jest naturaln膮 konsekwencj膮 tego, 偶e po pierwsze produkujemy coraz wi臋cej danych 馃槈, a po drugie dlatego, 偶e mo偶na w nich trzyma膰 dane w dowolnym formacie. To, 偶e nie musimy ich poddawa膰 Transformacji w takim znaczeniu jakie mamy w procesach ETL, znanych cho膰by z hurtowni danych, znakomicie upraszcza procesy zasilania. (W praktyce nie mamy tutaj proces贸w ETL, a ELT ale o tym w kolejnym artykule).
Data lake w AWS

殴r贸d艂o: What is a data lake?

Dzi臋ki czemu mamy tylko jedno (centralne) miejsce do przechowywania danych, w kt贸rym mo偶emy umieszcza膰 dane ze wszystkich 藕r贸de艂 (aplikacji, system贸w) jakimi dysponujemy.

W przypadku AWS tym miejscem jest oczywi艣cie Bucket w S3, dzi臋ki czemu dane s膮 bezpieczne (w kontek艣cie niepowo艂anego dost臋pu do nich jak i ich utraty z powodu awarii). AWS zapewnia te偶 niezb臋dn膮 do takich zostawa艅 skalowalno艣膰, dzi臋ki czemu nasz data lake mo偶emy zape艂nia膰 danymi w dowolnym tempie bez obawy o to, 偶e zostanie zar偶ni臋ty wydajno艣ciowo.

Dzi臋ki temu, 偶e dane trzymamy na S3 to w naturalny spos贸b uzyskujemy rozdzia艂 pomi臋dzy warstw膮 przechowuj膮c膮 dane, a warstw膮, kt贸ra je analizuje. Jak si臋 domy艣lasz, ta druga jest bardzo zasobo偶erna je艣li chodzi o moc obliczeniow膮 (compute). Taki podzia艂 umo偶liwia nam niezale偶ne skalowanie warstw, a tym samym lepsz膮 wydajno艣膰 i ni偶sze koszty rozwi膮zania.

A co Data Lake ma wsp贸lnego z serverless?

W chmurze AWS us艂ugi z kt贸rych mo偶na zbudowa膰 jeziora danych s膮 w pe艂ni zarz膮dzane i dzia艂aj膮 w modelu serverless. Nie musisz powo艂ywa膰 serwer贸w ani p艂aci膰 za ich bezczynno艣膰 wtedy, gdy nie korzystasz aktywnie z takiego repozytorium. Oczywistym wyj膮tkiem jest oczywi艣cie AWS S3, w kt贸rym p艂acimy za przechowywane dane, natomiast transformacje (np. AWS Glue) i analityka (Amazon Athena) s膮 rozliczane podobnie jak AWS Lambda w modelu pay-as-you-go.

Podsumowanie

Zarz膮dzane us艂ugi pozwalaj膮 wykorzysta膰 maksymalnie du偶o czasu architekt贸w i in偶ynier贸w tam gdzie to wa偶ne, czyli na doj艣ciu do oczekiwanych wynik贸w analizy i dalszym ich wykorzystaniu w ca艂ym rozwi膮zaniu, kt贸re budujemy. Dzieje sie tak, gdy偶 nie jeste艣my zmuszeni do samodzielnego powo艂ywania serwer贸w i instalacji na nich specjalistycznego oprogramowania (o kt贸rym cz臋sto nie mamy 偶adnego poj臋cia od strony administracyjnej). Nie musimy si臋 te偶 troszczy膰 o bezpiecze艅stwo tych serwer贸w, poniewa偶 jest to teraz odpowiedzialno艣膰 specjalist贸w po stronie AWS.

Rozwi膮zania klasy data lake, daj膮 nam mo偶liwo艣膰 pracy na danych, na kt贸rych w 偶aden inny spos贸b by艣my nie mogli dzia艂a膰 bez uprzedniego poniesienia koszt贸w ich analizy, specyfikacji i przetworzenia. Taka inwestycja w obrobienie danych rzadko kiedy ma miejsce (po wdro偶eniu, gdy偶 cz臋sto jest projektem samym w sobie).
W przeciwie艅stwa do hurtowni danych, brak schemat贸w i narzuconych struktur pozwala wielokrotnie wykorzysta膰 te same zbiory w ro偶nych analizach oferuj膮c biznesow膮 elastyczno艣膰 i technologiczn膮 prostot臋, r贸wnocze艣nie przy niskich nak艂adach poniesionych na zasilanie jeziora danymi.