Blog JSystems - uwalniamy wiedzę!

Szukaj
Arkusz roboczy Snowsight w Snowflake z zapytaniem SQL i tabelą wyników - 35 wierszy przychodów wg roku i segmentu policzonych w 1,6 sekundy
Tak w praktyce wygląda praca w Snowflake: piszemy zwykłe zapytanie SQL, klikamy uruchom i po chwili mamy wynik. Tutaj policzyliśmy roczne przychody wg segmentu rynku na zbiorze około 1,5 miliona zamówień. Wynik, 35 wierszy, pojawił się w 1,6 sekundy. To prawdziwy zrzut z konta, które założyliśmy na potrzeby tego artykułu.

Snowflake to jedno z tych pojęć, które w ogłoszeniach o pracę i na konferencjach pojawia się coraz częściej, a mimo to wiele osób nie potrafi krótko powiedzieć, czym właściwie jest. Baza danych? Hurtownia? Kolejna chmura? W tym przewodniku wyjaśnimy to po kolei, bez żargonu i na prawdziwych przykładach. Wszystkie zrzuty pochodzą z żywego konta Snowflake, na którym naprawdę uruchamialiśmy zapytania, więc widzisz autentyczne wyniki.

Czym właściwie jest Snowflake

Snowflake to hurtownia danych działająca w chmurze i dostarczana jako usługa (ang. Software as a Service, w skrócie SaaS, czyli gotowe oprogramowanie, z którego korzystasz przez przeglądarkę, bez instalowania i utrzymywania go u siebie). Mówiąc prościej: to miejsce, w którym firma trzyma duże ilości danych i zadaje im pytania językiem SQL, a całą maszynerię pod spodem, czyli serwery, dyski, aktualizacje i kopie zapasowe, utrzymuje dostawca. Ty logujesz się do przeglądarki i pracujesz z danymi.

Hurtownia danych (ang. data warehouse) to wyspecjalizowana baza, w której gromadzi się dane z wielu systemów firmy po to, żeby je analizować: liczyć raporty, budować pulpity, szukać wzorców. Różni się od zwykłej bazy aplikacyjnej tym, że jest zoptymalizowana pod ciężkie zapytania analityczne przechodzące przez miliony wierszy, a nie pod pojedyncze, szybkie operacje typu „dodaj zamówienie". Snowflake jest właśnie taką hurtownią, tyle że w całości w chmurze.

Warto od razu rozwiać trzy nieporozumienia. Snowflake nie jest programem, który się instaluje na własnym serwerze, bo działa wyłącznie w chmurze. Snowflake nie jest przywiązany do jednej chmury: to samo konto możesz założyć na infrastrukturze Amazona (AWS), Microsoftu (Azure) albo Google (GCP), a sposób pracy jest identyczny. I wreszcie Snowflake nie jest kolejnym silnikiem, który trzeba stroić ręcznie: nie zakładasz w nim indeksów, nie planujesz partycji, nie dobierasz parametrów serwera. Większość tej pracy platforma bierze na siebie, a Ty skupiasz się na danych i na pytaniach, które chcesz im zadać.

Darmowe konto próbne z zapasem kredytów założysz w kilka minut na signup.snowflake.com, bez podawania karty płatniczej. Pierwsze, co widzimy po zalogowaniu, to Snowsight, czyli przeglądarkowy interfejs Snowflake. To z niego pisze się zapytania, przegląda dane, buduje pulpity i zarządza kontem. Poniżej jego strona główna zaraz po założeniu darmowego konta próbnego:

Strona główna Snowsight w Snowflake - lewe menu z sekcjami Projects, Ingestion, Monitoring, kafelki szybkich akcji oraz licznik 400 dolarów kredytu na koncie próbnym
Strona główna Snowsight, czyli przeglądarkowego interfejsu Snowflake, na świeżo założonym koncie próbnym. Po lewej menu (praca z danymi, katalog, zarządzanie), na środku szybkie akcje, a w rogu licznik darmowych kredytów. Cała praca odbywa się tutaj, bez instalowania czegokolwiek.

