Dziennik zdarzeń w IT

Snowflake – nowa generacja hurtowni danych w chmurze

Historia hurtowni danych sięga lat 60-tych ubiegłego stulecia. Osiągnięto wiele, ale okazuje się, że zawsze można coś usprawnić. Opowiem o nowym podejściu do przetwarzania danych. Oto Snowflake – hurtownia danych w chmurze.

Po co nam hurtownia danych?

Odkąd powstały, ułatwiają nam zrozumienie biznesu oraz jego aspektów na podstawie danych. Zbierają dla nas informacje z różnych systemów źródłowych, łączą je i przetwarzają, aby udostępnić do dalszej analizy bądź raportowania. 

Za każdym z wymienionych etapów tego procesu kryje się sporo wiedzy, doświadczeń oraz wyborów, aby uzyskać wynik prawdziwy, dokładny oraz dostarczony w rozsądnym czasie. 

Ale to nie wszystko. Jak każdy system, tak i hurtownię danych należy utrzymać w dobrej kondycji, zadbać o narzędzia do monitorowania jej stanu. Bardzo istotnym aspektem jest bezpieczeństwo. Architektura powinna umożliwiać rozwój oraz testowalność. Dobre hurtownie to nie tylko te, które dostarczają dokładne wyniki, ale zdecydowanie te, które będą to robić w przyszłości.

Czego oczekujemy od nowoczesnych hurtowni danych?

Oczywiście powinny spełniać swoje „statutowe” cele, ale również nadążać za obecnymi trendami, czyli w skrócie: więcej, szybciej, wygodniej, taniej. Dane przetworzone są dobrem konsumpcyjnym, a wzbogacone o inne informacje pozwalają budować aplikacje w wydajny i opłacalny sposób. Jakość i bezpieczeństwo stają się coraz bardziej istotne, zwłaszcza gdy dane są powierzane innym organizacjom.

Dzisiaj oczekujemy precyzyjnych odpowiedzi niemal natychmiast, bez względu na pochodzenie danych źródłowych. Coraz częściej chcemy zasilać hurtownie nowymi rodzajami danych np. danymi geograficznymi, strumieniowymi czy IoT. Chcemy odpytywać aplikacje, tworzyć grafy. Oczekujemy natywnego wsparcia dla popularnych typów plików.

Jako jedno z kluczowych repozytoriów danych hurtownia staje się ważnym elementem w procesie dostarczania danych do wszystkich odbiorców w przedsiębiorstwie, ale i poza nim. 

Grono konsumentów poszerzyło się o inne systemy, a tym samym korzystają z nich niemal wszyscy. Jakość danych doceniają między innymi zespoły pracujące nad sztuczną inteligencją, działy marketingu, sprzedaży.

Michał Rogalski Capgemini

Snowflake – hurtownia danych w chmurze

Ze względu na dostępność, skalowalność, relatywnie niskie koszty oraz wiele innych zalet coraz chętniej budujemy aplikacje w chmurze. Ten sam trend dotyczy hurtowni danych. Ale czy musimy ograniczać się do rozwiązań oferowanych nam przez dostawców chmury publicznej?

Twórcy Snowflake’a chcieli zbudować wydajny system, który z jednej strony będzie mógł wykonywać wiele operacji równolegle, ale jednocześnie zachowa integralność danych i ograniczy konflikty dostępu do nich, a także będzie obsługiwał skomplikowane operacje, ale w możliwie najprostszy sposób. Ze względu na zalety chmury publicznej właśnie ona została wybrana jako środowisko. Początkowo był to AWS, ale z czasem zaczęto wykorzystywać również chmury Microsoftu i Google. 

Snowflake został zbudowany od postaw jako hurtownia w chmurze. Co ciekawe, bazuje na wspomnianych wyżej dostawcach, ale nie na ich rozwiązaniach dedykowanych hurtowni, a jedynie na komponentach związanych z obsługą sieci, pamięci masowych oraz mocy obliczeniowej. 

Jest dostarczany jako usługa w modelu SaaS. Nie jesteśmy zatem obarczeni koniecznością budowy całej infrastruktury, a jedynie ograniczamy się do wyboru dostawcy chmury, regionu oraz edycji samego Snowflake’a. W kolejnych etapach pozostaje nam już tylko założenie użytkowników, dodanie ról, ustawienie baz danych i wirtualnych hurtowni. 

