什麼是 Apache Iceberg?

上次更新日期:2026 年 5 月 1 日

Apache Iceberg 是開放原始碼資料表格式,專為儲存在 data lake 中的大規模數據分析資料集而設計。Iceberg 資料表會將資料視為一系列檔案來管理,為現代資料架構提供更高的可靠性、效能和彈性。您可以將這個服務視為智慧層,置於 Cloud Storage 等資料湖泊儲存空間之上,為龐大的資料集提供類似資料庫的功能。Iceberg 會將資料表視為一系列資料檔案來管理,而非單純管理檔案,因此能提供結構定義演進、時間回溯,以及更有效率的查詢規劃等功能。這樣一來,資料分析師、數據資料學家和工程師就能更輕鬆、更有效率地處理 data lake 中的資料,並提升數據分析工作負載。

什麼是交易資料湖泊?

交易資料湖泊不僅能大規模儲存資料,還支援交易作業,確保資料準確且一致。Iceberg 資料表實現了這些屬性 (統稱為 ACID)。

  • 完整性:保證每筆交易都會視為單一單位,不是完全成功就是完全失敗,不會有中間狀態
  • 一致性:根據資料湖泊的定義規則,確保所有寫入的資料都有效。
  • 獨立性:允許多個交易同時發生,且不會互相干擾
  • 耐用性:確保交易提交後,即使發生系統故障,資料也不會遺失或損毀

Iceberg 資料表的常見用途

Iceberg 資料表適用於各種現代資料湖泊和湖倉用途,包括:

  • 法規遵循與隱私權:對於需要經常刪除資料,以確保符合資料隱私權法規的資料湖泊,是理想的選擇
  • 記錄層級更新:可更新個別記錄,不必重新發布整個資料集,例如因顧客退貨而變更的銷售資料
  • 管理無法預測的變更:支援緩慢變動維度 (SCD) 資料表,例如聯絡資訊可能在未知時間間隔變更的客戶記錄
  • 時間回溯與稽核:保留資料表快照記錄,方便使用者查詢歷來版本,進行趨勢分析,或復原及修正問題
  • 機器學習:提供一致且版本受管理的資料集,是訓練可靠模型的關鍵

誰會使用 Iceberg 資料表?

各種技術人員都可運用 Iceberg 資料表,有效管理大型資料集:

  • 資料工程師和管理員:使用 Iceberg 資料表設計及建構可擴充的可靠儲存系統
  • 資料分析師和資料科學家:使用 Iceberg 資料表,以熟悉的 SQL 語法分析龐大的資料集,以及可重現的歷來資料快照

Iceberg 資料表的主要優點

熟悉標準 SQL 的使用者不必學習新語言,即可執行複雜的資料湖泊作業。

可順暢變更資料結構 (新增、重新命名或移除資料欄),不會中斷查詢。

支援變更資料擷取 (CDC),使用者可只處理上次執行後變更的資料,進而提升效率。

使用中繼資料修剪不必要的檔案,並透過述詞下推等技術,加快查詢執行速度。

與 Spark、Flink、Hive 和 Presto 等各種引擎相容。

Apache Iceberg 資料表如何運作?

Apache Iceberg 導入中繼資料層,位於資料湖泊中的實際資料檔案之上。與傳統的檔案式系統相比,這類中繼資料能以更有條理且穩健的方式,追蹤資料表的結構和內容。以下詳細說明其主要機制:

  • 中繼資料管理:Iceberg 會維護中繼資料檔案,這些檔案會說明資料表的結構定義、分區和資料檔案位置。這些中繼資料檔案通常會與資料一併儲存在資料湖泊中。
  • 目錄:Iceberg 會使用目錄,來追蹤每個資料表目前中繼資料的位置。這個目錄可以是 Hive Metastore 等服務、以檔案系統為基礎的實作,或是雲端原生目錄服務。
  • 資料表快照:每當資料表有變更 (例如新增資料、刪除資料或漸進式結構定義更新),Iceberg 就會建立資料表中繼資料的新快照。這些快照無法變更,可做為資料表狀態的歷史記錄。
  • 資訊清單清單和資訊清單檔案:每個快照都會指向一個資訊清單清單,而清單則會列出一或多個清單檔案。資訊清單檔案包含個別資料檔案的中繼資料,包括位置、分區值和統計資料 (例如列數和值範圍)。