Skąd w ogóle wziął się Snowflake? Powstał z prostego spostrzeżenia: klasyczne hurtownie danych łączyły na sztywno moc obliczeniową z dyskami. Jeśli chciałeś liczyć szybciej, musiałeś dokupić większy serwer razem z dyskami, nawet jeśli danych wcale nie przybyło. A gdy dwa zespoły odpytywały hurtownię naraz, wchodziły sobie w drogę i czekały w kolejce. Snowflake rozwiązał to, rozdzielając te dwie rzeczy od siebie. To jest sedno całej platformy i właśnie od architektury zaczniemy.

Architektura: trzy rozdzielone warstwy

Snowflake jest zbudowany z trzech niezależnych warstw. To nie jest szczegół dla inżynierów, tylko klucz do zrozumienia, dlaczego platforma działa tak, jak działa. Każda warstwa skaluje się osobno i odpowiada za inną część pracy.

Infografika architektury Snowflake - trzy rozdzielone warstwy: usług chmurowych (mózg), obliczeniowa (mięśnie) i składowania danych (magazyn)
Trzy warstwy Snowflake. Warstwa usług koordynuje pracę (to mózg), warstwa obliczeniowa liczy zapytania (mięśnie), a warstwa składowania trzyma dane (magazyn). Kluczowe jest to, że każda z nich skaluje się niezależnie od pozostałych.

Warstwa składowania danych

Na samym dole są dane. Snowflake trzyma je w chmurze obiektowej, czyli w usłudze do przechowywania plików w chmurze (na przykład Amazon S3), i sam zajmuje się ich organizacją. Zapisuje je w formacie kolumnowym, mocno je kompresuje i dzieli na małe fragmenty zwane micro-partycjami, o których opowiemy dokładniej przy okazji wydajności. Ważne jest jedno: tych danych nie widzisz jako plików i nie musisz nimi zarządzać. Dla Ciebie to po prostu tabele, do których piszesz SQL.

Warstwa obliczeniowa

Nad danymi jest moc obliczeniowa (ang. compute), która wykonuje zapytania. W Snowflake dostarczają jej wirtualne magazyny (ang. warehouses), czyli klastry serwerów uruchamiane na żądanie. To one czytają dane, łączą tabele, liczą sumy i zwracają wynik. Magazynów może działać wiele naraz i, co najważniejsze, są od siebie niezależne. Za chwilę poświęcimy im osobną sekcję, bo to najczęściej mylona część Snowflake.

Warstwa usług chmurowych

Na górze jest warstwa, która spina całość. To ona przyjmuje Twoje logowanie, pilnuje uprawnień, przechowuje informacje o tym, jakie masz tabele i co w nich jest (tak zwane metadane, czyli dane o danych), planuje i optymalizuje zapytania oraz dba o spójność transakcji. Nazywamy ją mózgiem, bo sama nic nie liczy, ale steruje tym, co robią pozostałe warstwy. Działa w tle i zwykle w ogóle o niej nie myślisz, a to dobrze, bo to znak, że robi swoje.

Dlaczego ten podział jest tak istotny? Bo pozwala skalować każdą warstwę osobno. Masz dużo danych, ale liczysz rzadko? Płacisz głównie za składowanie, a moc włączasz na chwilę. Masz mało danych, ale liczysz je intensywnie i przez wielu użytkowników naraz? Dokładasz mocy obliczeniowej, nie ruszając składowania. W klasycznej hurtowni jedno ciągnęło drugie. Tutaj są rozłączone.

Wirtualne magazyny: moc obliczeniowa na żądanie

Do czego służą: wirtualne magazyny to moc obliczeniowa Snowflake. Każdy magazyn to osobny klaster, który wykonuje Twoje zapytania. Włączasz go, gdy potrzebujesz liczyć, powiększasz, gdy pracy jest dużo, i wyłączasz, gdy skończysz. Płacisz tylko za czas, w którym pracował.

