Snowflake to chmurowa baza danych, dostępna w modelu subskrypcyjnym, lecz wykraczająca daleko poza tradycyjne funkcje baz danych. Umożliwia zaawansowane analizy danych, tworzenie raportów z wykorzystaniem Streamlit, hostowanie modeli machine learning (ML) oraz wykonywanie predykcji. To kompleksowa platforma analityczna, z której korzysta ponad 9 tysięcy firm, w tym 709 firm z listy Forbes Global 2000.
Krótkie wprowadzenie do historii Snowflake
Założony w 2012 roku przez Benoît Dageville, Thierry Cruanes i Marcina Żukowskiego, Snowflake od samego początku miał na celu stworzenie wydajnej platformy analitycznej. Początkowo działał wyłącznie na Amazon Web Services (AWS), a w kolejnych latach wprowadzono wsparcie dla Microsoft Azure (2018) i Google Cloud Platform (2019). Platforma weszła na rynek w 2014 roku, zyskując szybko popularność dzięki innowacyjnym funkcjom, co zaowocowało liczbą klientów, z których wielu generuje ponad milion dolarów przychodu dla Snowflake.
Kluczowe cechy i funkcjonalności Snowflake
- Oddzieleniu zasobów dyskowych od obliczeniowych: Pozwala to na elastyczne skalowanie w zależności od potrzeb.
- Wsparciu dla ACID: Zapewnia integralność i bezpieczeństwo transakcji.
- Zero-copy cloning: Umożliwia klonowanie terabajtów danych bez fizycznego kopiowania.
- Time travel: Opcja „podróży w czasie” umożliwia przywracanie danych do wybranego momentu w przeszłości.
- Obsłudze zapytań SQL: Ułatwia integrację z innymi systemami i przyspiesza wdrażanie w organizacjach.
Architektura Snowflake: Cloud Services, Compute i Storage
Platforma Snowflake zbudowana jest na trzech warstwach:
- Cloud Services: Odpowiada za zarządzanie i optymalizację procesów, takich jak autoryzacja, kontrola dostępu i metadane.
- Compute: Przetwarzanie zapytań i ładowanie danych odbywa się na wirtualnych hurtowniach (Virtual Warehouses), które można dowolnie skalować i przypisywać do różnych ról.
- Storage: Elastyczny magazyn danych, wykorzystujący takie technologie jak AWS S3, Azure Blob Storage i Google Cloud Storage, dzięki czemu dostajemy praktycznie limitowaną przestrzeń.
Storage i mikropartycje
Snowflake korzysta z unikalnej struktury danych zwanej mikropartycjami – to niewielkie, niemodyfikowalne pliki (od 50 do 500 MB) automatycznie partycjonowane przez system. Mikropartycje wspierają funkcję Continuous Data Protection (CDP), która pozwala odzyskać dane w przypadku ich przypadkowego usunięcia lub zmodyfikowania. Okres, w którym możemy samodzielnie przeglądać i przywracać dane, nazywany "time travel retention" i jest to maksymalnie 90 dni w zależności od wersji Snowflake, co daje nam spory margines bezpieczeństwa na wypadek nieplanowanych zmian.
Storage Stage: Elastyczne przechowywanie danych
Snowflake oferuje tzw. Stage – przestrzeń na dane przypominającą chmurowe buckety. Dostępne są dwa główne typy Stage:
- Internal Stage: Zarządzany bezpośrednio przez Snowflake, z opcjami współdzielenia między użytkownikami.
- External Stage: Integracja z zewnętrznymi systemami przechowywania danych (AWS S3, Azure Blob, Google Cloud Storage), co pozwala na przetwarzanie danych bez konieczności ich kopiowania.
Compute: Wirtualne Hurtownie (Virtual Warehouses)
Warstwa obliczeniowa Snowflake opiera się na wirtualnych hurtowniach, które są automatycznie wyłączane po skończonej pracy, jak i automatycznie uruchamiane jeżeli zajdzie taka potrzeba. Snowflake pozwala wybrać odpowiedni rozmiar takiej hurtowni – od X-Small do 6X-Large – w zależności od potrzeb. W celu optymalizacji zasobów dostępne jest również skalowanie horyzontalne – tzw. „multicluster warehouses” – które automatycznie dostosowuje liczbę klastrów (hurtowni) w zależności od obciążenia. Co ważne, nie każda operacja wymaga VWH – w niektórych przypadkach Snowflake korzysta z zasobów serverless, które działają autonomicznie i pozwalają na redukcję kosztów.
Cloud Services – integracja i bezpieczeństwo
Warstwa usług chmurowych zarządza i koordynuje wszystkimi operacjami w Snowflake. Wyróżniamy w niej 4 główne komponenty:
- Uwierzytelnianie i kontrola dostępu
- Zarządzanie infrastrukturą
- Zarządzanie metadanymi
- Parsowanie i optymalizacja zapytań
Wersje platformy
Snowflake uruchamiamy w jednej z 4 dostępnych wersji:
- Standard Edition
- Enterprise Edition
- Business Critical Edition
- Virtual Private Snowflake (VPS):
Wersje różnią się funkcjonalnością oraz poziomem zgodności z certyfikatami i regulacjami. Szczególną uwagę warto zwrócić na wersję Virtual Private Snowflake (VPS), która jest uruchamiana na życzenie klienta i nie dzieli żadnych danych z pozostałą infrastrukturą Snowflake.
Model kosztów i kredyty w Snowflake
Snowflake stosuje elastyczny model kosztowy, obejmujący:
- Opłatę za przechowywanie danych: W modelu pay-as-you-go lub przedpłaconym.
- Kredyty obliczeniowe: Jako jednostki rozliczeniowe za czas pracy (wirtualne hurtownie, cloud services).
- Opłaty za transfer danych: W zależności od przepływu danych między chmurami i regionami.
Podsumowanie: Snowflake jako kompleksowa platforma danych
Snowflake to elastyczna i wszechstronna platforma, która ewoluowała od chmurowej bazy danych do kompleksowego środowiska analitycznego. Dzięki unikalnym funkcjonalnościom, takim jak time travel, zero-copy cloning oraz funkcjonalności mikropartycji, Snowflake pozwala firmom na wydajne zarządzanie i analizę danych, dostosowując się do rosnących potrzeb współczesnych organizacji.