• 13.2.2024
  • Ing. Jan Zedníček - Data Engineer & Controlling
  • 0

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.

snowflake pricing
Snowflake pricing, zdroj: https://www.snowflake.com/en/data-cloud/pricing-options/

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

snowflake architecture - data and computing power
Source – https://docs.snowflake.com/en/user-guide/intro-key-concepts

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.

snowflake architecture - databases

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)

snowflake virtual warehouse

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.

snowflake cost management

Cloud services – správa

Vrstva cloudových služeb (Cloud Services Layer)  je řídící komponentou architektury. Tato vrstva je zodpovědná za koordinaci a správu všech operací a procesů, které se odehrávají v rámci Snowflake. To je od momentu, kdy uživatel zadá dotaz, až po jeho zpracování a vrácení výsledků. Tato vrstva je opět plně pod správou Snowflake a zajišťuje:

  • Autentizace: Ověřuje identity uživatelů a zajišťuje, že mají oprávnění k přístupu k datům a službám.
  • Správa infrastruktury: Dynamicky alokuje a spravuje výpočetní zdroje pro zpracování dotazů a úložiště dat.
  • Správa metadat: Uchovává informace o struktuře dat, schématech a dalších objektech, usnadňuje organizaci a vyhledávání dat.
  • Analýza a optimalizace dotazů: Zlepšuje výkon dotazů prostřednictvím inteligentní analýzy a optimalizace.
  • Řízení přístupu: Definuje a vynucuje pravidla pro to, kdo může data zobrazovat, upravovat nebo spravovat.
5/5 - (1 vote)

Použité zdroje
  1. Snowflake documentation, Key Concepts & Architecture [on-line]. [cit. 2024-02-13]. Dostupné z WWW: https://docs.snowflake.com/en/user-guide/intro-key-concepts 

Ing. Jan Zedníček - Data Engineer & Controlling

Jmenuji se Honza Zedníček a působím jako freelancer. Pracoval jsem dříve také jako BI developer, finanční controller a analytik. Vše pro společnosti z oblasti IT, bankovnictví, consultingu a výroby. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a občas neúspěšně odpálím pár balónků v golfu 🏌️

Již cca 10 let zapisuji na tento web různé návody určené zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Business intelligence, korporátních financí a reportingu.

🔥 Přihlašte se do naší Excel facebook skupiny (2.4k+ členů), kde si pomáháme Excel CZ/SK diskuse »

Leave a Reply

Your email address will not be published. Required fields are marked *