在 Snowflake 進行資料管線自動化
Emily Melhuish
Technical Curriculum Developer, Snowflake
匯出到雲端儲存
COPY INTO 直接將結果寫入 stageCOPY INTO @harbr_partner_export/
daily_summary/
FROM (SELECT * FROM
logistics.shipment_summary
WHERE export_date =
CURRENT_DATE() - 1);

COPY INTO @harbr_partner_export/shipment_summary/
FROM (
SELECT shipment_id,
origin,
destination,
delivery_status,
delivery_time_hours
FROM logistics.shipments
WHERE delivery_date = CURRENT_DATE()
)
FILE_FORMAT = (TYPE = 'CSV' HEADER = TRUE)
OVERWRITE = TRUE;
| 格式 | 最適用於 |
|---|---|
| CSV | 通用格式——幾乎所有系統都能讀取;適合合作夥伴匯出 |
| JSON | 保留巢狀結構;適合半結構化輸出消費者 |
| Parquet | 大型分析型資料集;欄式壓縮=檔案更小、讀取更快 |
關鍵卸載選項
-- 將大型匯出拆成多個檔案(位元組)
HEADER = TRUE -- 首列包含欄位名稱
OVERWRITE = TRUE -- 取代該路徑下既有檔案
MAX_FILE_SIZE = 104857600 -- 每個輸出檔 100 MB

Kafka 連接器
# connector.properties(Kafka 設定)
snowflake.topic2table.map=events:
delivery_events
snowflake.ingestion.method=
SNOWPIPE_STREAMING
Spark 連接器
// 從 Snowflake 讀取為 Spark DataFrame
val df = spark.read.format("snowflake")
.options(sfOptions).option("dbtable",
"shipments").load()
通用連線
| 整合 | 類型 | 在 Harbr 的用途 |
|---|---|---|
| JDBC / ODBC | 通用驅動程式 | BI 工具(Tableau、Power BI、Looker)-直接查詢 |
| Python Connector | 原生 Python 驅動程式 | 資料管線、排程 ETL、資料科學工作流程 |
| dbt | SQL 轉換 | 直接在 Snowflake 運算上執行模型 |
| Fivetran / Airbyte | 託管型匯入 | SaaS 來源系統 → Snowflake,無需自訂程式碼 |
在 Snowflake 進行資料管線自動化