Akışlar ve Değişim Verisi Yakalama (CDC)

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

Emily Melhuish

Technical Curriculum Developer, Snowflake

Sadece Değişeni İşlemek

CDC: Change Data Capture Verinin nasıl işlendiğine dair iki karşılaştırma

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

Akışlar

Bir akış ne yapar

  • Kaynak tabloda yapılan her INSERT, UPDATE ve DELETE’i izler

Screenshot 2026-05-11 at 10.50.31 am.png

  • Sürekli bir değişiklik günlüğü tutar — veri çoğaltma yok
  • Tüketildikten sonra ofset ilerler; sonraki okuma sıfırdan başlar
1 * Snowflake Öğrenme Kaynağı
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Akış Türleri

 

Akış Türü Yakalar En Uygun
Standart Tüm tablo türleri ve görünümler & tüm DML değişiklikleri - insert, update, delete izler Her satırı değişebilen tablolar (ör. sevkiyatlar)
Yalnızca-ekleme Harici tablolar hariç tüm tablo türleri ve görünümler - yalnızca satır eklemelerini izler Bir kez eklenen tablolar (ör. teslimat olayları) - daha verimli
Yalnızca-insert Haricen yönetilen Apache Iceberg ve harici tablolar - yalnızca satır eklemelerini izler Harici tablolar

Dizin tabloları, bir aşamadaki dosya meta verilerini sunar (ad, boyut, son değiştirilme zamanı)

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

Akış Oluşturma

sevkiyatlar tablosunda standart akış

CREATE STREAM shipments_stream
  ON TABLE logistics.shipments;

teslimat olayları tablosunda yalnızca-ekleme akış

CREATE STREAM delivery_events_stream
  ON TABLE logistics.delivery_events
  APPEND_ONLY = TRUE;
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Akış Meta Veri Sütunları

SELECT product, quantity, METADATA$ACTION, METADATA$ISUPDATE, METADATA$ROW_ID
FROM shipments_stream;
  • METADATA$ACTION: INSERT veya DELETE
  • METADATA$ISUPDATE: Güncelleme çiftinin parçasıysa TRUE
  • METADATA$ROW_ID: Benzersiz fiziksel satır kimliği
  • Güncellemeler DELETE + INSERT çifti olarak görünür; ikisi de METADATA$ISUPDATE = TRUE ile işaretlenir

Akış meta veri sütunları: METADATA$ACTION, METADATA$ISUPDATE, METADATA$ROW_ID örnek verilerle gösteriliyor

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

Akış Ofseti

Zaman çizelgesi diyagramı - Akış oluşturuldu (ofset burada başlar) → Kaynak tabloda değişiklikler olur (akış kayıtları biriktirir) → Akış bir işlemde tüketilir (ofset şimdiye ilerler)

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

Boru Hattında Akışlara Genel Bakış

  • Akışlar, görevlerle eşleşir — SQL’i zamanlı çalıştıran Snowflake nesneleri
  • Görev yalnızca değişen satırları okur; 10M satırda: 2 saniye vs 2 dakika

Screenshot 2026-05-11 at 10.48.51 am.png

1 * Snowflake Öğrenme Kaynağı
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Boru Hattında Akış Sorgusu

  • Akışlar, görevlerle eşleşir - SQL’i zamanlı çalıştıran Snowflake nesneleri
  • Görev yalnızca değişen satırları okur; 10M satırda: 2 saniye vs 2 dakika
CREATE TASK logistics.sync_shipments
  WAREHOUSE = compute_wh
  SCHEDULE = '5 MINUTE'
  WHEN SYSTEM$STREAM_HAS_DATA('logistics.staging_shipments_stream')
AS
  INSERT INTO logistics.shipments
  SELECT shipment_id, region, carrier, delivery_days
  FROM logistics.staging_shipments_stream
  WHERE METADATA$ACTION = 'INSERT';
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Haydi pratik yapalım!

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

Preparing Video For Download...