Hybrydowa architektura została oparta o koncepcje współdzielenia zasobów dyskowych oraz shared-nothing w odniesieniu do bazy danych i procesowania MPP (Massively Parallel Processing).

Architektura trójwarstwowa

Architektura trójwarstwowa składa się z:

database storage, warstwy odpowiedzialnej za przechowywanie danych w chmurze w wewnętrznym formacie kolumnowym. Dane domyślnie są skompresowane i, jak przystało na SaaS, to system odpowiada za zarządzanie metadanymi, rozmiarem, strukturą i statystykami.

query processing umożliwia dostęp do danych z wykorzystaniem virtual warehouses; pojedyncza wirtualna hurtownia jest jednostką obliczeniową, klastrem wirtualnych maszyn, który może być skalowany nawet w trakcie wykonywania operacji.

cloud services to warstwa, która zarządza wszystkimi zadaniami Snowflake’a, począwszy od autentykacji, zarządzania sesjami klientów, zarządzania infrastrukturą, metadanymi, optymalizacją zapytań aż do otrzymania wyników.

Wygoda i szybkość działania

Snowflake jest gotową do użycia usługą, która może być dostarczona w kilka minut.

Każda operacja wykonywana jest w kontekście roli użytkownika, bazy danych oraz wirtualnej hurtowni, co odpowiada za: bezpieczeństwo, prawa dostępu, zakres danych oraz dostępną moc obliczeniową. Użytkownik poprzez rolę może otrzymać dostęp do wielu baz danych oraz wirtualnych hurtowni. Te zaś w ramach potrzeb mogą być włączane, wyłączane lub skalowane. Skalowanie hurtowni odbywa się w sposób transparentny dla użytkownika – szybko oraz bez zakłóceń dla trwających już obliczeń. 

Co to oznacza w praktyce? 

Możemy używać jednej, małej hurtowni do ładowania danych, inną udostępnić na potrzeby procesów ELT, a obie włączyć jedynie, gdy są potrzebne. Dział księgowości może otrzymać bardziej wydajną hurtownię w okresie sprawozdawczym, zaś na co dzień – posługiwać się nieco skromniejszą wersją.

Dodatkowo od edycji Enterprise dostępna jest funkcjonalność multi-claster, która umożliwia zwielokrotnienie wirtualnej hurtowni zgodnie z przyjętą polityką. Możliwe jest skalowanie horyzontalne oraz określenie minimalnej i maksymalnej ilości klastrów. Włączając tę opcję dla hurtowni, której utylizacji nie jesteśmy w stanie przewidzieć, dostarczamy elastyczny i wydajny system niezależnie od tego, czy potrzebujemy pobrać niewielką porcję danych czy wykonać skomplikowane analizy.

Aby jeszcze bardziej poprawić wydajność, wprowadzono:

result cache, który przechowuje wyniki każdego zapytania z ostatnich 24 godzin, pod warunkiem niezmienności danych źródłowych,

local disc cache, pamięć w ramach pojedynczych hurtowni, która zapisuje na „swoich” dyskach SSD lub w pamięci RAM wcześniej pobrane dane. 

Twórcy Snowflake’a zadbali o wygodę użytkowników, dostarczając im możliwość połączenia się z ich ulubioną hurtownią poprzez: interfejs webowy, CLI, konektor do Pythona, Sparka lub Kafki albo poprzez sterownik JDBC, ODBC, Node.js lub .NET.

Snowflake wspiera przetwarzanie plików JSON, Avro, ORC, Parquet czy XML dzięki automatycznej detekcji struktury. Plik może być w całości zapisany w bazie danych, a dostęp do poszczególnych pól odbywa się poprzez SQL-a. Oferowane jest również natywne wsparcie dla danych geograficznych zgodnie ze standardem WGS 84.

Klonowanie i dane historyczne

Testerom i deweloperom, ale nie tylko im, przydadzą się dwie funkcjonalności: Time Travel oraz Zero-copy Cloning.

Time Travel

Time Travel to nic innego jak dostęp do historycznych danych. Oprócz sięgania wstecz poprzez zapytania możliwe jest klonowanie i odtwarzanie usuniętych obiektów. W ramach edycji standard mamy dostęp do danych historycznych nie starszych niż 1 dzień, pozostałe edycje oferują do 90 dni podróży w czasie.

Zero-copy Cloning

