En İyileme Yöntemleri

Snowflake'te Veri Pipeline'larını Otomatikleştirme

Emily Melhuish

Technical Curriculum Developer, Snowflake

Daha Fazla Hesaplama Her Zaman Çözüm Değil

daha büyük ev

Snowflake'te Veri Pipeline'larını Otomatikleştirme

Dört Farklı Yaklaşım

nanobanana: yarım: İkiye iki ızgarada düzenlenmiş dört farklı geometrik araç simgesi, soyut düz tasarım, DataCamp laciverti ve yeşili, beyaz arka plan, metin yok, minimalist temiz

  • Search Optimization - yüksek kardinaliteli kimliklerde eşitlik aramaları
  • Query Acceleration Service - öngörülemez ağır taramalar
  • Automatic Clustering - aynı sütunlarda tekrarlanan aralık filtreleri
  • Materialized Views - sık çalışan maliyetli özetlemeler
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Arama İyileştirme

  • Büyük tabloda az sayıda satır arayan sorgulara yardımcı olur
  • Kalıcı bir erişim yolu kurar; bazı mikro-bölmeler atlanabilir
  • Erişim yolunu sürdürmek için depolama + hesaplama maliyeti
ALTER TABLE logistics.shipments
  ADD SEARCH OPTIMIZATION;
1 docs.snowflake.com/en/user-guide/search-optimization-service
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Sorgu Hızlandırma Hizmeti

  • Büyük ve öngörülemez taramaları işler
  • SELECT, INSERT, CREATE TABLE AS SELECT, COPY INTO destekler
  • QUERY_ACCELERATION_MAX_SCALE_FACTOR: varsayılan 8; 0 sınırsızdır, devre dışı değil
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
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Otomatik Kümeleme

  • Çoğu sorguda aynı filtre sütunlarının kullanıldığı tablolar için
  • Snowflake, aralık filtrelerinin daha fazla veriyi atlaması için mikro-bölmeleri yeniden sıralar
  • Arka planda bakım — warehouse gerekmez
  • Taviz: yeni veri geldikçe sürekli hesaplama maliyeti
ALTER TABLE logistics.delivery_events
  CLUSTER BY (region, dispatch_date);
1 docs.snowflake.com/en/user-guide/tables-auto-reclustering
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Malzemeleşmiş Görünümler

  • Maliyetli bir sorgu tekrar tekrar çalıştırıldığında gerekir
  • Sorgu sonucunu önceden hesaplayıp saklar; okumalar saklı sonuca gider
  • Snowflake arka planda otomatik olarak güncel tutar
  • SQL kısıtları geçerlidir: HAVING yok, sınırlı join, pencere fonksiyonu yok
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
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Doğru Yöntemi Seçmek

Sorgu Profilindeki Sinyal Düşünülecek Yöntem
TableScan neredeyse tüm bölümleri okuyor; yüksek kardinaliteli sütunda eşitlik araması Search Optimization
Ağır özetleme, büyük taramalar, öngörülemez geliş Query Acceleration Service
Çoğu sorguda aynı filtre sütunları; budama zayıf Automatic Clustering
Aynı maliyetli özetleme, yavaş değişen veride sıkça çalışır Materialized View
  • Yöntemler birbirini tamamlar
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Hadi pratik yapalım!

Snowflake'te Veri Pipeline'larını Otomatikleştirme

Preparing Video For Download...