W tym artykule znajdziesz informacje na temat tego:
Czym jest Snowflake?
Snowflake jest inherentną już częścią cyfrowej rzeczywistości, rozwiązaniem, które poprzez integrację usług ogromnego środowiska chmur danych, w tym AWS Amazon, Microsoft Azure i Google CP, daje narzędzia tysiącom organizacji do kontroli swoich danych w chmurze. Bez problemu znajdziemy szeroką i szczegółową odpowiedź w sieci, zarówno w aspekcie marketingowym jak i technicznym.
Celem artykułu jest wspólne przejście pierwszych kroków w tym środowisku i zapoznanie z podstawową funkcjonalnością w sposób bezstresowy i do tego bezkosztowy, w oparciu o dostępną dla każdego wersję próbną.
Pierwsze kroki ze Snowflake
Obszerna dokumentacja Snowflake.com obejmuje m.in. materiały do samodzielnego studiowania. Zachęcam do skorzystania z materiału “Getting Started with Snowflake – Zero to Snowflake”, który zawiera także link do rejestracji, w celu aktywowania wersji próbnej. LINK
Jeśli nasza organizacja nie dostarcza nam wersji komercyjnej Snowflake, to bezpłatna, 30-dniowa wersja próbna, obejmująca też startową porcję kredytów, pozwali na swobodne zapoznanie się i przećwiczenie wszystkich zasadniczych funkcjonalności.
Ważne, iż jednym z aspektów tej nauki jest optymalizacja działań, pozwalająca na jak najbardziej efektywne wykorzystanie tejże puli kredytów, a w pełnym, docelowym rozwiązaniu biznesowym, po prostu na racjonalizację kosztów. Co podkreślają twórcy Snowflake, jednym z głównych atutów, jest właśnie istotne obniżenie całkowitych kosztów danej organizacji w zarządzaniu przepływami danych ze wszystkich niemal możliwych źródeł i wykorzystaniu swoich danych w chmurze.
Wymagania sprzętowe i systemowe Snowflake
Najprostszym rozwiązaniem do pracy ze Snowflake jest interfejs web dostępny w każdej z najpopularniejszych przeglądarek internetowych, w jednym ze środowisk operacyjnych Linux, macOS lub Windows. Snowflake dostarcza też własnego klienta (CLI) SnowSQL dla tych środowisk, natomiast poprzez sterowniki JDBC i ODBC umożliwia dostęp dla rozwiązań klienckich. W tym przykładzie posłużymy się interfejsem przeglądarkowym, który poza „klikalnymi” menu daje nam także obszar roboczy (Worksheets) do pracy bezpośrednio z SQL.
Interfejs
Po krótkiej procedurze rejestracji mamy dostęp do aktywnej wersji próbnej. W czasie rejestracji wskazujemy m.in. swój preferowany region, co powinno być powiązane z regionem platformy chmurowej, w którym umieszczone są nasze dane. Dokumentacja Snowflake zawiera zalecenia, by dla optymalizacji kosztów oraz w celu unikania wypływania danych „na zewnątrz” wybierać instancje Snowflake odpowiednio do regionu i swojego dostawcy usług chmurowych. Czyli jeśli np. korzystamy z Amazons WS, powinniśmy korzystać z instancji Snowflake opartej na AWS, w tym samym regionie. W wersji testowej nie ma to kluczowego znaczenia, możemy wybrać region dowolnie, jednak, jeśli chcielibyśmy poćwiczyć na danych, które posiadamy w chmurze, a nie np. lokalnie na swoim komputerze, warto stosować się do powyższych zaleceń.
Na adres e-mail podany w czasie rejestracji otrzymujemy dane do logowania, zawierające nazwę konta w formacie xx0000 oraz przydzielony automatycznie region. Tworzy to adres: xx0000.<region>.snowflakecomputing.com który należy podać w pasku adresu przeglądarki:
Uwaga: Nasze konto jest przypisane do konkretnego regionu i nie można się zalogować do innego regionu w domenie snowflakecomputing.com. Ponadto błędem w czasie logowania poprzez klienta SQL jest dodawanie do regionu także domeny „snowflakecomputing.com”. Nie należy wpisywać domeny, logowanie się nie uda.
Po zalogowaniu w przeglądarce ujrzymy interfejs:
Od razu zwracamy uwagę, że w wersji próbnej domyślnie mamy przydzieloną rolę SYSADMIN, co jest widoczne po prawej stronie paska menu, tuż pod nazwą użytkownika (jaką nadaliśmy sobie sami podczas rejestracji). W sytuacji produkcyjnej zależeć będzie to od nadanej nam przez naszą organizację roli.
W wersji testowej możemy sami przełączyć (rozwijane menu znacznikiem „v” przy SYSADMIN) swoją rolę także na najwyższy poziom, czyli ACCOUNTADMIN, co spowoduje m.in. pojawienie się dodatkowej ikony „Account”. Omówimy to w dalszej części, a do przetwarzania danych korzystać będziemy z roli SYSADMIN.
Ikony od lewej:
- Databases – tu tworzymy i zarządzamy bazami danych
- Shares – Snowflake umożliwia udostępnianie danych pomiędzy różnymi kontami (organizacjami) poprzez Shares. Dostawcy danych udostępniają dane, które mogą być importowane przez odbiorców spoza organizacji, albo poprzez swoje własne konto Snowflake, albo poprzez konto Snowflake Reader. Odbiorcą więc może być albo ktoś spoza organizacji, albo też członek tej samej organizacji, ale innego oddziału, który musi z jakichś przyczyn mieć indywidualne, osobne konto Snowflake. W ten sposób są m.in. udostępniane dane do Snowflake Marketplace (poniżej)
Zalety bezpiecznego udostępniania danych
- Istnieje tylko jednak kopia danych, nie ma potrzeby ich powielania i pozostają one zawsze w przestrzeni konta dostawcy/udostępniającego dane;
- Udostępniane dane są zawsze Live, w czasie rzeczywistym i bezzwłocznie dostępne dla odbiorcy;
- Udostępniający może określić i w każdej chwili odwołać szczegółowy zakres dostępu do danych;
- Udostępniane danych poprzez Shares jest proste, bezpieczne i nie wymaga np. przesyłania dużych plików .csv, itd przez Internet.
- Data Markeplace – daje dostęp naukowcom, specjalistom BI, profesjonalnym analitykom oraz dowolnym osobom zainteresowanym procesem decyzyjnym opartym na danych, do ponad 500 aktywnych i gotowych do odpytywań zbiorów danych od ponad 140 zewnętrznych dostawców danych i usług.
- Warehouses – tutaj tworzymy i zarządzamy hurtowniami danych. Domyślnie utworzony mamy pierwszy Warehouse pod nazwą COMPUTE_WH. Jest on w pełni zarządzany przez Snowflake i zapewni nam poprawne funkcjonowanie. W ramach wersji próbnej proponuję upewnić się, że nasz COMPUTE_WH ma parametry minimalne, tj rozmiar X-Small oraz włączoną opcję Auto Suspend z czasem 5 min.
- Worksheet – to jest nasz główny plac zabaw z danymi. Tutaj pracujemy z danymi i posługujemy się SQL
- History – przeglądamy całą historię naszych działań. Zapisywane są tu wszystkie operacje z nadanym unikalnym ID. Historię możemy przeglądać wg użytkownika, statusu, hurtowni, czasu trwania operacji, czasu zakończenia, identyfikatora sesji, tekstu w komendzie SQL, ID zapytania, rodzaju komendy oraz określać dla tych parametrów szczegółowe kryteria.
Uwaga: Informacje tu zarejestrowane mogą posłużyć także m.in. do tzw. Time Travel, czyli np. przywrócenia tabeli do stanu sprzed dowolnego kroku, czyli nawet cofnięcia skutków „katastrofy” w wyniku błędu, itd. Standardowy okres przechowywania informacji niezbędnej dla Time Travel wynosi 1 dzień (24 godz). Dla wersji Enterprise i wyższych ten czas może wynosić do 90 dni zależnie od typu obiektów.
- Account- ikona widoczna tylko, jeśli mamy rolę ACCOUNTADMIN. Tu zarządzamy naszym kontem Snowflake oraz określamy zakresy uprawnień i przydzielamy je użytkownikom. Z tego poziomu możemy monitorować i prowadzić szczegółową analizę w zakresie efektywności wykorzystania przydzielonych zasobów i prowadzonych przez użytkowników operacji, nie tylko w zakresie bezpośrednich kosztów, ale także pod względem czasu trwania tych operacji. Pozwala to na elastyczne reagowanie i dostosowywanie hurtowni i /lub klastrów stosownie do zmieniających się potrzeb naszej organizacji, z większym lub mniejszym wykorzystaniem automatyzacji zarządzania hurtowniami zapewnianymi przez Snowflake.
- Preview App – własne rozwiązanie Snowflake do wizualizacji danych w opraciu o Worksheets (które można także importować z ww. menu Worksheets) oraz Dashboards. Nie będziemy omawiać w ramach podstawowych funkcjonalności, gdyż do wizualizacji danych wykorzystamy zewnętrzna narzędzie BI, jaki jest Tableau.
- Partner Connect – bezpośrednie połączenia do narzędzi analizy danych, Partnerów Snowflake, takich jak np. Alteryx, Fivetran i wielu innych. Lista partnerów jest wciąż powiększana.
- Help – poza panelem pomocy, zawiera linki do dokumentacji i do społeczności Snowflake. Zawiera także sekcję Download, z której korzystamy do ściągnięcia sterowników Snowflake dla aplikacji klienckich. Tu znajdziemy link m.in. do sterownika ODBC dla Tableau.
- Notifications – powiadomienia, zależne ustawień, które obejmują e-mail i/lub web.
- Ostatnią pozycją jest rozwijane menu pod nazwą użytkownika. Możemy zmienić tam hasło, wybrać rolę, w pozycji preferencje ustawić np. autentykację wieloskładnikową. Tu znajdziemy pozycję logout. W dolnej części zobaczymy szczegółowe informacje o naszym koncie (XX0000), organizacji (dla wersji próbnej to, co podamy w czasie rejestracji), wersji Snowflake (w wersji próbnej jest to Standard, dla organizacji będzie to np. Enterprise), platformy chmurowej, z której korzysta Snowflake (m.in, Amazon WS, Google CP, itd.) oraz regionie.
Przygotowanie do ładowania danych
Pełne informacje o ładowaniu danych przez interfejs Snowflake.
Operowanie danymi w Snowflake wymaga przygotowania kontekstu. W organizacji użytkownicy, stosownie do przypisanych im ról, poruszają się w kontekstach przygotowanych przez SYSADMIN-ów. W wersji próbnej to my mamy rolę SYSADMIN i będziemy tworzyć kontekst od podstaw. Obejmuje to:
- utworzenie lub wybranie roli: Pozostajemy przy domyślnym SYSADMIN
- utworzenie bazy danych: Sprowadza się do kliknięcia na ikonę Databases i na pozycję Create. W wersji próbnej mamy tu już pewne bazy przykładowe, ale utworzymy nasze własne. Po kliknięciu Create pojawia się okienko, w którym musimy nadać nazwę naszej bazie danych i ewentualnie komentarz. Trzymając się przewodnika, tworzymy bazę o nazwie „CITIBIKE”
Uwaga: W tym miejscu po raz pierwszy widzimy, że okienko zawiera w lewym dolnym rogu przycisk Show SQL. W każdym z ukazujących się okienek web GUI pod tym przyciskiem możemy podejrzeć składnię SQL, którą generuje Snowflake. Jest to przydatne, gdyż widzimy tu szczegóły składni i format SQL używanego przez Snowflake, co pozwoli na uniknięcie lub wyjaśnienie ewentualnych problemów przy wykorzystaniu czy to SnowSQL, czy też innego, ulubionego klienta CLI SQL, a także w przypadku rozwiązań klienckich czy automatyzacji działań.
- utworzenie schematu. Po utworzeniu bazy danych klikamy na jej nazwę. Pojawią się nowe zakładki. Klikamy zakładkę Schemas i ponownie pozycję Create. Nadajemy nazwę dowolną, w naszym przykładzie będzie to „PUBLIC”.
- utworzenie tabeli. Pozostając w menu Databases>CITIBIKE klikamy zakładkę Tables. W sposób analogiczny tworzymy pierwszą tabelę klikając Create. W okienku poza nazwą tabeli, musimy określić jej strukturę, czyli dodać kolejno kolumnę (Add), nadać jej nazwę (wg przykładu niech to będzie „TRIPS”) i określić typ danych, których do wyboru mamy 13.
Ponownie możemy podejrzeć składnię klikając przycisk Show SQL:
- Utworzenie hurtowni odbywa się w zakładce Warehouses. Nie będziemy tworzyć nowej, skorzystamy z domyślnej hurtowni COMPUTE_WH:
Uwaga: Operacje Data Definition Language (DDL) są bezpłatne. Wszystkie wymienione powyżej operacje nie wymagają zasobów obliczeniowych, więc możemy utworzyć wszystkie nasze obiekty bezpłatnie.
Web GUI jest przejrzyste i wygodne, ale nie daje takiej elastyczności, jak CLI, żeby wykonać od razu ciąg kroków, czy komend. Wszystkie powyższe czynności możemy wykonać w SQL komendą CREATE Database/ Schema/Table, czy to w kliencie CLI, czy też korzystając z menu Worksheets i wpisując komendy SQL w oknie poleceń.
Podpowiedź: aby snowsql wykonał sekwencję poleceń wymaga zamknięcia jej znakiem średnika. W oknie poleceń Worksheet w celu wykonania pojedynczej sekwencji SQL, tj. do znaku średnika, umieszczamy kursor w dowolnym miejscu sekwencji przed końcowym średnikiem i klikamy CTRL+ Enter. Wynik ukazuje nam się poniżej okna poleceń.