Snowflake jest jak rakietowy pocisk – tak ostatnio napisał jeden z ich Inżynierów w poście na LinkedIn. O ile często w przypadku nowych technologii mamy do czynienia z wieloma rozwiązaniami, które mają być rewolucyjne, a w praktyce nie są. To w przypadku Snowflake-a tak rzeczywiście jest. Piszę to z perspektywy osoby, która miała okazję korzystać z tego, jak również wielu innych narzędzi w obszarze hurtowni danych. Podczas naszych webinarów prezentujemy czym jest hurtownia danych Snowflake, jej możliwości oraz między innymi integrację z Tableau.
Snowflake, a hurtowania danych
Napisałem powyżej „hurtowni danych” … choć Snowflake to zdecydowanie więcej. Tym samym chciałbym rozpocząć nowy cykl krótkich artykułów, w których po krótce skupię się na najważniejszych funkcjonalnościach Snowflake-a jako platformy do zarządzania danymi w firmie. Kolejność nie jest przypadkowa. W pierwszym artykule chciałbym skupić się na funkcjonalności „data sharing”, czyli dzielenia się danymi.
Czym jest dzielenie się danymi z perspektywy Snowflake-a?
Jest to bezpieczne, proste i efektywne kosztowo udostępnianie naszych firmowych danych. Na przykład naszym kontrahentom, partnerom biznesowym, dostawcom, klientom, etc. W dzisiejszych czasach generowane są olbrzymie ilości danych, które mogą okazać się bardzo przydatne dla innych firm. Jako przykład można wymienić sieć supermarketów, która przekazuje swoim dostawcom dane o sprzedaży ich produktów – łącznie z wolumenem, lokalizacją sklepu, czasem sprzedaży, koszykiem produktów zakupionych w tym czasie, etc. Możliwości są bardzo duże…
Snowflake – koncepcja dzielenia się danymi
pojawiła się praktycznie w tym samym momencie co relacyjne bazy danych. Od samego początku mieliśmy jednak do czynienia z wieloma wyzwaniami takimi jak:
- Jedno źródło prawdy – „producenci danych” utrzymują tylko jedną centralną bazę danych, do której wszyscy uprawnieni mogą się podłączyć bez ograniczeń;
- Klienci mogą podłączyć się do danych w czasie rzeczywistym bez konieczności odświeżania extractów oraz przesyłania danych;
- Pełne bezpieczeństwo – dostęp na poziomie wiersza i kolumny w zależności od uprawnień;
- Brak wpływu dzieleni się danymi na wydajność hurtowni;
- Dzielenie się danymi nie angażuje znaczących zasobów po stronie firmy, bez dodatkowych serwerów, duplikacji danych, etc.
Próba odpowiedzi na wszystkie wyżej wymienione wyzwania poprzez danie dostępu do bazy produkcyjnej wszystkim użytkownikom posiadającym login i hasło. Nie obędzie się bez wpływu na wydajność bazy produkcyjnej. Wystarczy jedno nieoptymalne zapytanie, które wykorzysta zbyt dużo zasobów systemu i pozostali użytkownicy to odczują.
Z drugiej strony skopiowanie danych do zewnętrznych silosów lub udostępnianie ich jako extractów szybko doprowadzi do sytuacji, w której dane w pewnym momencie przestana być aktualne i nie będzie dłużej spełniony warunek jednego źródła prawdy. A to z kolei może prowadzić do sytuacji, w której ważne decyzje biznesowe będą podejmowane o nieaktualne dane.
Pozostaje jeszcze podejście w oparciu o Open API. Niestety również i to podejście nie spełni wszystkich powyżej opisanych warunków. O ile warunki jednego źródła prawdy, braku konieczności tworzenia oddzielnych data martów czy też extractów oraz zapewnienie bezpieczeństwa będą spełnione, to dwa ostanie punkty z naszej listy już nie. Każde zapytanie po API spowalnia bazę produkcyjną. Dodatkowo napisanie API, testowanie, wdrożenie i utrzymanie – to wszystko zajmuje czas oraz generuje koszty.
Snowflake hurtownia danych – jak ją zastosować?
Podsumowując, odpowiedzią Snowflake-a jest coś, co po angielsku nazywa się „multi cluster, shared data architecture”. Warstwa obliczeniowa jest całkowicie odseparowana od warstwy „storage”. Ponadto każdy cluster – będący de facto wirtualna hurtownią danych, może niezależnie od innych, odczytywać oraz zapisywać dane. Zespół analityczny, procesy ETL – wszystko to może być od siebie odseparowane i nie wpływać na prace innych użytkowników. To co zrobi któryś z naszych dostawców, którym daliśmy dostęp do danych, nie wpłynie w żadnym stopniu na naszą pracę oraz prace innych firm korzystających z naszych danych, ponieważ dzielenie się danymi w wydaniu Snowflake-a jest bardzo proste. Konsumenci danych widzą dane, które zostały im udostępnione jako tabelę lub widok i mogą od razu rozpocząć pracę.
