Snowflake je cloudová platforma pro ukládání a analýzu dat, která poskytuje širokou škálu služeb pro práci s daty – datového skladu, datového jezera (lake), data science a sdílení dat. Byla založena v roce 2012 a od té doby se velmi rychle šíří díky své schopnosti efektivně zpracovávat velké objemy dat, jedinečné architektuře a díky škálovatelnosti řešení. Díky tomu je vhodný jak pro malé organizace, tak pro enterprise klienty. Služba se platí stylem pay as you go. To znamená, že u Snowflake cena odpovídá tomu co aktivně využíváte.
Díky architektuře jsou oddělena z hlediska placení levná data a dražší výpočetní výkon, který se navíc dá dále rozdělovat (viz dále). Pochopení struktury Snowflake je důležité pro správné pochopení pricingu služby. Snowflake si můžete zdarma vyzkoušet ve Trial verzi na 30 dnů až do limitu 400 USD, která odpovídá Standard edici.
Snowflake Cena a kredity – zjednodušeně
Jak jsem psal k porozumnění zásad pricingu je důležité pochopit zevrubně architekturu, která je decentralizovaná. Dá se říci, že cena (pricing) Snowflaku je komplexní záležitost, ale v zásadě stojí na 4 hlavních proměnných – storage, výpočetní výkon, edice a platforma/region vaší instance. Stránku s pricingem naleznete pod odkazem. Vše se točí kolem ceny za 1 kredit, který má různou hodnotu dle daných proměnných, které jsem zmínil.
Snowflake kredit – Ve Snowflake 1 kredit odpovídá spotřebě určitého množství výpočetního výkonu (CPU, paměti) za jednu hodinu, založené na velikosti a typu virtual warehouse, který je používán – více informací níže v sekci architektura. Hodnota a výkon, které 1 kredit představuje, se liší také v závislosti na konkrétní edici Snowflake, kterou uživatelé používají (Standard, Enterprise, Business Critical) a Platformě nebo Regionu viz obrázek.
Cena úložiště – storage
Tady je to celkem jednoduché, platíte za uložená data a jedná se o asi nejlevnější část – zde jsou 2 možnosti podle toho jestli se jedná o klienta s proměnlivými potřebami nebo fixními. Jak funguje storage se můžete podívat v kapitole o architektuře Snowflaku. Pozn. Pricing se může lišit per region, ale ne nijak zásadně
- Pay as you go – 40 USD za TB dat, co spotřebuju to zaplatím
- Objednávka dopředu 23 USD za TB (cca polovina)
Cena podle edice
Cena za 1 kredit se mění podle toho jakou používáme edici. Kompletní seznam funkcí, které edice poskytují naleznete pod odkazem – Snowflake Editions. Základní edicí je Standard, která postrádá některé pokročilé funkce. Projděte si rozdíly mezi edicemi.
- Standard edice – stojí 2 USD za kredit
- Enterprise – 3 USD za kredit
- Business Critical – 4 USD za kredit
- Private Snowflake – custom
Cena za výpočetní výkon a kredity- computing, warehouse size
Pricing ovlivňuje velikost vašich virtual warehouses – tedy výpočetních jednotek pomocí kterých se dotazujete na data. Ty mohou být nastaveny různě podle toho jak potřebujete a čím větší warehouse size, tím silnější computing power. Kompletní informace ohledně spotřeby kreditů v závislosti na velikosti virtual warehouse je zde
Cena – počet kreditů za hodinu výkonu
- X-Small – 1 kreditů/h (Defaultní nastavení při založení virtual warehouse)
- Small – 2 kretidů/h
- Medium – 4 kretidů/h
- Large – 8 kretidů/h
- X-Large – 16 kretidů/h
- 2X-Large – 32 kretidů/h
- 3X-Large – 64 kretidů/h
- 4X-Large – 128 kretidů/h
- 5X-Large – 256 kretidů/h
- 6X-Large – 512 kretidů/h
Platforma (AWS, Azure, Google) a Region
Všechny ceny za computing/storage se mohou lehce lišit kvůli volbě platformy a regionu – to je variabilní.
Příklad pricingu malého datového skladu a důležitost testování
Zkusíme si udělat malý příklad. Mějme malý datový sklad, který má tyto parametry
- Velikost cca 2 TB, denní increment stabilní cca 0,5 GB
- Sklad je napočítáván 1x denně vždy o půlnoci a nápočet běží 3 hodiny z čehož 1 hodina je extrakce dat pomocí Fivetranu a 2 hodiny jsou transformace na úrovni cílového úložiště do sémantického modelu.
- Z datového skladu následně 1 hodinu napočítáváme Power BI reporty
- Během dne vzniká potřeba se do datového skladu dotazovat (analytici, vývojáři), celková doba je průměrně cca 10 hodin denně/všechny
- Co se týče funkci – edice nám stačí Standard
Cena Snowflake počáteční test
- Úložiště – objednané dopředu 3 TB – 70 USD/měsíc
- Výpočetní výkon- celkem 696 USD/ měsíc
- Cena 1 kreditu = 2 USD protože máme edici Standard
- Cena za 1 hodinu výpočetního výkonu = 1 kredit protože ze začátku zkusíme nejnižší Warehouse size = X-Small
- Režie nápočet skladu = 2h denně (extrakce nevyužívá computing) * 30 = 60h měsíc * 2 USD * 1 = 120 USD
- Režie nápočet reportů = 1h denně * 30 = 30h měsíc * 2 USD * 1 = 60 USD
- Režie uživatelské dotazy = 10h denně * 20 = 200h měsíc *2 * 1 = 400 USD
- Rezerva 20% = (120+60+400)*0.2 = 116 USD
Odhadli jsme, že pro začátek nás bude provoz stát cca 766 USD za měsíc při využití nejmenší možné velikosti virtual warehousu. Řešení je škálovatelné, protože velikost warehousu můžeme kdykoliv změnit a zlepšit tak celkový výpočetní výkon celého řešení. Pokud by nastavení služeb vyhovovalo našim potřebám, tak cena je rozumná, protože nemusíme vlastnit žádnou infrastrukturu.
Pokud bychom zvedli parametry výpočetní jednotky z X-small na Small, která sežere 2 kredity za hodinu, tak nás výpočetní část NEbude stát dvojnásobek, protože se nám zkrátí doba nutná k nápočtu (využíváme silnější výpočetní jednotku). Je tak potřeba si s tím trochu pohrát a najít optimální nastavení parametrů.
Architektura Snowflake instance – úložiště, computing, cloud
V případě Snowflaku si kupujete Data platformu jako službu – takže nechcete řešit žádné instalace, přemýšlet co potřebujete nebo nepotřebujete z hlediska nastavení serverů, sítě a podobně. Prostě se zaregistrujete a Snowflake vše zařídí.
Vaše Snowflake instance v pozadí vždy běží na jednom z hlavních cloudových poskytovatelů infrastruktury, nicméně největší výhodou je, že nemusíte prostě nic řešit a máte spoustu potenciálních benefitů (replikace, sdílení mezi poskytovateli apod) – při založení instance si ale můžete vybrat poskytovatele a lokaci (vám nejbližší).
- Google Cloud (minimum klientů cca 5%)
- AWS
- Microsoft Azure
Ve Snowflaku jsou všechna data uložena centrálně s tím, že výpočetní výkon je oddělen od úložiště dat a je alokován dle potřeby. Níže naleznete schéma architektury, která se skládá z několika od sebe nezávislých částí. To má potom právě benefity v obrovské škálovatelnosti celého firemního řešení. 1
Database storage – vrstva pro data
V útrobách Snowflake je centralizované úložiště dat (database storage), které ukládá veškerá data ve formátu optimalizovaném pro cloud. Toto úložiště je nezávislé na výpočetních instancích a umožňuje ukládat strukturovaná i nestrukturovaná data.
Bezpečnost: Data jsou šifrována v klidu (at rest) pomocí silných šifrovacích standardů – AES-256 s tím, že v pravidelných intervalech Snowflake zajišťuje rotaci klíčů pro posílení bezpečnosti (bez zásahu uživatele. Při transportu jsou data šifrována pomocí protokolu TLS (Transport Layer Security). Jsou tam i nějaké možnosti použití vlastních klíčů.
V momentě, kdy do snowflake něco nahrajeme tak tato data jsou zkomprimována, reorganizována (fyzicky), jsou opatřena metadaty atd. To vše je v režii Snowflaku. Data jsou následně k dispozici pro Query processing část (computing). V případě storage platíme pay as you go měsíčně dle průměrné velikosti dat.
Query processing – oddělená vrstva pro výpočetní výkon – size (velikost)
Dostáváme se k druhé vrstvě což je processing nebo computing layer. Prostřednictvím této vrstvy si můžeme sáhnout na data. Výpočetní výkon je řešen pomocí Tzv. virtual warehouses. To je computing instance, díky níž se dotazujete na data. Platí se podle toho jak dlouho měsíčně jsou tyto warehousy spuštěny (při nečinnosti se vypínají samy)
Založit si můžete těchto virtuálních výpočetních jednotek kolik chcete. Má to tu výhodu, že můžete náklady na službu sledovat například dle účelu (např. každé službě nebo skupině uživatelů dáte právo na používání nějakého warehouse). Warehouse má z hlediska nákladů a ceny 2 důležité parametry (kromě toho kdo ho vlastní apod.)
- Size – velikost výpočetní jednotky
- Status – to jestli běží nebo ne
Náklady pak můžete sledovat před tyto výpočetní jednotky (služby/uživatele) na obrazovce Cost management.
Cloud services – správa
Použité zdroje
- Snowflake documentation, Key Concepts & Architecture [on-line]. [cit. 2024-02-13]. Dostupné z WWW: https://docs.snowflake.com/en/user-guide/intro-key-concepts