Optimalisatiemethoden

Automatisering van datapijplijnen in Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Meer compute is niet altijd de oplossing

groter_huis

Automatisering van datapijplijnen in Snowflake

Vier verschillende aanpakken

nanobanana: half: Vier verschillende geometrische toolpictogrammen in een raster van twee bij twee, abstracte flat design, DataCamp marineblauw en groen, witte achtergrond, geen tekst, minimalistisch en strak

  • Search Optimization - equality-lookups op ID's met hoge cardinaliteit
  • Query Acceleration Service - onvoorspelbare zware scans
  • Automatisch clusteren - herhaalde rangefilters op dezelfde kolommen
  • Gematerealiseerde views - dure aggregaties draaien vaak
Automatisering van datapijplijnen in Snowflake

Search Optimization

  • Helpt bij queries die een klein aantal rijen zoeken in een grote tabel
  • Bouwt een blijvend toegangspad; sommige micro-partitions kun je overslaan
  • Opslag + compute-kosten om het toegangspad te onderhouden
ALTER TABLE logistics.shipments
  ADD SEARCH OPTIMIZATION;
1 docs.snowflake.com/en/user-guide/search-optimization-service
Automatisering van datapijplijnen in Snowflake

Query Acceleration Service

  • Voor grote, onvoorspelbare scans
  • Ondersteunt SELECT, INSERT, CREATE TABLE AS SELECT, COPY INTO
  • QUERY_ACCELERATION_MAX_SCALE_FACTOR: standaard 8; 0 = onbeperkt, niet uitgeschakeld
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 van datapijplijnen in Snowflake

Automatisch clusteren

  • Voor tabellen waar dezelfde filterkolommen in de meeste queries voorkomen
  • Snowflake herordent micro-partitions zodat rangefilters meer data kunnen overslaan
  • Achtergrondonderhoud — geen warehouse nodig
  • Trade-off: doorlopende compute-kosten bij nieuwe data
ALTER TABLE logistics.delivery_events
  CLUSTER BY (region, dispatch_date);
1 docs.snowflake.com/en/user-guide/tables-auto-reclustering
Automatisering van datapijplijnen in Snowflake

Gematerealiseerde views

  • Nodig wanneer een dure query steeds opnieuw draait
  • Precompute en slaat het queryresultaat op; reads gebruiken het opgeslagen resultaat
  • Snowflake onderhoudt het automatisch op de achtergrond
  • SQL-beperkingen: geen HAVING, beperkte joins, geen windowfuncties
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 van datapijplijnen in Snowflake

De juiste methode kiezen

Signaal in de Query Profile Te overwegen methode
TableScan leest bijna alle partitions; equality-lookup op een kolom met hoge cardinaliteit Search Optimization
Zware aggregatie, grote scans, komt onvoorspelbaar binnen Query Acceleration Service
Dezelfde filterkolommen in de meeste queries; pruning is zwak Automatisch clusteren
Dezelfde dure aggregatie draait vaak op traag veranderende data Gematerealiseerde view
  • Methodes vullen elkaar aan
Automatisering van datapijplijnen in Snowflake

Laten we oefenen!

Automatisering van datapijplijnen in Snowflake

Preparing Video For Download...