Snowpipe 與 Snowpipe Streaming

在 Snowflake 進行資料管線自動化

Emily Melhuish

Technical Curriculum Developer, Snowflake

Snowpipe

使用情境:

  • 配送事件持續到達

解法:Snowpipe

  • 檔案一進入 stage,Snowpipe 立即載入資料。

螢幕截圖 2026-05-11 12:24:14 pm.png

1 * Snowflake Learning Material
在 Snowflake 進行資料管線自動化

批次載入的問題

  • 檔案整天每隔幾分鐘就到達 S3
  • 排程 COPY INTO 在午夜執行——延遲 24 小時
  • 延遲的出貨要到隔天才會出現。
  • Snowpipe 可縮短落差
-- 夜間批次:00:00 執行,資料全天到達
COPY INTO logistics.delivery_events
FROM @harbr_s3_stage/events/
FILE_FORMAT = (FORMAT_NAME = 'harbr_json_format');
-- 9am 的異常要到明天才會出現
在 Snowflake 進行資料管線自動化

什麼是 Snowpipe?

  • 封裝 COPY INTO 陳述式——語法與檔案格式相同
  • 新檔案進入 stage 時自動觸發
  • 以微批次載入,通常在數分鐘內完成
  • 無伺服器——不需佈建 warehouse
CREATE PIPE harbr_events_pipe AS
  COPY INTO logistics.delivery_events
  FROM @harbr_s3_stage/events/
  FILE_FORMAT = (FORMAT_NAME = 'harbr_json_format');
在 Snowflake 進行資料管線自動化

Snowpipe 的運作方式

Snowpipe 的工作流程

  • AUTO_INGEST —— 事件驅動;雲端儲存會發布通知
  • Amazon S3|Azure Event Grid|GCP Pub/Sub
  • REST API 觸發——從編排程式直接呼叫 insertFiles 或 insertReport 端點
在 Snowflake 進行資料管線自動化

Snowpipe 計費

螢幕截圖 2026-05-11 12:24:14 pm.png

  • 依每 GB 的固定點數計費
  • 文字檔:以未壓縮大小計費
  • 二進位檔:以實際觀測大小計費
在 Snowflake 進行資料管線自動化

Snowpipe Streaming

Snowpipe Snowpipe Streaming
觸發 檔案進入 stage 應用程式寫入資料列
延遲 數分鐘 數秒
使用情境 以檔案為基礎的事件來源 GPS、IoT、即時應用程式資料

 

完全移除檔案邊界

  • 透過 Streaming Ingest SDK,從應用程式直接寫入資料列
  • 無檔案、無 stage——延遲以「秒」計
# Snowpipe Streaming:應用程式直接寫入資料列
channel = client.openChannel('GPS_CHANNEL', 'LOGISTICS', 'GPS_EVENTS')
channel.insertRows(rows=[
    {'vehicle_id': 'V001', 'lat': 51.5, 'lng': -0.12, 'ts': now()}
])
在 Snowflake 進行資料管線自動化

選擇正確的匯入方法

匯入方法

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

一起來練習吧!

在 Snowflake 進行資料管線自動化

Preparing Video For Download...