什麼是 Apache Iceberg?

Apache Iceberg 是一種分散式、社群驅動的 Apache 2.0 授權、100% 開放原始碼資料表格式,有助於簡化儲存在資料湖中的大型資料集的資料處理。資料工程師使用 Apache Iceberg,因為它在任何規模上都快速、高效且可靠,並記錄資料集隨時間變化的情況。Apache Iceberg 可輕鬆地與熱門資料處理架構 (如 Apache Spark、Apache Flink、Apache Hive、Presto 等) 整合。

什麼是交易式資料湖?

資料湖是一個集中式儲存庫,可讓您以任何規模存放您的所有結構化和非結構化資料。資料交易是在單一操作中進行的一系列資料交換。例如,當客戶從銀行帳戶取款時,銀行在一次資料交易中同時進行多次資料交換,包括驗證帳戶有足夠的餘額,驗證身分,以及從帳戶中扣除取款。交易式資料湖是一種不僅能大規模存放資料,還支援交易作業,同時確保資料準確、一致,並可讓您追蹤資料和資料結構隨時間變化情況的資料湖。這些屬性統稱為不可部分完成性、一致性、隔離性和耐久性 (ACID):

  • 不可部分完成性保證每項交易都是完全成功或失敗的單一事件;沒有中途狀態。 
  • 一致性確保根據資料湖的定義規則寫入的所有資料都是有效的,從而確保資料準確可靠。 
  • 隔離性確保多項交易可同時發生,而不會互相干擾,確保每項交易獨立執行。
  • 耐久性意味著一旦提交交易,資料不會遺失或損毀。發生系統故障 (例如停電) 時,可以復原資料。

使用 Apache Iceberg 有哪些優勢?

針對交易式資料湖使用 Apache Iceberg 的一些主要優勢包括:

  • 熟悉 SQL︰結構式查詢語言 (SQL) 是一種常用的查詢語言,常用於所有類型的應用程式。因為它能夠與不同的程式設計語言很好地整合,資料分析師和開發人員都在學習並使用 SQL,而且它在其語句中使用常見的英文關鍵字,因此也很容易學習。Apache Iceberg 可讓任何熟悉結構化查詢語言 (SQL) 的人員建立資料湖,以及執行大部分資料湖操作,而無需學習新語言。
  • 資料一致性:Apache Iceberg 提供資料一致性,以確保任何讀取和寫入資料的使用者都能看到相同的資料。 
  • 資料結構:Apache Iceberg 可讓您輕鬆變更資料結構 (也稱為結構描述演進),這意味著使用者能夠在不中斷基礎資料的情況下,從資料表中新增、重新命名或移除資料欄。
  • 資料版本控制:Apache Iceberg 提供資料版本控制支援,可讓使用者追蹤資料超時的變更。這會啟用時間行程功能,讓使用者能夠存取和查詢資料的歷史版本,並分析更新項和刪除項之間的資料變更。
  • 跨平台支援:Apache Iceberg 支援各種不同的儲存系統和查詢引擎,包括 Apache Spark、Apache Hive 和 Presto。這樣一來,在各種不同的資料處理環境中都可輕鬆使用 Iceberg。
  • 增量處理:Iceberg 支援增量處理,這允許使用者僅處理自上次執行以來已變更的資料,也稱為 CDC (變更資料擷取)。這有助於改善資料處理效率和效能。

Apache Iceberg 的常見使用案例有哪些?

Apache iceberg 適用於許多資料湖使用案例,包括:

  • 資料湖中需要經常刪除的資料表,例如在強制執行資料隱私權法律時。
  • 資料湖中需要更新記錄層級的資料表。若當您的資料集在資料結算之後需要頻繁更新,例如銷售資料可能因日後的事件 (例如客戶退貨) 而變更時,此功能非常有用。Iceberg 提供更新個別記錄的功能,而無需重新發佈整個資料集。
  • 資料湖中發生無法預期變更的資料表,例如緩慢變更維度 (SCD) 資料表。SCD 的一個範例是一個客戶記錄表,其中包括姓名、位置和聯絡資訊,這些資訊可能會在一段時間以未知的時間間隔變更。
  • 當與資料湖進行的交易需要保證資料有效性、耐久性和可靠性時,可以部署 Apache Iceberg 資料表格式以確保 ACID 交易。
  • 當需要及時回溯查詢歷史版本的資料以執行趨勢分析、分析一段時間內的資料變更,或還原或回復至先前的版本以修正問題時。

