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.
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ę.