DBT 與 Databricks 資料工程工具探索
January 14, 2025
沒什麼組織、一些倏忽即逝有趣或不有趣的想法
DBT 初探
- 什麼是 DBT:
- Data Build Tool (DBT) 是一個開源的資料轉換工具
- 讓資料分析師和工程師能用 SQL 撰寫資料轉換邏輯
- 將 SQL 查詢模組化,方便重複使用和維護
- 提供版本控制、測試、文件等軟體工程實踐
- DBT 的核心概念:
- Models: 用 SQL SELECT 語句定義的資料轉換邏輯
- Sources: 原始資料表的宣告
- Tests: 確保資料品質的自動化檢查
- Documentation: 自動產生資料血緣關係圖
- Macros: 可重複使用的 SQL 程式碼片段
- 如何使用 DBT:
- 安裝 DBT CLI 工具
- 設定資料庫連線
- 建立 models/ 資料夾存放 SQL 檔案
- 撰寫 SELECT 語句定義轉換邏輯
- 執行 dbt run 進行資料轉換
- 用 dbt test 驗證資料品質
- 適合的使用情境:
- 需要建立資料倉儲的 ETL/ELT 流程
- 有大量重複使用的 SQL 查詢邏輯
- 想導入資料工程的最佳實踐
- 需要自動化資料轉換和測試流程
- 團隊協作開發資料管道
- 什麼是 DBT:
DataBricks
- Workspaces
- Collaborative environment
- Notebooks
- Libraries
- Jobs
- Clusters
- databricks workflows
- 主要功能:
- 排程和編排資料處理任務
- 支援多種任務類型:Notebooks、JAR、SQL、DLT Pipeline
- 可設定任務間的相依性和執行順序
- 控制流程選項:
- 觸發類型:排程、檔案到達、持續執行
- 重試機制:失敗時自動重試
- 條件式執行:Run-if、If-else 邏輯
- For-each 迴圈:批次參數化執行
- 執行時間限制:可設定警告或中止閾值
- 監控功能:
- UI 介面即時監控
- 電子郵件和系統通知
- System tables 追蹤任務活動
- 成本和效能分析
- 主要功能:
- Delta Lake
- 核心功能:
- ACID transactions 支援
- 基於 Parquet 格式的交易日誌
- 與 Apache Spark API 完全相容
- 支援批次和串流處理整合
- 資料管理特性:
- Time travel (版本控制與查詢)
- Schema enforcement 與驗證
- 自動化 Schema 更新
- Column mapping (重命名/刪除欄位)
- 效能優化:
- Liquid clustering
- Data skipping
- 自動檔案大小優化
- Vacuum 清理未使用檔案
- 資料流水線:
- Change Data Feed (CDC)
- Structured Streaming 整合
- Delta Live Tables 支援
- Medallion 架構最佳實踐
- 核心功能:
- Workspaces