To jest pojęcie, które najłatwiej zrozumieć na przykładzie, więc spójrzmy na listę magazynów na naszym koncie. Widać na niej trzy magazyny w rozmiarze X-Small. Jeden ma status Started, bo przed chwilą liczyliśmy na nim zapytanie z początku artykułu, a dwa pozostałe są Suspended, czyli uśpione, i nie generują żadnego kosztu.

Lista wirtualnych magazynów w Snowflake - trzy magazyny w rozmiarze X-Small, jeden uruchomiony (Started), dwa uśpione (Suspended)
Lista wirtualnych magazynów. Każdy to osobna moc obliczeniowa o zadanym rozmiarze (tutaj X-Small). Magazyn COMPUTE_WH jest uruchomiony, bo przed chwilą na nim liczyliśmy, a dwa pozostałe są uśpione i nic nie kosztują. Uśpienie i wybudzanie dzieje się automatycznie.

Rozmiar magazynu decyduje o jego mocy. Zaczyna się od X-Small, a kolejne rozmiary, Small, Medium, Large i dalej, to za każdym razem mniej więcej podwojenie mocy obliczeniowej. Zmiana rozmiaru to jedno kliknięcie, bez przenoszenia danych i bez przerwy w pracy:

Okno tworzenia nowego magazynu w Snowflake z rozwiniętą listą rozmiarów od X-Small do 4X-Large - ilustracja skalowania mocy obliczeniowej
Tworzenie magazynu i wybór rozmiaru. Od X-Small po 4X-Large (i dalej), a każdy krok w górę to około dwa razy więcej mocy. Ciężkie zapytanie na większym magazynie policzy się szybciej, ale zużyje w tym czasie więcej kredytów.

Najciekawsze jest to, jak magazyny się włączają i wyłączają. Możesz ustawić, żeby magazyn sam się usypiał po chwili bezczynności (auto-suspend) i sam wybudzał przy pierwszym zapytaniu (auto-resume). Dzięki temu nie płacisz za moc, której nikt nie używa. Poniższa animacja pokazuje ten cykl: powiększamy magazyn na czas ciężkiej pracy, a gdy nikt nie odpytuje, magazyn gaśnie i koszt obliczeń spada do zera.

Animacja skalowania wirtualnego magazynu Snowflake - moc rośnie od X-Small do Large wraz z obciążeniem, a przy braku zapytań magazyn usypia się i koszt spada do zera
Elastyczna moc obliczeniowa w Snowflake. Magazyn powiększamy na czas ciężkich zapytań, a gdy praca się kończy, sam się usypia i przestaje generować koszt. To jest istota modelu „płacisz za użycie".

Definicję magazynu zapisuje się zwykłym poleceniem SQL, więc całą tę logikę możesz mieć opisaną w kodzie i wersjonowaną razem z projektem:

-- Magazyn, ktory sam sie usypia po minucie bezczynnosci
CREATE WAREHOUSE analityka
  WAREHOUSE_SIZE = 'X-SMALL'
  AUTO_SUSPEND  = 60     -- uspij po 60 sekundach ciszy
  AUTO_RESUME   = TRUE;  -- wznow sam przy pierwszym zapytaniu

Jedna kopia danych, wiele zespołów naraz

Skoro moc obliczeniowa jest oddzielona od danych, wynika z tego coś bardzo praktycznego: kilka zespołów może pracować na tych samych danych jednocześnie, każdy na własnym magazynie, nie wchodząc sobie w drogę. W klasycznej hurtowni ciężki raport potrafił spowolnić pracę wszystkich, bo wszyscy dzielili tę samą moc. W Snowflake każdy zespół dostaje osobne mięśnie, a dane pozostają jedną, wspólną kopią.

Animacja rozdzielenia obliczeń i danych w Snowflake - trzy zespoły (ETL, analitycy BI, Data Science) pracują równocześnie na jednej kopii danych, każdy na własnym wirtualnym magazynie
Rozdzielenie obliczeń i danych w praktyce. Zespół ładujący dane, analitycy raportujący i zespół uczenia maszynowego korzystają z jednej kopii danych, ale każdy na własnym magazynie. Nikt nie czeka w kolejce za cudzym zapytaniem.

