Josix is Only Joking

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 查詢邏輯
      • 想導入資料工程的最佳實踐
      • 需要自動化資料轉換和測試流程
      • 團隊協作開發資料管道
  • 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 架構最佳實踐

Josix Wang © 2025