Fabric ETL 工具完整對比
Microsoft Fabric 提供多種資料整合與轉換工具,每種工具都有其特定用途和適用場景。
🔥 核心工具對比表
| 工具 | 主要用途 | 適合場景 | 技術背景 | 即時性 |
|---|---|---|---|---|
| Dataflow Gen2 | 低程式碼 ETL,視覺化資料轉換 | 商業分析師做資料清洗與轉換 | Power Query (M 語言) | 批次處理 |
| Pipelines | 編排與自動化工作流程 | 複雜 ETL 流程編排、排程執行 | Azure Data Factory | 批次處理 |
| Notebooks | 程式碼導向的資料工程 | 複雜轉換邏輯、機器學習、進階分析 | Python / Spark / R / Scala | 批次處理 |
| Eventstream | 即時串流資料擷取 | IoT、即時事件、log streaming | Kafka-like streaming | 即時串流 |
| Data Activator | 即時監控與自動化觸發 | 業務規則觸發、警報、自動化動作 | 事件驅動架構 | 即時監控 |
📋 詳細對比
1️⃣ Dataflow Gen2
本質: 低程式碼 / 無程式碼的 ETL 工具
核心特色:
- ✅ 視覺化介面 (Power Query)
- ✅ 不需要寫程式碼
- ✅ 支援 100+ 資料來源
- ✅ 內建資料清洗與轉換功能
- ✅ 可輸出到 Lakehouse / Warehouse / Datamart
適合對象:
- 商業分析師
- BI 開發者
- 不熟悉程式的資料工作者
使用場景:
- 從 Excel / CSV 匯入資料
- 清洗髒資料 (去重、填補空值)
- 簡單的資料轉換與合併
- 建立 Bronze → Silver 層資料
語言: Power Query (M 語言)
2️⃣ Pipelines
本質: 工作流程編排引擎 (類似 Azure Data Factory)
核心特色:
- ✅ 拖拉式設計介面
- ✅ 支援複雜的條件邏輯與迴圈
- ✅ 可呼叫 Dataflow / Notebook / Stored Procedure
- ✅ 內建排程與觸發器
- ✅ 監控與錯誤處理
適合對象:
- 資料工程師
- ETL 開發者
- DevOps 工程師
使用場景:
- 編排多個 ETL 步驟
- 每日/每週自動化資料更新
- 依條件執行不同流程 (if-else)
- 呼叫外部 API 或服務
- 複製大量資料 (Copy Activity)
關鍵活動:
- Copy Data
- Dataflow
- Notebook
- Stored Procedure
- Web Activity
- For Each / Until / If Condition
3️⃣ Notebooks
本質: 互動式程式碼環境 (Jupyter-based)
核心特色:
- ✅ 支援 Python / PySpark / Scala / R
- ✅ 完全程式控制
- ✅ 可使用 Spark 處理大數據
- ✅ 支援機器學習與進階分析
- ✅ 可視覺化與互動式探索
適合對象:
- 資料科學家
- 資料工程師 (熟悉 Python/Spark)
- ML 工程師
使用場景:
- 複雜的資料轉換邏輯
- 大數據處理 (數十億筆)
- 機器學習模型訓練
- 探索性資料分析 (EDA)
- 自訂商業邏輯
常用技術:
- PySpark DataFrame
- pandas
- Delta Lake operations
- MLflow
- scikit-learn / TensorFlow
4️⃣ Eventstream
本質: 即時串流資料擷取與處理
核心特色:
- ✅ 即時 (real-time) 資料串流
- ✅ 支援 Event Hubs / IoT Hub / Kafka
- ✅ 低延遲 (毫秒等級)
- ✅ 自動擴展
- ✅ 可直接寫入 KQL Database / Lakehouse
適合對象:
- IoT 工程師
- 即時分析開發者
- 串流資料工程師
使用場景:
- IoT 感測器資料即時收集
- 應用程式日誌即時串流
- 交易系統即時監控
- 社群媒體即時分析
- Clickstream 分析
資料來源:
- Azure Event Hubs
- Azure IoT Hub
- Kafka
- Custom Apps (透過 API)
5️⃣ Data Activator
本質: 即時監控與事件觸發引擎
核心特色:
- ✅ 無程式碼業務規則設定
- ✅ 監控資料變化自動觸發動作
- ✅ 整合 Power BI / Eventstream
- ✅ 支援多種通知管道
適合對象:
- 業務分析師
- 營運人員
- 監控與警報需求者
使用場景:
- 庫存低於閾值自動發警報
- 銷售異常自動通知主管
- 系統效能下降自動觸發修復
- 客戶行為異常自動標記
- IoT 設備故障即時通知
觸發動作:
- Email 通知
- Teams 訊息
- Power Automate Flow
- Webhook
🎯 選擇決策樹
需要即時處理嗎?
├─ 是 → 需要觸發動作?
│ ├─ 是 → Data Activator
│ └─ 否 → Eventstream
│
└─ 否 (批次處理)
├─ 需要寫程式碼?
│ ├─ 是 → 複雜邏輯/ML?
│ │ ├─ 是 → Notebooks
│ │ └─ 否 → 考慮 Dataflow Gen2
│ │
│ └─ 否 → 需要編排多個步驟?
│ ├─ 是 → Pipelines
│ └─ 否 → Dataflow Gen2
💡 實務組合範例
範例 1: 每日銷售報表
Pipelines (排程每日執行)
↓
Dataflow Gen2 (從 SQL Server 擷取銷售資料)
↓
Lakehouse (Silver 層)
↓
Power BI (報表)
範例 2: IoT 即時監控
Eventstream (收集 IoT 資料)
↓
KQL Database (即時查詢)
↓
Data Activator (溫度過高自動警報)
範例 3: ML 預測模型
Pipelines (編排流程)
↓
Notebook (訓練 ML 模型)
↓
Lakehouse (存儲預測結果)
↓
Power BI (視覺化)
範例 4: 複雜 ETL 流程
Pipelines (主編排器)
├─ Dataflow Gen2 (簡單轉換)
├─ Notebook (複雜商業邏輯)
└─ Stored Procedure (資料驗證)
📊 技術能力對比
| 功能 | Dataflow Gen2 | Pipelines | Notebooks | Eventstream | Data Activator |
|---|---|---|---|---|---|
| 視覺化設計 | ✅ | ✅ | ❌ | ✅ | ✅ |
| 需要程式碼 | ❌ | ❌ | ✅ | ❌ | ❌ |
| 排程執行 | ⚠️* | ✅ | ⚠️** | N/A | N/A |
| 即時處理 | ❌ | ❌ | ❌ | ✅ | ✅ |
| 大數據處理 | ⚠️ | ⚠️ | ✅ | ✅ | ❌ |
| 機器學習 | ❌ | ❌ | ✅ | ❌ | ❌ |
| 編排能力 | ❌ | ✅ | ❌ | ❌ | ❌ |
| 學習曲線 | 低 | 中 | 高 | 中 | 低 |
* 需透過 Pipeline 觸發 ** 可透過 Pipeline 排程或使用 Spark job scheduler
🎓 考試重點提示
記住這些關鍵差異:
- Dataflow Gen2 = Power Query = 低程式碼 ETL
- Pipelines = 編排器 = 自動化流程
- Notebooks = 程式碼 = 複雜邏輯 / ML
- Eventstream = 即時串流 = IoT / Events
- Data Activator = 監控觸發 = 業務規則自動化
常見考題情境:
| 情境 | 正確工具 |
|---|---|
| 商業分析師要從 Excel 匯入資料並清洗 | Dataflow Gen2 |
| 每天凌晨自動執行 5 個 ETL 步驟 | Pipelines |
| 訓練機器學習模型預測客戶流失 | Notebooks |
| 即時收集工廠感測器資料 | Eventstream |
| 庫存低於 100 自動發 Email 給採購 | Data Activator |
| 處理 10 億筆資料做複雜轉換 | Notebooks (Spark) |
| 根據前一步驟結果決定下一步要做什麼 | Pipelines (條件邏輯) |
🚀 最佳實踐
- 組合使用 - 不要只用一種工具,善用各自優勢
- 從簡單開始 - 能用 Dataflow Gen2 就不用 Notebooks
- 編排集中管理 - 用 Pipelines 統一管理所有 ETL 流程
- 即時與批次分離 - 不要混用,架構會更清晰
- 監控與警報 - 善用 Data Activator 減少人工監控