Zero-copy Cloning to funkcjonalność, która umożliwia stworzenie drugiej instancji tabeli, schematu lub bazy bez wykonywania kopii danych. Podobną funkcjonalność zapewnia wirtualizacja baz danych oferowana przez Delphixa, który potrafi sklonować bazę danych w kilka minut. Wersja Snowflake’a jest jednak jeszcze szybsza i aplikowalna nawet na poziomie tabeli.

Z pewnością opcja porównania danych sprzed i po zmianach przy pomocy jedynie SQL-a ułatwi budowę jeszcze bardziej wnikliwych scenariuszy testowych. Zero-copy Clonning może być wykorzystany, gdy niezbędne jest zachowanie bazy danych w stanie nienaruszonym. Testy można wykonać na klonie, a następnie go usunąć. 

Zero-copy Clonning w połączeniu z CLI niekiedy bardzo ułatwia budowę pipeline’u CI/CD.

Współdzielenie danych

Dostęp do danych wewnątrz organizacji możliwy jest poprzez konta użytkowników i ACL. Nadawanie uprawnień opiera się na rolach, zaś same uprawnienia dotyczą każdego obiektu – począwszy od tabeli, schematu bazy poprzez virtual warehouse do zarządzania innymi użytkownikami i rolami.

Aby udostępnić dane na zewnątrz organizacji, należy posłużyć się mechanizmem Secure Data Sharing. Ten oferuje kilka metod: 

Direct Share, który polega na stworzeniu konta konsumenta i nadaniu dostępu do udostępnionych uprzednio obiektów,

Data Exchange, to data hub umożliwiający współpracę nad zbiorem danych wybranym użytkownikom Snowflake’a,

Snowflake Data Marketplace jest platformą wymiany pomiędzy dostawcami danych a ich konsumentami.

Hurtownia danych Snowflake – bezpieczeństwo

Gdy mowa o dostępie do danych, pojawia się temat bezpieczeństwa.

via GIPHY 

Snowflake oferuje dynamiczne maskowanie danych, którego polityki oparte są o UDF (user-defined function). Drugą ważną funkcjonalnością jest kontrola dostępu na poziomie wierszy, co można osiągnąć poprzez secure views i secure UDF.

Zaimplementowanie polityk bezpieczeństwa zgodnie z wymaganiami danej organizacji będzie wymagało nieco nakładu pracy, ale z pewnością warto to zrobić, szczególnie gdy udostępnione dane trafiają poza organizację. 

Na rynku dostępne są zdecydowanie lepsze rozwiązania do maskowania danych, wzbogacone chociażby o detekcję danych wrażliwych czy wbudowane algorytmy. Niemniej w wielu przypadkach rozwiązanie Snowflake’a będzie wystarczające i tańsze.

Jeśli chodzi o konsumowanie danych z innych źródeł, to możemy użyć wspomnianych mechanizmów, aby pobrać dane z innych kont Snowflake’a, a dzięki External Tables połączyć się z repozytorium plików w chmurze: AWS S3, Google Cloud Storage czy Azure Storage. Możliwa jest także integracja Snowflake’a z Apache Hive Metastore.

Snowflake: hurtownia danych – podsumowanie

Snowflake to interesująca propozycja hurtowni w chmurze. Jej unikalna architektura zapewnia wydajność i bezpieczeństwo. Usługa jest prosta w użytkowaniu i łatwo integruje się z narzędziami do przetwarzania i wizualizacji danych. Udostępnianie danych dla swoich klientów i/lub partnerów jest świetnym rozwiązaniem. Warto zwrócić uwagę na klonowanie, funkcjonalność, która w przypadku innych baz danych wymaga osobnych aplikacji i drogich licencji.

Przydatne zasoby:

***

Według danych No Fluff Jobs kategorie Big Data oraz Security zapewniają jedne z najlepszych zarobków w branży. Specjaliści z tych grup mogą liczyć na wynagrodzenia sięgające nawet 20,000 PLN netto (+VAT). Na naszym portalu czeka na Ciebie sporo atrakcyjnych ofert z tych kategorii (wszystkie z podanymi widełkami wynagrodzeń!).

Oceń artykuł
(0 / 5)
Subscribe
Powiadom o
guest
0 komentarzy
Informacje zwrotne w tekście
Wyświetl wszystkie komentarze
This site is registered on wpml.org as a development site.
123