本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
現代資料湖
現代資料湖中的進階使用案例
在成本、可擴充性和彈性方面,資料湖是儲存資料的最佳選擇之一。您可以使用資料湖以低成本保留大量結構化和非結構化資料,並將此資料用於不同類型的分析工作負載,從商業智慧報告到大數據處理、即時分析、機器學習和生成人工智慧 (AI),以協助指導更好的決策。
儘管有這些好處,資料湖最初並不是使用類似資料庫的功能來設計。資料湖不提供原子性、一致性、隔離性和耐久性 (ACID) 處理語意的支援,您可能需要使用多種不同的技術,有效地最佳化和管理數百或數千名使用者的資料。資料湖不提供下列功能的原生支援:
-
隨著業務的數據變化,執行有效的記錄級更新和刪除
-
隨著資料表成長到數百萬個檔案和數十萬個分割區,管理查詢效能
-
確保多個並行編寫器和讀者的資料一致性
-
在寫入作業失敗時防止資料損毀
-
隨著時間的推移而不會(部分)重寫數據集的情況下演變
在處理變更資料擷取 (CDC) 或與隱私權、刪除資料和串流資料擷取有關的使用案例中,這些挑戰已變得特別普遍,這可能會導致資料表次最佳化。
使用傳統 Hive 格式表格的資料湖僅支援整個檔案的寫入作業。這使得更新和刪除難以實施,耗時且成本高昂。此外,需要在符合 ACID 標準的系統中提供並行控制和保證,以確保數據的完整性和一致性。
為了協助克服這些挑戰,Apache Iceberg 提供了其他類似資料庫的功能,可簡化資料湖的最佳化和管理開銷,同時仍支援 Amazon 簡易儲存服務 (Amazon S3) 等具成本效益的系統上的儲存
阿帕奇冰山簡介
Apache Iceberg 是一種開放原始碼資料表格式,提供資料湖資料表中的功能,歷史上只能在資料庫或資料倉儲中使用。它專為擴充性和效能而設計,非常適合用於管理超過數百 GB 的資料表。冰山表的一些主要特點是:
-
刪除、更新和合併。Iceberg 支援用於資料倉儲的標準 SQL 命令,可與資料湖表一起使用。
-
快速掃描規劃和進階篩選。Iceberg 儲存引擎可使用的中繼資料,例如分割區和資料行層級統計資料,以加快規劃和執行查詢的速度。
-
完整的架構演進。Iceberg 支持添加,刪除,更新或重命名列,而不會產生副作用。
-
分區演化。您可以在資料磁碟區或查詢模式變更時更新資料表的分割區配置。Iceberg 支援變更資料表分割的資料行,或在複合資料分割中新增資料欄,或從複合資料分割中移除資料行。
-
隱藏的分區。此功能可防止自動讀取不必要的分區。如此一來,使用者就不需要瞭解資料表的分割詳細資料,或在查詢中新增額外的篩選器。
-
版本回滾。用戶可以通過恢復到事務前狀態快速糾正問題。
-
時間旅行。使用者可以查詢表格的特定先前版本。
-
可序列化隔離。表更改是原子的,因此讀者永遠不會看到部分或未提交的更改。
-
並發編寫器。Iceberg 使用樂觀的並發性來允許多個交易取得成功。在發生衝突的情況下,其中一個作者必須重試該事務。
總而言之,使用 Iceberg 格式的資料湖受益於交易一致性、速度、規模和結構描述演進。如需有關這些和其他冰山功能的詳細資訊,請參閱 Apache 冰山
AWS 阿帕奇冰山的支持
Apache 冰山受到流行的開源數據處理框架的支持 AWS 服務 ,並由 Amazon EMR
以下 AWS 服務 提供了本地冰山集成。還有其他 AWS 服務 可以間接或通過打包冰山庫與冰山進行交互。
-
Amazon S3 因其耐用性、可用性、可擴展性、安全性、合規性和稽核功能而成為建立資料湖的最佳場所。Iceberg 的設計和建置是為了與 Amazon S3 無縫互動,並為冰山
文件中列出的許多 Amazon S3 功能提供支援。 -
Amazon EMR 是針對 PB 規模資料處理、互動式分析和機器學習的巨量資料解決方案,使用開放原始碼架構 (例如 Apache Spark、Flink、Trito 和 Hive)。Amazon EMR 可以在自訂的 Amazon 彈性運算雲端 (Amazon EC2) 叢集、Amazon Elastic Kubernetes Service (Amazon EKS) 或亞馬遜 EMR 無伺服器上執行。 AWS Outposts
-
Amazon Athena 是以開放原始碼架構為基礎建置的無伺服器互動式分析服務。它支援開放式表格和檔案格式,並提供簡化、靈活的方式來分析數 PB 的資料所在位置。Athena 針對冰山的讀取、時間旅行、寫入和 DDL 查詢提供原生支援,並將其用 AWS Glue Data Catalog 於冰山中繼存放區。
-
Amazon Redshift 是 PB 規模的雲端資料倉儲,同時支援叢集型和無伺服器部署選項。Amazon Redshift Spectrum 可以查詢在 Amazon S3 上註冊 AWS Glue Data Catalog 並存放的外部表。Redshift 頻譜還提供了對冰山存儲格式的支持。
-
AWS Glue是一種無伺服器資料整合服務,可讓您更輕鬆地探索、準備、移動和整合來自多個來源的資料,以進行分析、機器學習 (ML) 和應用程式開發。 AWS Glue 3.0 及更高版本支持數據湖的冰山框架。您可 AWS Glue 以使用在 Amazon S3 中的冰山表上執行讀取和寫入操作,或使用. AWS Glue Data Catalog還支持其他操作,例如插入,更新,Spark 查詢和 Spark 寫入。
-
AWS Glue Data Catalog提供支援 Iceberg 資料表的 Hive 中繼資料庫相容資料目錄服務。
-
AWS Glue 編目程式提供自動化功能,以在. AWS Glue Data Catalog
-
Amazon SageMaker 支持使用 Iceberg 格式在 Amazon SageMaker 功能商店中存儲功能集。
-
AWS Lake Formation為存取資料提供粗略且精細的存取控制許可,包括 Athena 或 Amazon Redshift 使用的冰山表。要了解有關冰山表的權限支持的更多信息,請參閱 Lake Formation 文檔。
AWS 提供支持 Iceberg 的廣泛服務,但涵蓋所有這些服務都超出了本指南的範圍。以下各節涵蓋了 Amazon EMR 上的星火(批量和 AWS Glue結構化流)以及 Amazon Athena SQL。以下部分提供了在 Athena SQL 中的冰山支持的快速瀏覽。