跳至主要內容

什麼是 Apache Iceberg?

什麼是 Apache Iceberg?

Apache Iceberg 是一種分散式、社群驅動的 Apache 2.0 授權、100% 開放原始碼資料表格格式,有助於簡化儲存在資料湖中的大型資料集上的資料集的資料處理。資料工程師使用 Apache Iceberg,因為它在任何規模上都快速、高效且可靠,並記錄資料集隨時間變化的情況。阿帕奇冰山可以輕鬆地與流行的數據處理框架,例如阿帕奇斯帕克,阿帕奇弗林克,阿帕奇 Hive,普雷斯托等等。

什麼是交易式資料湖?

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

  • Atomicity 保證每筆交易都是一個成功或完全失敗的單一事件;沒有半程狀態。

  • 一致性確保所有寫入的資料資料都是根據資料湖的定義規則有效,確保資料準確且可靠。

  • 隔離可確保可以同時發生多個交易,而不會互相干擾,確保每個交易都獨立執行。

  • 可持續性意味著一旦提交交易後,數據不會丟失或損壞。在系統故障(例如停電)時,可以恢復數據。

使用 Apache Iceberg 有哪些優勢?

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

  • 熟悉 SQL:結構化查詢語言 (SQL) 是一種常用於所有類型的應用程式的查詢語言。因為它能夠與不同的程式設計語言很好地整合,資料分析師和開發人員都在學習並使用 SQL,而且它在其語句中使用常見的英文關鍵字,因此也很容易學習。Apache Iceberg 允許任何熟悉結構化查詢語言 (SQL) 的人建立資料湖並執行大多數資料湖作業,而無需學習新語言。

  • 資料一致性:Apache Iceberg 提供資料一致性,以確保讀取和寫入資料的任何使用者都能看到相同的資料。

  • 資料結構:Apache Iceberg 可讓您輕鬆變更資料結構 (也稱為結構描述演進),這意味著使用者能夠在不中斷基礎資料的情況下,從資料表中新增、重新命名或移除資料欄。

  • 資料版本控制:Apache Iceberg 提供資料版本控制的支援,讓使用者可以加時追蹤資料的變更。這可啟用時間旅行功能,允許使用者存取和查詢資料的歷史版本,並分析更新和刪除之間對資料的變更。

  • 跨平台支援:Apache 冰山支援各種不同的儲存系統和查詢引擎,包括 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 提供了一種快速、有效的方法來大規模處理大型數據集。它帶來以下好處:

  1. 開源:Apache Iceberg 是一個開源項目,這意味著它可以免費使用,並可以自定義以滿足您的特定需求。它還擁有一個積極的開發人員社區,他們不斷改進並為項目添加新功能。

  2. 可擴展性:Apache Iceberg 旨在有效地處理大型資料集。它可以在多個節點上分割和組織數據,從而有助於分配工作負載並加快數據處理速度。

  3. 效能:Apache Iceberg 具有多種功能來最佳化查詢效能,包括欄式儲存和壓縮技術,例如言語推向下和結構描述進化。

  4. 靈活性:Apache Iceberg 可讓您變更資料的組織方式,讓資料隨著時間的推移而不需要重寫查詢或重建資料結構。它還支持多種數據格式和數據源,從而使其易於與現有系統集成。

  5. 可靠性:Apache Iceberg 通過對交易的支持確保數據一致性和可靠性。您可以追蹤資料隨著時間的推移的變化,並恢復到歷史版本,以協助您更正問題。

支援 Iceberg 的 AWS 服務有哪些?

阿帕奇冰山支持流行的數據處理框架,例如阿帕奇斯帕克,阿帕奇弗林克,阿帕奇蜂窩和普雷斯托。AWS 服務,例如亞馬遜 Redshift、亞馬遜雅典娜、亞馬遜 EMR AWS Glu e 和亞馬遜資料防火管等,包括對於的原生交易數據湖框架,包括 Apache 冰山。Apache Iceberg 與支援的 AWS 服務結合,可實現交易式資料湖,通常以 S3 儲存為基礎。

  • Amazon Redshift 是一項全受管、AI 支援的 SQL 分析和資料倉儲服務,可以快速且具有成本效益的推動客戶的業務決策。Amazon Redshift 提供大規模平行處理 (MPP)、多叢集和無伺服器架構,同時提供零 ETL 功能,可藉助資料共用來推動近即時的分析和 AI/ML 使用案例。客戶可以使用 Amazon Redshift 查詢資料湖中的 Apache Iceberg 表格,透過 AWS Glue 資料目錄存取,並將其與資料倉儲中的資料表加入,以進行全面的分析。

  • 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 資料表格式。包括斯帕克,特里諾,弗林克和 Hive 等 EMR 框架支持阿帕奇冰山。

  • AWS Glue 是一種無伺服器資料整合服務,可讓您更輕鬆地探索、準備、移動和整合來自多個來源的資料,以進行分析、機器學習 (ML) 和應用程式開發。  AWS Glue 3.0 及更新版本支援適用於資料湖的 Apache Iceberg 架構。您可以使用 AWS Glue,在 Amazon S3 中的 Iceberg 資料表上執行讀取和寫入操作,或使用 AWS Glue Data Catalog 處理 Iceberg 資料表。還支持其他操作,包括插入,更新和所有 Spark 查詢,Spark 寫入。

  • Amazon Data Firehose 是一項完全受管的無伺服器服務,可將即時串流資料傳遞至目的地,如亞馬遜簡易儲存服務(亞馬遜 S3)、亞馬遜開放搜尋服務、亞馬遜開放搜尋無伺服器、Splunk、雪花、Apache 冰山表,以及受支援的第三方服務供應商所擁有的任何自定義 HTTP 端點或 HTTP 端點,包括資料記錄、Dynatrace、LogicMonitor、MongoDB、新 Corc 等阿洛吉克斯和彈性。使用 Amazon Data Firehose,就不需要撰寫應用程式或管理資源。您可以設定資料生產者將資料傳送到 Amazon Data Firehose,它會自動將資料交付到您指定的目的地。您也可以設定 Amazon 資料消防管,以在交付資料之前轉換。