現代資料湖 - AWS 規定指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

現代資料湖

現代資料湖中的進階使用案例

在成本、可擴充性和彈性方面,資料湖是儲存資料的最佳選擇之一。您可以使用資料湖以低成本保留大量結構化和非結構化資料,並將此資料用於不同類型的分析工作負載,從商業智慧報告到大數據處理、即時分析、機器學習和生成人工智慧 (AI),以協助指導更好的決策。

儘管有這些好處,資料湖最初並不是使用類似資料庫的功能來設計。資料湖不提供原子性、一致性、隔離性和耐久性 (ACID) 處理語意的支援,您可能需要使用多種不同的技術,有效地最佳化和管理數百或數千名使用者的資料。資料湖不提供下列功能的原生支援:

  • 隨著業務的數據變化,執行有效的記錄級更新和刪除

  • 隨著資料表成長到數百萬個檔案和數十萬個分割區,管理查詢效能

  • 確保多個並行編寫器和讀者的資料一致性

  • 在寫入作業失敗時防止資料損毀

  • 隨著時間的推移而不會(部分)重寫數據集的情況下演變

在處理變更資料擷取 (CDC) 或與隱私權、刪除資料和串流資料擷取有關的使用案例中,這些挑戰已變得特別普遍,這可能會導致資料表次最佳化。

使用傳統 Hive 格式表格的資料湖僅支援整個檔案的寫入作業。這使得更新和刪除難以實施,耗時且成本高昂。此外,需要在符合 ACID 標準的系統中提供並行控制和保證,以確保數據的完整性和一致性。

為了協助克服這些挑戰,Apache Iceberg 提供了其他類似資料庫的功能,可簡化資料湖的最佳化和管理開銷,同時仍支援 Amazon 簡易儲存服務 (Amazon S3) 等具成本效益的系統上的儲存

阿帕奇冰山簡介

Apache Iceberg 是一種開放原始碼資料表格式,提供資料湖資料表中的功能,歷史上只能在資料庫或資料倉儲中使用。它專為擴充性和效能而設計,非常適合用於管理超過數百 GB 的資料表。冰山表的一些主要特點是:

  • 刪除、更新和合併。Iceberg 支援用於資料倉儲的標準 SQL 命令,可與資料湖表一起使用。

  • 快速掃描規劃和進階篩選。Iceberg 儲存引擎可使用的中繼資料,例如分割區和資料行層級統計資料,以加快規劃和執行查詢的速度。

  • 完整的架構演進。Iceberg 支持添加,刪除,更新或重命名列,而不會產生副作用。

  • 分區演化。您可以在資料磁碟區或查詢模式變更時更新資料表的分割區配置。Iceberg 支援變更資料表分割的資料行,或在複合資料分割中新增資料欄,或從複合資料分割中移除資料行。

  • 隱藏的分區。此功能可防止自動讀取不必要的分區。如此一來,使用者就不需要瞭解資料表的分割詳細資料,或在查詢中新增額外的篩選器。

  • 版本回滾。用戶可以通過恢復到事務前狀態快速糾正問題。

  • 時間旅行。使用者可以查詢表格的特定先前版本。

  • 可序列化隔離。表更改是原子的,因此讀者永遠不會看到部分或未提交的更改。

  • 並發編寫器。Iceberg 使用樂觀的並發性來允許多個交易取得成功。在發生衝突的情況下,其中一個作者必須重試該事務。

  • 打開文件格式。冰山支持多種開源文件格式,包括阿帕奇鑲木地板阿帕奇阿夫羅和阿帕奇 ORC。

總而言之,使用 Iceberg 格式的資料湖受益於交易一致性、速度、規模和結構描述演進。如需有關這些和其他冰山功能的詳細資訊,請參閱 Apache 冰山文件。

AWS 阿帕奇冰山的支持

Apache 冰山受到流行的開源數據處理框架的支持 AWS 服務 ,並由 Amazon EMRAmazon AthenaAmazon Redshift 和. AWS Glue 下圖說明以 Iceberg 為基礎的資料湖的簡化參考架構。

交易式資料湖架構

以下 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 中的冰山支持的快速瀏覽。