iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0

簡介

在上篇 DAY4 知識之章-Open Data Format 中,我們聊到各種開放數據格式的特性。

本篇要介紹的是 Data Lakehouse 架構的核心技術之一:Apache Iceberg,這是一種能同時兼顧數據湖彈性與數據倉庫治理能力的表格式。

https://ithelp.ithome.com.tw/upload/images/20250919/20163443IzQfCNy31O.png


Iceberg 的基本概念

什麼是 Iceberg?

Apache Iceberg 是一個 開源表格式(Table Format),專為管理大規模數據湖中的結構化數據而設計。 它由 Netflix 在 2017 年提出,2018 年捐贈給 Apache 基金會。

核心問題

  • 傳統 Hive 表限制:依賴目錄結構管理數據,導致一致性不足、併發衝突頻繁。
  • Iceberg 解法:以 Manifest 檔案清單 追蹤所有數據檔案,讓寫入更具事務性,支援高併發與一致性。

👉 Takeaway:Iceberg 把「目錄管理」升級為「元數據管理」,讓數據湖能有數據倉庫級別的治理能力。


Iceberg 架構設計

https://ithelp.ithome.com.tw/upload/images/20250919/20163443Mdz8dRz46M.png
圖片來源:Iceberg 官網

Iceberg 採用三層設計:

層級 功能 說明
數據層(Data Layer) 儲存數據檔案 Parquet / ORC / Avro
元數據層(Metadata Layer) 管理 Manifest & Snapshot 支援統計資訊、時間旅行
目錄層(Catalog) 保存當前元數據指針 保證原子操作

👉 Takeaway:Iceberg 透過 Metadata 把數據湖抽象成「可查詢的一張表」。


Iceberg 的主要特點

1. 元數據管理

  • 三層結構:metadata.json → manifest list → manifest files
  • 隱式分區:不用手動指定分區,查詢引擎會自動最佳化
  • 統計資訊:記錄行數、min/max、Bloom filter

👉 好處:查詢更快,無需重組數據也能演進分區。


2. ACID 事務 + 併發控制

  • ACID 支援:原子性、一致性、隔離性、持久性
  • 樂觀併發控制:多使用者同時寫入,透過快照隔離避免衝突
  • 時間旅行:查詢舊版本數據,支援審計與增量讀取

👉 好處:大數據環境下也能安全「多人同時讀寫」。


3. Schema 演進

支援動態修改,不需重寫數據:
✅ 新增欄位(可加預設值)
✅ 刪除 / 重命名欄位
✅ 類型轉換(相容範圍內)
✅ 支援嵌套結構(struct, array, map)

👉 好處:讓數據表能跟上業務需求變更。


4. 查詢性能優化

技術 說明 效果
Data Skipping 利用統計資訊跳過無關檔案 🚀 提升掃描速度
Partition Pruning 自動過濾不相關分區 📉 降低 I/O
Projection Pushdown 只讀取需要的欄位 💡 減少資料傳輸
小檔案合併 自動重組碎片檔案 ⚡ 提升查詢效能

👉 好處:在 TB ~ PB 級數據下仍能維持高效查詢。


5. 開放格式與存儲

  • 檔案格式:Parquet、ORC、Avro
  • 壓縮:Snappy、GZIP、LZ4、ZSTD
  • 維護功能:快照過期、孤兒檔清理、檔案壓實(Compaction)

👉 好處:與各種計算引擎與儲存系統互通,避免廠商鎖定。


Iceberg 實際應用場景

場景 使用方式 例子
大規模數據分析 儲存 PB 級資料 歷史數據分析
數據湖倉一體 同時支援批處理/串流 ML、BI
數據治理 權限控制、審計 企業合規
實時串流處理 與 Spark/Flink 整合 即時分析
BI 報表 快速查詢支援 BI 工具 QuickSight
CDC 增量數據捕獲 實現變更歷史

👉 Takeaway:Iceberg 讓數據湖能處理傳統數據倉庫的工作負載。


Iceberg 與早期架構比較

特性 傳統數據倉庫 Hive 表格式 Apache Iceberg
ACID 支援
Schema 演進 ⚠️ 有限 ❌ 困難 💡 靈活
時間旅行 ⚠️ 有限 ⏳ 支援
併發寫入 ❌ 困難 🤝 高效
開放格式
成本效益 💸 低 💰 中 🚀 高
查詢性能 ⚡ 高 🐢 低 ⚡ 高

結論與行動建議

Apache Iceberg 讓數據湖具備了數據倉庫級的治理能力與查詢效能,並保持開放與低成本特性。在導入前,建議先在小規模數據集上測試,觀察原有「資料庫」、「資料倉儲」的效能與 Iceberg 之間的差異,逐步導入到正式數據湖倉。


下篇預告

下一篇將介紹 「DAY6 知識之章:儲存的基石 Amazon S3」,來了解 AWS 最核心的物件儲存服務,同時也是 AWS Lakehouse 的儲存核心。


參考資料

[1] Vu Trinh - I spent 7 hours diving deep into Apache Iceberg
[2] AWS Whitepaper - Lake house architecture
[3] Iceberg 官方 - Iceberg 架構
[4] Dremio - Apache Iceberg The Definitive Guide


上一篇
DAY4 知識之章-Open Data Format
下一篇
DAY6 知識之章-儲存的基石 Amazon S3
系列文
動漫宅的 30 天 AWS Lakehouse 修行日誌7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言