Hurtownie danych to relatywnie stare rozwiązanie, korzystamy z nich od lat 80 ubiegłego wieku. Od tego czasu wiele się zmieniło, szczególnie w ostatnich latach. Oczywiście w dalszym ciągu zależy nam na jakości danych i „jednej wersji prawdy”, natomiast okazuje się, że mamy coraz więcej danych które chcemy analizować. Co więcej, te dane bardzo często nie są ustrukturyzowane i ich analiza, w klasyczny sposób, może okazać się niemożliwa. Dlatego też powstała koncepcja Data Lake, o której opowiem w tym artykule.
Czym technicznie jest Data Lake?
Jest to oczywiście koncepcja, która implementowana jest w postaci jakiejś przestrzeni dyskowej. W zależności od dostawcy chmury może to być np. Azure Dala Lake Storage Gen2, Amazon S3 czy Google Cloud Storage. Rodzi się pytanie: z jakiego powodu do analizy danych wykorzystujemy klasyczny storage, mając w zanadrzu technologie InMemory, MPP czy zaawansowane algorytmy do indeksowania? Otóż te wszystkie narzędzia będą dalej używane, natomiast Data Lake niejako rozszerza nam możliwości. Chodzi o możliwość analizy nieustrukturyzowanych zbiorów danych, takich jak video, zdjęcia czy nagrania dźwiękowe. Nie bylibyśmy w stanie umieść takich danych w klasycznej relacyjnej bazie danych, a chcielibyśmy je analizować z wykorzystaniem przeznaczonych do tego celu narzędzi. Co więcej, Data Lake świetnie sprawdzi się jako źródło wiarygodnych danych dla różnych zespołów zajmujących się analizą w naszej organizacji.
Przykładowa architektura
Jedną z podstawowych architektur jest umieszczenie Data Lake’a jako podstawy platformy danych. Do niego ładowane są dane ze wszystkich systemów, często bez przeprowadzania oczyszczania. Są to surowe dane, które później zostaną wykorzystane przez różne zespoły. Z Data Lake’a dane (po transformacjach) mogą trafić do hurtowni czy Data Mart’ów. Mogą one również zostać wykorzystane bezpośrednio przez Data Scientistów czy analityków. Data Lake może być ładowany poprzez proces proces ETL, a pliki mogą być zapisane np. w formatach parquet, avro lub dowolnie innym.
Implementacja
Najprostszą implementacją architektury opartej na Data Lake będzie utworzenie konta Storage na platformie Azure i utworzenie struktury folderów, która będzie spełniała wymagania. Ważne aby struktura była jak najbardziej generyczna, aby w przyszłości była możliwość pisania np. generycznych funkcji do odczytu czy transformacji danych. Aby utworzyć takie konto należy:
- Podłączyć się do portalu Azure.
- W wyszukiwarce wpisać „konta magazynu” i wybrać tę usługę, a następnie kliknąć utwórz.
- Podać nazwę magazynu (unikalna globalnie), wybrać grupę zasobów, region, wydajność i nadmiarowość. Nadmiarowość jest tutaj pewnego rodzaju zabezpieczeniem przed utratą danych. W zależności od potrzeb dane mogą być umieszone w różnych regionach. Gdyby zdarzył się jakikolwiek kataklizm, który zniszczyłby Data Center w jednym regionie, to nasze dane będą ciągle dostępne w innym.
- Kliknąć Dalej: Zaawansowane.
- Zaznaczyć opcję Włącz hierarchiczną przestrzeń nazw.
- Kliknąć Przejrzyj i utwórz, jeśli walidacja przebiegnie pomyślnie, należy kliknąć utwórz.
- Konto magazynu zostało utworzone. Można teraz dodawać tam pliki i przeglądać je za pośrednictwem Storage Explorera.
Wideo
Jeśli chcesz rozszerzyć temat Data Lake’a to zapraszam do obejrzenia krótkiego wideo, na którym pokazuję w jaki sposób zaimplementować rozwiązanie na platformie Azure.