Definicja #
Snowflake to cloud-native platforma danych (Data Cloud) zbudowana od podstaw dla chmury, dostępna na AWS, Azure i Google Cloud. Oferuje model separacji storage od compute, eliminując ograniczenia tradycyjnych hurtowni danych (DWH).
Kluczowe cechy architektury Snowflake:
- Separation of Storage and Compute — dane przechowywane centralnie w chmurze (S3/Blob/GCS), a Virtual Warehouses (klastry obliczeniowe) są skalowane niezależnie i płatne per second użycia
- Virtual Warehouses — rozmiary od XS do 6XL; skalowanie w górę (większy warehouse) i poziome (multi-cluster); automatyczne start/stop eliminuje koszt bezczynności
- Zero-copy Cloning — natychmiastowe klonowanie tabel i baz danych bez kopiowania fizycznych danych; idealne do środowisk testowych
- Time Travel — dostęp do historycznych danych do 90 dni wstecz; przywracanie usuniętych tabel, zapytania o dane sprzed określonego czasu
- Data Sharing — udostępnianie danych innym organizacjom Snowflake bez kopiowania (live share); Snowflake Marketplace do kupowania zbiorów danych
- Semi-structured data — natywne wsparcie JSON, Avro, ORC, Parquet przez typ VARIANT; zapytania SQL bezpośrednio na JSON
- Snowpark — API do pisania Python, Java, Scala bezpośrednio w środowisku Snowflake
Model cenowy: pay-per-use — płatność za kredyty obliczeniowe (Virtual Warehouse) i storage osobno.
Zastosowania #
Snowflake stosuje się do:
- Budowania nowoczesnych hurtowni danych (Cloud DWH) — centralne repozytorium danych z całej organizacji do analityki i raportowania BI
- Data lakehouse — przechowywanie i analiza strukturalnych i pół-strukturalnych danych (JSON z IoT, web logs, API events) w jednym miejscu
- ELT (Extract, Load, Transform) — ładowanie surowych danych i transformacja SQL w Snowflake (dbt jako transformation layer)
- Data sharing między firmami — Snowflake Data Marketplace do kupowania i udostępniania danych bez kopiowania
- Machine learning i data science — Snowpark + Python do trenowania modeli i feature engineering bezpośrednio na danych Snowflake
Ścieżka nauki #
Snowflake jest skierowany do data engineerów, analityków danych i architektów danych. Wymaga SQL i podstaw chmury.
Zacznij od:
- Rejestracja na Snowflake Free Trial (30 dni, $400 kredytów) — snowflake.com/free-trial
- Interfejs Snowsight — baza danych, tabele, worksheety SQL, monitoring zapytań
- DDL i DML w Snowflake SQL —
CREATE TABLE,COPY INTO(ładowanie plików),SELECT - Tworzenie i zarządzanie Virtual Warehouse —
CREATE WAREHOUSE,ALTER WAREHOUSE SUSPEND - Ładowanie danych: Stage (internal/external), COPY INTO, Snowpipe (automatyczne ładowanie)
Następnie poznaj:
- dbt (data build tool) — SQL-based transformation framework, standard w ekosystemie Snowflake
- Zero-copy Cloning i Time Travel — praktyczne zastosowania w development workflow
- Streams i Tasks — inkrementalna replikacja zmian danych (CDC) i harmonogramowanie zadań SQL
- Snowpark — Python API do pracy z danymi bez wychodzenia z Snowflake
- Certyfikacja: SnowPro Core — oficjalny certyfikat Snowflake
FAQ #
- Czym różni się Snowflake od Redshift?
- Amazon Redshift to DWH oparty na tradycyjnej architekturze kolumnowej (node clusters) — skalowanie wymaga dodania węzłów. Snowflake oddziela storage od compute, umożliwiając niezależne skalowanie obu warstw i obsługę wielu Virtual Warehouse na tych samych danych. Snowflake obsługuje multi-cloud (AWS, Azure, GCP), Redshift tylko AWS.
- Co to jest dbt i jak integruje się ze Snowflake?
- dbt (data build tool) to narzędzie do transformacji danych: piszesz SELECT w SQL, dbt buduje modele (tabele/widoki) w Snowflake. Pozwala stosować inżynierię oprogramowania do transformacji danych (wersjonowanie, testy, dokumentacja). dbt Cloud i dbt Core doskonale współpracują ze Snowflake.
- Ile kosztuje Snowflake?
- Snowflake używa modelu pay-per-use: płacisz za kredyty obliczeniowe (Virtual Warehouse; ~$2-4/kredyt zależnie od edycji i regionu) i storage ($23/TB/miesiąc po kompresji). Mały DWH z 1 godzinę użycia XS Warehouse dziennie kosztuje kilka dolarów miesięcznie. Duże produkcyjne środowiska — od kilkuset do kilku tysięcy dolarów miesięcznie.
- Ile zarabia Snowflake Data Engineer?
- Data Engineer ze znajomością Snowflake i dbt w Polsce zarabia od 15 000 do 28 000 zł brutto. Certyfikacja SnowPro Core jest poszukiwana przez rekruterów. Senior Data Engineer z doświadczeniem w budowie platform danych może liczyć na stawki kontraktowe 180-250 zł/h.