Apache Iceberg 架構

Apache Iceberg 架構包含幾個協同運作的重要元件:

  • 資料湖泊儲存空間:這是基礎儲存層,例如 Cloud Storage,用來儲存實際的資料檔案 (以 Parquet、ORC 或 Avro 等格式) 和 Iceberg 的中繼資料檔案。
  • Iceberg REST 目錄:這個元件負責管理 Iceberg 資料表的中繼資料指標。這會做為中央註冊表,追蹤每個資料表的中繼資料目前版本。常見的目錄導入方式包括:
  • Hive Metastore廣泛使用的中繼資料存放區,經常與以 Hadoop 為基礎的系統搭配使用。
  • 檔案系統目錄:簡單的實作方式,目錄資訊會直接儲存在資料湖泊檔案系統中。
  • 雲端原生目錄服務:雲端服務供應商提供的代管服務,可用來儲存及管理中繼資料。
  • Iceberg 中繼資料:由多層中繼資料檔案組成,用於追蹤資料表的結構和資料。
  • 資料表中繼資料檔案:這個檔案會指向目前的資訊清單清單,並包含資料表的概要資訊,例如架構和分割規格。
  • 資訊清單清單:這個檔案會列出資料表的特定快照中,含有資料檔案中繼資料的資訊清單檔案。
  • 資訊清單檔案:這些檔案包含個別資料檔案的詳細資訊,包括位置、分區值和統計資料。
  • 查詢引擎和處理框架:運算引擎會直接與 Iceberg 中繼資料互動,讀取、寫入及執行 ACID 交易。Apache Spark 等開放原始碼框架會使用這類中繼資料,略過不必要的檔案,加快查詢執行速度。
  • 運算資源:運算資源是執行查詢引擎和處理框架的底層基礎架構 (例如虛擬機器和容器)。

Apache Iceberg 和 data lake

Apache Iceberg 新增可靠且高效的資料表格式,大幅提升 data lake 的功能。在沒有 Iceberg 等資料表格式的傳統 data lake 中,資料通常只是一系列檔案。這會帶來一些挑戰:

  • 缺乏結構定義演變機制:變更資料結構可能很複雜,且容易出錯
  • 讀取不一致:並行寫入作業可能導致查詢讀取新舊資料的混合內容
  • 查詢效能緩慢:沒有中繼資料的情況下,查詢引擎通常必須掃描大量資料
  • 資料管理不易:沒有可用的時間回溯和版本管理等功能

Iceberg 在資料湖泊之上提供結構化層,解決這些限制。這個解決方案為 data lake 提供類似資料庫的功能,將 data lake 轉換成更強大且更容易管理的 data lakehouse。Iceberg 會將資料表視為一系列含有豐富中繼資料的檔案來管理,並提供下列功能:

  • 可靠且一致的資料存取機制:ACID 屬性可確保資料完整性
  • 高效查詢處理:提供中繼資料導向的資料略過和篩選功能,可加速查詢
  • 彈性的資料管理:提供結構定義演進和時間回溯功能,可簡化資料維護與分析作業
  • 互通性:Iceberg 經過設計,可與 data lake 常用的各種查詢引擎和處理架構相容

透過 Google Cloud 解決業務難題

新客戶可以獲得價值 $300 美元的免費抵免額,盡情試用各項 Google Cloud 功能。
與 Google Cloud 銷售專員聯絡,深入探討您面臨的特殊難題。

Google Cloud 與 Apache Iceberg

Google Cloud 提供一個可充分運用 Apache Iceberg 的穩固環境。多項 Google Cloud 服務與 Iceberg 完美整合,可讓使用者建構功能強大且可擴充的資料湖倉解決方案。

展開下一步行動

運用價值 $300 美元的免費抵免額和超過 20 項一律免費的產品,開始在 Google Cloud 中建構產品與服務。

Google Cloud