To rozwiązuje jeden z najstarszych bólów hurtowni danych: konflikt między tymi, którzy dane ładują, a tymi, którzy je analizują. Nocny proces ładowania może działać na swoim magazynie, analitycy na swoim, a zespół uczenia maszynowego na jeszcze innym. Jeśli któryś z magazynów okaże się za mały, powiększasz tylko jego, nie ruszając reszty. Dane cały czas są jedne i te same, więc nie ma mowy o rozjeżdżających się kopiach.

Jak wygląda codzienna praca w Snowflake

Od strony użytkownika Snowflake to przede wszystkim pisanie SQL w przeglądarce. Zapytanie z początku artykułu policzyło roczne przychody wg segmentu rynku na zbiorze przykładowym, który Snowflake udostępnia każdemu nowemu kontu. Oto dokładnie to zapytanie, gotowe do skopiowania:

-- Roczne przychody wg segmentu rynku (dane przykladowe TPC-H, ~1,5 mln zamowien)
SELECT YEAR(o_orderdate)                    AS rok,
       c_mktsegment                         AS segment,
       ROUND(SUM(o_totalprice)/1000000, 1)  AS przychod_mln_usd,
       COUNT(*)                             AS liczba_zamowien
FROM snowflake_sample_data.tpch_sf1.orders o
JOIN snowflake_sample_data.tpch_sf1.customer c
     ON c.c_custkey = o.o_custkey
GROUP BY rok, segment
ORDER BY rok, segment;

Zwróć uwagę, że to zwykły, standardowy SQL. Nie ma tu niczego specyficznego dla Snowflake poza nazwą zbioru danych. Ktokolwiek zna SQL z innej bazy, odnajdzie się tu od pierwszej minuty, i to jedna z głównych przyczyn popularności platformy.

Wynik nie musi zostać suchą tabelą. W Snowsight ten sam rezultat jednym kliknięciem zamieniamy na wykres, bez eksportowania danych do innego narzędzia. Poniżej ten sam zestaw przychodów pokazany jako wykres słupkowy wg segmentu:

Wynik zapytania SQL zamieniony na wykres słupkowy w Snowsight - przychody wg segmentu rynku, z panelem konfiguracji osi po lewej stronie
Ten sam wynik co w tabeli, pokazany jako wykres. W panelu po lewej wybieramy typ wykresu oraz to, co ma trafić na osie. Prosta wizualizacja powstaje bez opuszczania Snowflake i bez eksportu danych na zewnątrz.

Dane w Snowflake są zorganizowane w bazy i schematy, czyli foldery na tabele. Wbudowany eksplorator pokazuje tę strukturę i pozwala przeglądać zawartość konta. Na naszym zrzucie widać rozwinięty zbiór przykładowy z kilkoma schematami w różnych rozmiarach:

