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.