誰在使用 Apache iceberg?

資料工程師、資料管理員、資料分析師和資料科學家都在使用 Apache Iceberg。  資料工程師和管理員可以使用 Apache Iceberg 來設計和建置可擴展的資料儲存系統。  資料分析師和資料科學家可以使用 Apache Iceberg 有效地分析大型資料集。 

為什麼要選擇 Apache Iceberg?

Apache Iceberg 提供一種快速、有效的方式來大規模處理大型資料集。其可帶來以下優勢:

  1. 開放原始碼:Apache Iceberg 是一個開放原始碼專案,這意味著它可以免費使用,並且可自訂以滿足您的特定需求。此外還有一個活躍的開發人員社群,他們不斷改善專案並為專案帶來新的功能。 
  2. 可擴展性:Apache Iceberg 旨在有效地處理大型資料集。它能夠跨多個節點對資料進行分區和整理,這有助於分散工作負載並加速資料處理。 
  3. 效能:Apache Iceberg 具有多種可最佳化查詢效能的功能,包括單欄式儲存和壓縮技術,例如述詞下推和結構描述演進。 
  4. 靈活性:Apache Iceberg 可讓您變更資料的整理方式,以便隨時間演進,而無需重寫查詢或重建資料結構。此外,它還支援多種資料格式和資料來源,這使得它很容易與現有系統整合。 
  5. 可靠性:Apache Iceberg 透過其對交易的支援,確保資料一致性與可靠性。您可以追蹤資料在一段時間的變更方式,並回復至歷史版本,以協助您修正問題。

支援 Iceberg 的 AWS 服務有哪些?

Apache Iceberg 支援熱門的資料處理架構,例如 Apache Spark、Apache Flink、Apache Hive 和 Presto。Amazon AthenaAmazon EMR 和 AWS Glue 等 AWS 服務包括對交易式資料湖架構 (例如 Apache Iceberg) 的原生支援。Apache Iceberg 與支援的 AWS 服務相結合,可支援交易式資料湖,通常以 S3 中的儲存為基礎。

  • Amazon Athena 是以開放原始碼架構為基礎建置的無伺服器互動式分析服務,支援開放表格和檔案格式。Athena 提供簡化、靈活的方式來分析其所在位置的數 PB 資料。Athena 針對 Apache Iceberg 資料表提供讀取、時間行程、寫入和 DDL 查詢的原生支援,可使用 Apache Parquet 資料格式,以及適用於其中繼存放區的 AWS Glue 型錄。 
  • Amazon EMR 是一項大數據解決方案,使用開放原始碼架構 (如 Apache Spark、Hadoop、Presto 和 Hive) 來進行 PB 級資料處理、互動式分析和機器學習。從 Amazon EMR 6.5.0 開始,您可以使用 Apache Spark 3 on Amazon EMR 叢集與 Iceberg 資料表格式。EMR 架構包括 Spark、Trino、Flink 和 Hive support Apache Iceberg。
  • AWS Glue 是一種無伺服器、可擴展的資料整合服務,可讓您更輕鬆地探索、準備、移動和整合來自多個來源的資料,以進行分析、機器學習 (ML) 和應用程式開發。  AWS Glue 3.0 及更新版本支援適用於資料湖的 Apache Iceberg 架構。您可以使用 AWS Glue,在 Amazon S3 中的 Iceberg 資料表上執行讀取和寫入操作,或使用 AWS Glue Data Catalog 處理 Iceberg 資料表。此外還支援其他操作,包括插入、更新,以及所有 Spark 查詢和 Spark 寫入。 

AWS 上的後續步驟

查看額外的產品相關資源
查看分析服務  
註冊免費帳戶

立即存取 AWS 免費方案。

註冊 
開始在主控台進行建置

開始在 AWS 管理主控台進行建置。

登入