資料卸載與連線

在 Snowflake 進行資料管線自動化

Emily Melhuish

Technical Curriculum Developer, Snowflake

卸載情境

匯出到雲端儲存

  • 不是所有合作夥伴都能存取 Snowflake
  • COPY INTO 直接將結果寫入 stage
  • 不需要額外的匯出 pipeline
    COPY INTO @harbr_partner_export/
    daily_summary/
    FROM (SELECT * FROM 
    logistics.shipment_summary
    WHERE export_date = 
    CURRENT_DATE() - 1);
    

 

 

mermaid: 將資料從 Snowflake 卸載到合作夥伴儲存

在 Snowflake 進行資料管線自動化

COPY INTO

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;
在 Snowflake 進行資料管線自動化

匯出檔案格式選項

 

格式 最適用於
CSV 通用格式——幾乎所有系統都能讀取;適合合作夥伴匯出
JSON 保留巢狀結構;適合半結構化輸出消費者
Parquet 大型分析型資料集;欄式壓縮=檔案更小、讀取更快

關鍵卸載選項

-- 將大型匯出拆成多個檔案(位元組)
HEADER = TRUE              -- 首列包含欄位名稱
OVERWRITE = TRUE           -- 取代該路徑下既有檔案
MAX_FILE_SIZE = 104857600  -- 每個輸出檔 100 MB
在 Snowflake 進行資料管線自動化

連線版圖

連線版圖與連接器

在 Snowflake 進行資料管線自動化

Kafka 與 Spark 連接器

Kafka 連接器

  • Topics 直接串流進 Snowflake 資料表
  • 不需檔案與 stage——使用 Snowpipe Streaming
  • 延遲以秒計
# connector.properties(Kafka 設定)
snowflake.topic2table.map=events:
delivery_events
snowflake.ingestion.method=
SNOWPIPE_STREAMING

Spark 連接器

  • 與 Spark 的 DataFrame API 整合
  • Spark 作業可讀寫 Snowflake
  • 處理大規模轉換工作負載
// 從 Snowflake 讀取為 Spark DataFrame
val df = spark.read.format("snowflake")
  .options(sfOptions).option("dbtable", 
    "shipments").load()
在 Snowflake 進行資料管線自動化

JDBC/ODBC 與合作夥伴整合

通用連線

整合 類型 在 Harbr 的用途
JDBC / ODBC 通用驅動程式 BI 工具(Tableau、Power BI、Looker)-直接查詢
Python Connector 原生 Python 驅動程式 資料管線、排程 ETL、資料科學工作流程
dbt SQL 轉換 直接在 Snowflake 運算上執行模型
Fivetran / Airbyte 託管型匯入 SaaS 來源系統 → Snowflake,無需自訂程式碼
在 Snowflake 進行資料管線自動化

一起來練習吧!

在 Snowflake 進行資料管線自動化

Preparing Video For Download...