Eksplorator baz danych w Snowflake z rozwiniętym zbiorem przykładowym SNOWFLAKE_SAMPLE_DATA i szczegółami źródła danych udostępnionego przez Snowflake
Eksplorator baz danych. Po lewej drzewo baz i schematów, po prawej szczegóły. Zbiór przykładowy nie jest tu skopiowany, tylko udostępniony przez Snowflake (widoczne pole „Shared by"), o czym więcej przy okazji współdzielenia danych.

Dlaczego zapytania są szybkie: micro-partycje i wgląd w wykonanie

Wróćmy do pytania, które zadaje sobie każdy, kto przesiada się na Snowflake z klasycznej bazy: skoro nie zakładam indeksów ani nie planuję partycji, to skąd bierze się szybkość? Odpowiedzią są micro-partycje.

Snowflake sam, bez Twojego udziału, dzieli każdą tabelę na wiele małych, skompresowanych fragmentów zwanych micro-partycjami. Dla każdego z nich zapamiętuje, jakie wartości się w nim znajdują, na przykład najmniejszą i największą datę czy kwotę. Dzięki temu, gdy pytasz o konkretny zakres, silnik od razu wie, które fragmenty w ogóle mogą zawierać wynik, a resztę pomija. Zamiast czytać całą tabelę, czyta jej ułamek.

Infografika micro-partycji w Snowflake - zapytanie o lata 2024 i nowsze czyta tylko pasujące micro-partycje, a starsze pomija
Micro-partycje w akcji. Zapytanie o lata 2024 i nowsze każe silnikowi sięgnąć tylko po pasujące fragmenty danych, a te ze starszymi latami całkowicie pominąć. Mniej odczytanych danych to krótszy czas i mniejszy koszt, a wszystko dzieje się automatycznie.

To dlatego w Snowflake zwykle nie zakłada się indeksów. Ten mechanizm działa z automatu na każdej tabeli i w większości przypadków wystarcza. Efekt widać na liczbach. Nasze zapytanie łączące półtora miliona zamówień z bazą klientów policzyło się poniżej dwóch sekund, a gdy zajrzymy w jego szczegóły, zobaczymy dokładnie, ile trwało i na jakim magazynie:

Szczegóły wykonanego zapytania w Snowflake - status Success, czas trwania 1,6 sekundy, rozmiar magazynu X-Small
Szczegóły wykonanego zapytania. Snowflake zapisuje o każdym zapytaniu komplet informacji: status, czas trwania (tutaj 1,6 sekundy), rozmiar użytego magazynu i znaczniki czasu. To punkt wyjścia, gdy chcemy zrozumieć, co zadecydowało o czasie wykonania zapytania.

Jeśli zapytanie działa wolno, Snowflake pokazuje jego profil wykonania, czyli rozbicie na kolejne kroki (odczyt tabel, łączenie, grupowanie) wraz z udziałem każdego z nich w czasie. To pierwsze miejsce, do którego zagląda się przy optymalizacji:

Profil wykonania zapytania w Snowflake - drzewo operatorów (odczyt tabel, złączenie, grupowanie) z udziałem procentowym i podsumowaniem czasu wykonania
Profil wykonania zapytania. Snowflake rozkłada zapytanie na kroki i pokazuje, który z nich zajął najwięcej czasu. Tutaj najdroższy jest odczyt tabel, a całość policzyła się w niecałą sekundę czystego przetwarzania. Taki obraz zastępuje zgadywanie konkretną wiedzą, co poprawić.

Wszystkie zapytania, które kiedykolwiek uruchomiono na koncie, trafiają do historii. Można je filtrować, przeszukiwać i wracać do nich później, co jest bezcenne przy rozliczaniu kosztów i szukaniu tego jednego zapytania, które zamula system:

Historia zapytań w Snowflake z listą wykonanych zapytań, ich identyfikatorami i filtrami po statusie, użytkowniku i czasie
Historia zapytań. Każde uruchomione zapytanie zostaje zapisane wraz z czasem, statusem i tym, kto je uruchomił. To wbudowany dziennik pracy całego konta, przydatny zarówno do rozliczeń, jak i do diagnozy.

Funkcje, które lubią zespoły danych

Poza samym liczeniem SQL Snowflake ma kilka funkcji, które w codziennej pracy robią dużą różnicę. Nie sposób omówić tu wszystkich, więc wybraliśmy te, o które najczęściej pytają uczestnicy naszego szkolenia z Snowflake.

Time Travel, czyli podróż w czasie po danych

Snowflake przez zadany czas pamięta wcześniejsze wersje danych. Możesz odpytać tabelę taką, jaka była godzinę czy dzień temu, a nawet przywrócić tabelę skasowaną przez pomyłkę. Pomyłkowy UPDATE albo DROP przestaje być katastrofą, bo do stanu sprzed błędu wracasz jednym zapytaniem.

Infografika funkcji Time Travel w Snowflake - oś czasu ze stanem aktualnym, sprzed godziny, sprzed dnia oraz przywracaniem usuniętej tabeli poleceniem UNDROP
Time Travel pozwala patrzeć na dane wstecz. Odpytasz tabelę sprzed godziny, porównasz ją z obecną albo cofniesz przypadkowe skasowanie. Jak długo sięga pamięć wstecz, zależy od wybranej wersji Snowflake.

W praktyce wygląda to tak jak niżej. Pierwsze zapytanie pokazuje dane sprzed godziny, drugie przywraca właśnie usuniętą tabelę:

-- Tabela taka, jaka byla godzine temu
SELECT * FROM zamowienia AT(OFFSET => -3600);

-- Ups, skasowalismy tabele. Przywracamy ja jednym poleceniem
UNDROP TABLE zamowienia;

Współdzielenie danych bez kopiowania

Snowflake pozwala udostępnić dane innej firmie lub innemu kontu bez wysyłania plików i bez robienia kopii. Odbiorca widzi u siebie zawsze aktualne dane, a Ty zachowujesz nad nimi kontrolę. Dokładnie tak działa zbiór przykładowy, który odpytywaliśmy: nie został skopiowany na nasze konto, tylko udostępniony przez Snowflake, co widać w jego szczegółach jako pole „Shared by" na jednym z wcześniejszych zrzutów. Wokół tego mechanizmu wyrósł Snowflake Marketplace, czyli miejsce, gdzie firmy wymieniają się gotowymi zbiorami danych.

Dane półstrukturalne i język Python

Snowflake radzi sobie nie tylko z klasycznymi tabelami. Dane półstrukturalne, na przykład w formacie JSON (popularny sposób zapisu danych, w którym wartości opisane są nazwami), można wczytać do specjalnej kolumny i odpytywać SQL-em bez wcześniejszego rozkładania ich na kolumny:

-- 'dane' to kolumna typu VARIANT, w ktorej siedzi cale JSON
SELECT dane:klient.miasto::string AS miasto,
       dane:kwota::number        AS kwota
FROM zdarzenia;

Kto woli programować, może pracować z danymi w Pythonie przy pomocy biblioteki Snowpark, w której zapytania pisze się w kodzie, a wykonują się po stronie Snowflake, blisko danych. Do tego dochodzi warstwa funkcji sztucznej inteligencji (Snowflake Cortex), która pozwala wołać gotowe modeli językowe wprost z SQL. To już temat na osobny artykuł, ale warto wiedzieć, że platforma daleko wyszła poza samo raportowanie.

Za co się płaci: model kredytów

Rozliczenia w Snowflake bywają źródłem nieporozumień, więc uprośćmy je do dwóch niezależnych osi. Płacisz osobno za moc obliczeniową i osobno za składowanie danych.

Infografika modelu rozliczeń w Snowflake - obliczenia rozliczane w kredytach naliczanych co sekundę pracy magazynu, składowanie płatne osobno za terabajt miesięcznie
Dwie niezależne osie rozliczeń. Za obliczenia płacisz w kredytach naliczanych co sekundę pracy magazynu (uśpiony magazyn nie kosztuje nic), a za składowanie osobno, ryczałtem za terabajt miesięcznie. To dlatego można trzymać dużo danych tanio, a dopłacać dopiero za realne liczenie.

Moc obliczeniową rozlicza się w kredytach. Magazyn zużywa je tylko wtedy, gdy pracuje, a naliczanie idzie co sekundę. Większy magazyn zużywa więcej kredytów na godzinę, ale ciężkie zapytanie kończy na nim szybciej, więc bywa, że większy rozmiar wychodzi podobnie kosztowo, za to daje wynik wcześniej. Kluczowe jest to, że uśpiony magazyn nie kosztuje nic, dlatego auto-suspend jest tak ważny.

Składowanie danych to zupełnie osobna opłata, liczona ryczałtem za terabajt miesięcznie, podobnie jak za dysk w chmurze. Ponieważ Snowflake mocno kompresuje dane, w praktyce zajmują one mniej miejsca niż w zwykłej bazie. Dzięki rozdzieleniu tych dwóch osi możesz trzymać ogromne ilości danych stosunkowo tanio i płacić więcej tylko wtedy, gdy naprawdę je przeliczasz.

O czym warto pamiętać: elastyczność bywa mieczem obosiecznym. Skoro powiększenie magazynu to jedno kliknięcie, równie łatwo zostawić włączoną dużą moc albo puścić nieoptymalne zapytanie po całej tabeli. Dlatego w Snowflake tak ważne są nawyki: auto-suspend, świadome dobieranie rozmiaru magazynu i zaglądanie w historię oraz profil zapytań. Tego właśnie uczymy na szkoleniu.

Kiedy Snowflake ma sens, a kiedy niekoniecznie

Snowflake nie jest odpowiedzią na każdy problem z danymi, więc warto wiedzieć, do czego pasuje, a do czego lepiej wziąć coś innego.

Sprawdzi się, gdy masz dużo danych z wielu systemów i chcesz je wspólnie analizować, gdy zależy Ci na tym, by nie utrzymywać serwerów samodzielnie, gdy wiele zespołów potrzebuje pracować na tych samych danych naraz, oraz gdy obciążenie jest nierówne, raz spokojnie, raz skokowo, bo wtedy model płatności za użycie naprawdę się opłaca.

Będzie gorszym wyborem jako baza pod aplikację obsługującą tysiące drobnych, pojedynczych zapytań na sekundę, bo do tego służą bazy operacyjne takie jak PostgreSQL. Nie jest też darmowy, więc przy małych, prostych zbiorach danych zwykła baza często wystarczy taniej. I choć upraszcza bardzo wiele, nie zwalnia z myślenia o kosztach, bo łatwość skalowania działa w obie strony.

Jak zacząć z Snowflake

Najlepszą wiadomością jest to, że próg wejścia jest niski. Snowflake udostępnia bezpłatne konto próbne z zapasem kredytów, a wszystkie zrzuty w tym artykule powstały właśnie na takim koncie. Zakładasz je w kilka minut, dostajesz gotowy zbiór przykładowy i możesz od razu pisać zapytania w przeglądarce, bez instalowania czegokolwiek.

Sensowna kolejność nauki wygląda tak. Najpierw dobrze opanuj SQL, bo to fundament pracy w Snowflake. Potem zrozum architekturę trzech warstw i wirtualne magazyny, bo bez tego trudno panować nad wydajnością i kosztami. Następnie naucz się ładować własne dane i modelować je w tabele. Na koniec zajmij się rzeczami, które odróżniają Snowflake od zwykłej bazy: Time Travel, współdzieleniem, danymi półstrukturalnymi i bezpieczeństwem. Najszybciej przechodzi się tę drogę na żywym koncie, pod okiem kogoś, kto pokaże także pułapki, których na własnej skórze wolałbyś uniknąć.

Podsumowanie

Snowflake to hurtownia danych w chmurze dostarczana jako usługa, której siła bierze się z jednego pomysłu: rozdzielenia mocy obliczeniowej od składowania danych. Dane leżą w jednej, wspólnej warstwie, a liczą je niezależne wirtualne magazyny, które włączasz, powiększasz i usypiasz zależnie od potrzeb, płacąc tylko za czas realnej pracy. Nad tym wszystkim czuwa warstwa usług, która planuje zapytania, pilnuje uprawnień i spójności. Zapytania są szybkie dzięki automatycznym micro-partycjom, a nie ręcznemu strojeniu, a funkcje takie jak Time Travel czy współdzielenie danych rozwiązują problemy, z którymi klasyczne hurtownie radziły sobie z trudem. Dla firmy oznacza to mniej utrzymania infrastruktury i elastyczne koszty, a dla osoby pracującej z danymi znajomy SQL w przeglądarce i platformę, która skaluje się razem z ambicjami. To właśnie jest Snowflake i do tego służy.

Baner szkolenia Przetwarzanie danych z użyciem Snowflake w JSystems z terminami gwarantowanymi
Przetwarzanie danych z użyciem Snowflake - szkolenie z praktykiem Od architektury i wirtualnych magazynów, przez ładowanie i modelowanie danych, po wydajność, Time Travel i rozliczenia. Wszystko na żywym koncie Snowflake, dokładnie na tych mechanizmach, które pokazaliśmy w artykule. Szkolenie ma terminy gwarantowane. Przyjdź na szkolenie Snowflake -->

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...