在 Snowflake 進行資料管線自動化
Emily Melhuish
Technical Curriculum Developer, Snowflake
使用情境:
解法:Snowpipe

COPY INTO 在午夜執行——延遲 24 小時-- 夜間批次:00:00 執行,資料全天到達
COPY INTO logistics.delivery_events
FROM @harbr_s3_stage/events/
FILE_FORMAT = (FORMAT_NAME = 'harbr_json_format');
-- 9am 的異常要到明天才會出現
COPY INTO 陳述式——語法與檔案格式相同CREATE PIPE harbr_events_pipe AS
COPY INTO logistics.delivery_events
FROM @harbr_s3_stage/events/
FILE_FORMAT = (FORMAT_NAME = 'harbr_json_format');

AUTO_INGEST —— 事件驅動;雲端儲存會發布通知insertFiles 或 insertReport 端點
| Snowpipe | Snowpipe Streaming | |
|---|---|---|
| 觸發 | 檔案進入 stage | 應用程式寫入資料列 |
| 延遲 | 數分鐘 | 數秒 |
| 使用情境 | 以檔案為基礎的事件來源 | GPS、IoT、即時應用程式資料 |
完全移除檔案邊界
# Snowpipe Streaming:應用程式直接寫入資料列
channel = client.openChannel('GPS_CHANNEL', 'LOGISTICS', 'GPS_EVENTS')
channel.insertRows(rows=[
{'vehicle_id': 'V001', 'lat': 51.5, 'lng': -0.12, 'ts': now()}
])

| 方法 | 何時使用 |
|---|---|
| COPY INTO | 排程批次載入:每日檔案、每週匯出;可接受數小時延遲 |
| Snowpipe | 檔案持續到達;需在到達後數分鐘內完成載入 |
| Snowpipe Streaming | 應用程式產生的資料:GPS、IoT、金融市場——資料可在數秒內可用 |
在 Snowflake 進行資料管線自動化