Metody optimalizace

Automatizace datových pipeline ve Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Větší výpočetní kapacita není vždy řešením

bigger_house

Automatizace datových pipeline ve Snowflake

Čtyři různé přístupy

nanobanana: half: Čtyři různé geometrické ikony nástrojů v mřížce dva na dva, abstraktní plochý design, barvy DataCamp (námořnická modrá a zelená), bílé pozadí, bez textu, minimalistický čistý styl

  • Search Optimization – vyhledávání rovností na ID s vysokou kardinalitou
  • Query Acceleration Service – nepředvídatelné těžké skeny
  • Automatic Clustering – opakované rozsahové filtry na stejných sloupcích
  • Materialized Views – nákladné agregace spouštěné často
Automatizace datových pipeline ve Snowflake

Search Optimization

  • Pomáhá vyhledávat dotazy, které hledají malý počet řádků ve velké tabulce
  • Vytvoří trvalou přístupovou cestu; některé mikro-oddíly lze přeskočit
  • Náklady na úložiště a výpočet pro údržbu přístupové cesty
ALTER TABLE logistics.shipments
  ADD SEARCH OPTIMIZATION;
1 docs.snowflake.com/en/user-guide/search-optimization-service
Automatizace datových pipeline ve Snowflake

Služba Query Acceleration Service

  • Zvládá velké nepředvídatelné skeny
  • Podporuje SELECT, INSERT, CREATE TABLE AS SELECT, COPY INTO
  • QUERY_ACCELERATION_MAX_SCALE_FACTOR: výchozí hodnota 8; 0 = neomezeno, ne zakázáno
ALTER WAREHOUSE harbr_wh SET
  ENABLE_QUERY_ACCELERATION = TRUE
  QUERY_ACCELERATION_MAX_SCALE_FACTOR 
  = 8;
1 docs.snowflake.com/en/user-guide/query-acceleration-service
Automatizace datových pipeline ve Snowflake

Automatické clusterování

  • Pro tabulky, kde se stejné sloupce filtrů objevují ve většině dotazů
  • Snowflake přeuspořádá mikro-oddíly, aby rozsahové filtry přeskočily více dat
  • Údržba na pozadí – není potřeba warehouse
  • Kompromis: průběžné náklady na výpočet při příchodu nových dat
ALTER TABLE logistics.delivery_events
  CLUSTER BY (region, dispatch_date);
1 docs.snowflake.com/en/user-guide/tables-auto-reclustering
Automatizace datových pipeline ve Snowflake

Materializované pohledy

  • Vhodné, když se nákladný dotaz spouští opakovaně
  • Předpočítá a uloží výsledek dotazu; čtení pracuje s uloženým výsledkem
  • Snowflake ji automaticky udržuje na pozadí
  • Platí omezení SQL: žádný HAVING, omezené joiny, žádné okenní funkce
CREATE MATERIALIZED VIEW 
logistics.emea_summary_mv AS
  SELECT region, carrier_id,
         COUNT(*) AS shipments,
         AVG(delivery_days) AS avg_days
  FROM logistics.shipments
  WHERE region = 'EMEA'
  GROUP BY region, carrier_id;
1 docs.snowflake.com/en/user-guide/views-materialized
Automatizace datových pipeline ve Snowflake

Výběr správné metody

Signál v Query Profile Vhodná metoda
TableScan čte téměř všechny oddíly; vyhledávání rovností na sloupci s vysokou kardinalitou Search Optimization
Těžká agregace, velké skeny, nepředvídatelný příchod dat Query Acceleration Service
Stejné sloupce filtrů ve většině dotazů; pruning je slabý Automatic Clustering
Stejná nákladná agregace se spouští často na pomalu se měnících datech Materialized View
  • Metody se vzájemně doplňují
Automatizace datových pipeline ve Snowflake

Pojďme si procvičit!

Automatizace datových pipeline ve Snowflake

Preparing Video For Download...