Optimeringsmetoder

Automatisering av datapipelines i Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Mer beräkningskraft är inte alltid lösningen

bigger_house

Automatisering av datapipelines i Snowflake

Fyra olika metoder

nanobanana: half: Fyra geometriska verktygsikoner i ett tvågångertvå-rutnät, abstrakt platt design, DataCamps marinblå och gröna färger, vit bakgrund, ingen text, minimalistisk

  • Sökoptimering – likhetssökning på ID:n med hög kardinalitet
  • Query Acceleration Service – oförutsägbara tunga skanningar
  • Automatisk klustring – upprepade intervallfiltren på samma kolumner
  • Materialiserade vyer – kostsamma aggregeringar som körs ofta
Automatisering av datapipelines i Snowflake

Sökoptimering

  • Hjälper frågor som söker efter ett litet antal rader i en stor tabell
  • Bygger en beständig åtkomstväg; vissa mikropartitioner kan hoppas över
  • Lagrings- och beräkningskostnad för att underhålla åtkomstvägen
ALTER TABLE logistics.shipments
  ADD SEARCH OPTIMIZATION;
1 docs.snowflake.com/en/user-guide/search-optimization-service
Automatisering av datapipelines i Snowflake

Query Acceleration Service

  • Hanterar stora, oförutsägbara skanningar
  • Stöder SELECT, INSERT, CREATE TABLE AS SELECT, COPY INTO
  • QUERY_ACCELERATION_MAX_SCALE_FACTOR: standard 8; 0 betyder obegränsat, inte inaktiverat
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
Automatisering av datapipelines i Snowflake

Automatisk klustring

  • För tabeller där samma filterkolumner förekommer i de flesta frågor
  • Snowflake ordnar om mikropartitioner så att intervallfiltren kan hoppa över mer data
  • Underhåll i bakgrunden – inget lager krävs
  • Avvägning: löpande beräkningskostnad när ny data tillkommer
ALTER TABLE logistics.delivery_events
  CLUSTER BY (region, dispatch_date);
1 docs.snowflake.com/en/user-guide/tables-auto-reclustering
Automatisering av datapipelines i Snowflake

Materialiserade vyer

  • Används när en kostsam fråga körs upprepade gånger
  • Förberäknar och lagrar frågans resultat; läsningar hämtas från lagret
  • Snowflake underhåller vyn automatiskt i bakgrunden
  • SQL-begränsningar gäller: inget HAVING, begränsade joins, inga fönsterfunktioner
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
Automatisering av datapipelines i Snowflake

Välja rätt metod

Signal i frågeprofilen Metod att överväga
TableScan läser nästan alla partitioner; likhetssökning på en kolumn med hög kardinalitet Sökoptimering
Tung aggregering, stora skanningar, anländer oförutsägbart Query Acceleration Service
Samma filterkolumner i de flesta frågor; partitionsbeskärning är svag Automatisk klustring
Samma kostsamma aggregering körs ofta på sällan förändrad data Materialiserad vy
  • Metoderna kompletterar varandra
Automatisering av datapipelines i Snowflake

Laten we oefenen!

Automatisering av datapipelines i Snowflake

Preparing Video For Download...