Snowflake'te Veri Pipeline'larını Otomatikleştirme
Emily Melhuish
Technical Curriculum Developer, Snowflake
CDC: Change Data Capture

Bir akış ne yapar

| 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ı)
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;
SELECT product, quantity, METADATA$ACTION, METADATA$ISUPDATE, METADATA$ROW_ID
FROM shipments_stream;
METADATA$ACTION: INSERT veya DELETEMETADATA$ISUPDATE: Güncelleme çiftinin parçasıysa TRUEMETADATA$ROW_ID: Benzersiz fiziksel satır kimliğiMETADATA$ISUPDATE = TRUE ile işaretlenir


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