Optimierungsmethoden

Automatisierung von Datenpipelines in Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Mehr Compute ist nicht immer die Lösung

größeres_haus

Automatisierung von Datenpipelines in Snowflake

Vier verschiedene Ansätze

nanobanana: halb: Vier unterschiedliche geometrische Werkzeugsymbole in einem 2x2-Raster, abstraktes Flat Design, DataCamp Marineblau und Grün, weißer Hintergrund, kein Text, minimalistisch sauber

  • Search Optimization – Equality-Lookups auf IDs mit hoher Kardinalität
  • Query Acceleration Service – unvorhersehbare schwere Scans
  • Automatisches Clustering – wiederholte Bereichsfilter auf denselben Spalten
  • Materialized Views – teure Aggregationen laufen oft
Automatisierung von Datenpipelines in Snowflake

Search Optimization

  • Hilft bei Abfragen, die wenige Zeilen in einer großen Tabelle suchen
  • Erstellt einen persistenten Zugriffspfad; einige Mikro-Partitionen können übersprungen werden
  • Speicher- + Compute-Kosten für die Pflege des Pfads
ALTER TABLE logistics.shipments
  ADD SEARCH OPTIMIZATION;
1 docs.snowflake.com/en/user-guide/search-optimization-service
Automatisierung von Datenpipelines in Snowflake

Query Acceleration Service

  • Für große, unvorhersehbare Scans
  • Unterstützt SELECT, INSERT, CREATE TABLE AS SELECT, COPY INTO
  • QUERY_ACCELERATION_MAX_SCALE_FACTOR: Standard 8; 0 = unbegrenzt, nicht deaktiviert
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
Automatisierung von Datenpipelines in Snowflake

Automatisches Clustering

  • Für Tabellen, bei denen dieselben Filterspalten in den meisten Abfragen vorkommen
  • Snowflake ordnet Mikro-Partitionen neu, damit Bereichsfilter mehr Daten überspringen
  • Hintergrundwartung – kein Warehouse nötig
  • Trade-off: laufende Compute-Kosten bei neuen Daten
ALTER TABLE logistics.delivery_events
  CLUSTER BY (region, dispatch_date);
1 docs.snowflake.com/en/user-guide/tables-auto-reclustering
Automatisierung von Datenpipelines in Snowflake

Materialized Views

  • Sinnvoll, wenn eine teure Abfrage ständig läuft
  • Vorkalkuliert und speichert das Ergebnis; Reads greifen darauf zu
  • Snowflake pflegt sie automatisch im Hintergrund
  • SQL-Einschränkungen: kein HAVING, begrenzte Joins, keine Window-Funktionen
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
Automatisierung von Datenpipelines in Snowflake

Die richtige Methode wählen

Signal im Query Profile Methode
TableScan liest fast alle Partitionen; Gleichheitslookup auf Spalte mit hoher Kardinalität Search Optimization
Schwere Aggregation, große Scans, tritt unvorhersehbar auf Query Acceleration Service
Dieselben Filterspalten in den meisten Abfragen; schwaches Pruning Automatisches Clustering
Dieselbe teure Aggregation läuft häufig auf sich langsam ändernden Daten Materialized View
  • Methoden ergänzen sich
Automatisierung von Datenpipelines in Snowflake

Lass uns üben!

Automatisierung von Datenpipelines in Snowflake

Preparing Video For Download...