去年底的2024 AWS re:Invent大會,新任CEO Matt Garman發布了一眾與AI相關的新服務。在這些新服務中,新的Amazon S3 Tables服務看似不起眼,卻對于未來數據存儲有著深遠影響。
在當時的發布現場,筆者與多位技術專家進行交流,均認為Amazon S3 Tables的發布是以Apache Iceberg為代表的開放表格發展歷程的重要時刻,不僅僅標志著AI時代下基于對象存的開放表格在湖倉一體的霸主地位,更意味著對象存儲作為主存儲的時代正加速到來。
那么,開放表格目前市場情況如何?三大開放表格彼此之間的競爭情況如何?為什么開放表格格式是對象存儲的理想選擇?開放表格的流行為什么會像當初Hadoop的崛起一樣,在未來的AI世界中占據數據分析的霸主地位?
近日,數據庫和數據湖技術專家Brenna Buuck對此進行了深度分析。對此,大數據在線進行編譯與解讀。
開放表格:湖倉一體的關鍵組件
現代化的湖倉一體架構建立在三個關鍵組件之上:存儲層、開放表格式式和計算引擎。
這其中,開放表格格式(Open Table Formats)和對象存儲(Object Storage)正在重新定義構建數據系統的方式,成為可擴展、高效且面向未來的現代化湖倉一體架構的基石。
現代化湖倉一體架構采用模塊化設計,且充分利用對象存儲的可擴展性、靈活性和成本效益等優勢,以及開放表格的高級元數據管理功能和跨不同計算引擎的互操作性,幫助企業與組織滿足現代工作負載的需求。
在存儲層,現代化湖倉一體架構通常采用對象存儲作,以方便存儲結構化、半結構化和非結構化數據。而開放表格則充當元數據抽象層,提供類似數據庫的功能,包括 Schema、分區和版本控制,以及 ACID 事務、Schema 演變和時間旅行等高級功能。最后,Spark、Presto、Trino 和 Dremio 等計算引擎與開放表格式交互,以大規模處理和分析數據,使用戶能夠靈活地選擇最適合其工作負載的工具。
現代化湖倉一體架構的核心設計思路是算和存儲的分解,充分利用對象存儲、開放表格和各種計算引擎進行交互,既滿足大規模處理和分析數據的需求,又具備足夠的靈活性和擴展性,不會受制于供應商。
在AI應用蓬勃發展和高級分析需求日漸增多的大趨勢下,打造現代的湖倉一體架構依然成為企業與組織在數字化轉型中的必選項。
數據架構的演變
企業的數據架構最早要追溯到在線事務處理 (OTLP) 數據庫等早期系統。由于OLTP數據并不具備分析功能,所以在線分析處理 (OLAP) 系統隨后開始出現,針對查詢結構化數據進行優化,但無法有效處理半結構化和非結構化數據。
隨著互聯網、移動互聯網的快速發展,半結構化、非結構化數據成為數據增長的主力軍,如何在數據分析中納入半結構化、非結構化數據就成為很多企業與組織的必須,這推動了數據湖的出現,數據湖為各種數據類型提供可擴展的存儲和 Schema-on-Read 功能,但數據湖也缺乏事務保證。
最終,數據湖與數據倉庫開始走向融合,推動了湖倉一體的數據架構發展,將數據湖和數據倉庫的優勢集中到統一架構之中。Lakehouse 基于開放表格式和對象存儲構建,并且完全解耦,這意味著它們由模塊化組件構成。這種分解式架構既提供了數據庫的事務一致性,又提供了對象存儲的可擴展性。
如果想詳細了解數據倉庫、數據湖、湖倉一體的區別與特點,可以參考大數據在線之前發布的技術稿件《》,技術專家張友東詳細解讀了數據倉庫、數據湖和湖倉一體的演進過程。
為什么開放表格是對象存儲的理想選擇
湖倉一體的數據架構架構經過專門設計,旨在利用對象存儲系統的可擴展性和成本效益,例如 Amazon Web Services (AWS) S3、Google Cloud Storage 和 Azure Blob Storage。這種集成支持在一個統一的平臺中無縫管理各種數據類型(結構化、半結構化和非結構化)。
對象存儲上的數據湖倉一體架構的主要功能包括:
01
統一存儲層:通過利用對象存儲,數據湖倉一體可以以其原生格式存儲大量數據,無需在存儲前進行復雜的數據轉換。這種方法簡化了數據攝取,并實現了與各種數據源的兼容性。
02
可擴展性:對象存儲系統本質上具有可擴展性,使數據湖倉一體能夠容納不斷增長的數據量,而無需對基礎設施進行重大更改。這種可擴展性使組織能夠有效地管理不斷擴大的數據集和不斷變化的分析要求。
03
靈活性:一流的對象存儲可以部署在任何地方 - 本地、私有云、公共云、主機托管設施、數據中心和邊緣。這種靈活性使組織能夠根據特定的運營和地理需求定制其數據基礎設施。
通過集成這些元素,數據湖倉一體架構提供了一個全面的解決方案,結合了數據湖和數據倉庫的優勢。這種設計有助于高效的數據存儲、管理和分析,所有這些都建立在可擴展且靈活的對象存儲系統的基礎上。
開放表格格式的定義
開放表格格式(Open Table Formats)是一種標準化的開源框架,旨在高效管理大規模分析數據集。它作為數據文件之上的元數據層運行,促進跨各種處理引擎的無縫數據管理和訪問。在目前的市場中,主要有以下三種開放表格式(Iceberg、Delta Lake 和 Hudi):
Apache Iceberg
Apache Iceberg 是一種高性能表格格式,專為海量數據集而設計。其架構優先考慮高效的讀取操作和可擴展性,使其成為現代分析工作負載的基石。其定義功能之一是將元數據與數據分離,從而允許基于快照的高效隔離和規劃。這種設計消除了成本高昂的元數據操作,支持跨大型數據集的并行查詢規劃。
Iceberg 生態系統的最新進展凸顯了它在整個行業的日益普及。S3 表使查詢引擎能夠直接訪問存儲在 S3 兼容系統中的表元數據和數據文件,從而減少延遲并提高互操作性,從而簡化數據管理。與此同時,Databricks 對 Tabular 的收購凸顯了 Iceberg 在開放式湖倉一體平臺中的首要作用,并強調了其對性能和治理的關注。
此外,Snowflake 將 Polaris 開源的決定表明了該行業對開放性和互操作性的承諾,進一步鞏固了 Iceberg 作為領先表格格式的地位。
目前Apache Iceberg的主要支持者包括Snowflake、Databricks、Cloudera、Google Cloud、AWS、阿里云、微軟等。
Delta Lake
Delta Lake 最初由 Databricks 開發,與 Apache Spark 密切相關。它與 Spark API 完全兼容,并與 Spark 的結構化流式處理集成,允許批處理和流式處理操作。
Delta Lake 的一個關鍵功能是它使用事務日志來記錄對數據所做的所有更改,從而確保一致的視圖和寫入隔離。此設計支持并發數據操作,使其適用于高吞吐量環境。
目前Delta Lake主要支持者包括Databricks、微軟、SAP等。
Apache Hudi
Apache Hudi 旨在應對實時數據攝取和分析的挑戰,尤其是在需要頻繁更新的環境中。其架構支持用于高效數據攝取的寫入優化存儲 (WOS) 和用于查詢的讀取優化存儲 (ROS),從而實現數據集的最新視圖。
通過逐步處理數據流中的更改,Hudi 促進了大規模實時分析。篩選條件和全局索引等功能可優化 I/O 操作,從而提高查詢和寫入性能。此外,Hudi 還包括用于集群、壓縮和清理的工具,這些工具有助于維護表的組織和性能。它處理記錄級更新和刪除的能力使其成為高速數據流和需要合規性和嚴格數據管理的場景的實用選擇。
目前Apache Hudi主要支持者包括:騰訊云、阿里云、華為云等。
三大開放表格的不同
Apache Iceberg、Delta Lake 和 Apache Hudi 都為數據湖倉一體架構帶來了獨特的優勢。以下是基于主要特征的這些格式的比較概述:
ACID 事務:所有三種格式都符合 ACID 要求,確保可靠的數據操作。Iceberg 采用快照隔離來實現事務完整性,Delta Lake 利用事務日志實現一致的視圖和寫入隔離,Hudi 為高并發場景提供文件級并發控制。
架構演變:每種格式都支持架構更改,允許添加、刪除或修改列。Iceberg 提供靈活的架構演變,而無需重寫現有數據,Delta Lake 在運行時強制執行架構以保持數據質量,而 Hudi 提供預提交轉換以提高靈活性。
分區演變:Iceberg 支持分區演變,無需重寫現有數據即可無縫更新分區方案。Delta Lake 允許分區更改,但可能需要手動干預才能獲得最佳性能,而 Hudi 提供精細集群作為傳統分區的替代方案。
時間旅行:這三種格式都提供時間旅行功能,允許用戶查詢歷史數據狀態。此功能對于審計和調試目的非常有用。
廣泛采用:Iceberg 是數據社區最廣泛采用的開放表格式。從 Databricks 到 Snowflake 再到 AWS,許多大型平臺都投資了 Iceberg。如果您已經是這些生態系統的一部分或正在考慮加入它們,那么 Iceberg 可能會自然而然地脫穎而出。
索引:Hudi 提供多模式索引功能,包括 Bloom 過濾器和記錄級索引,可以提高查詢性能。Delta Lake 和 Iceberg 依賴于元數據優化,但不提供相同級別的索引靈活性。
并發和流式處理:Hudi 專為實時分析而設計,具有高級并發控制和內置工具(如 DeltaStreamer)用于增量攝取。Delta Lake 支持通過更改數據源進行流式處理,而 Iceberg 提供基本的增量讀取功能。
這些區別突出表明,雖然這三種格式都為現代數據架構提供了強大的基礎,但最佳選擇取決于特定的工作負載要求和組織需求。
性能預期
在數據湖倉一體架構中實現最佳性能對于充分利用開放表格式的功能至關重要。這種性能取決于存儲層和計算層的效率。
存儲層必須提供低延遲和高吞吐量,以滿足大規模分析需求。對象存儲解決方案應有助于快速訪問數據并支持高速傳輸,即使在高工作負載下也能確保平穩運行。此外,高效的IOPS對于處理大量并發數據請求至關重要,可實現無瓶頸的響應式數據交互。
計算層性能同樣重要,它直接影響數據處理和查詢執行速度。計算引擎必須可擴展,才能在不影響性能的情況下管理不斷增長的數據量和用戶查詢。采用優化的查詢執行計劃和資源管理策略可以進一步提高處理效率。此外,計算引擎需要與開放表格式無縫集成,以充分利用 ACID 事務、架構演變和時間旅行等高級功能。
開放式表格式還包含旨在提高性能的功能。這些也需要正確配置并用于完全優化的堆棧。其中一項功能是高效的元數據處理,其中元數據與數據分開管理,從而可以更快地進行查詢規劃和執行。數據分區將數據組織成子集,通過減少操作期間掃描的數據量來提高查詢性能。對架構演變的支持使表格式能夠適應數據結構的變化,而無需進行大量的數據重寫,從而確保靈活性,同時最大限度地減少處理開銷。
通過關注存儲和計算層的這些性能方面,組織可以確保其數據湖倉一體環境高效、可擴展,并且能夠滿足現代分析和 AI 工作負載的需求。這些考慮因素使開放式表格格式能夠充分發揮其潛力,提供實時洞察和決策所需的高性能。
開放數據湖倉一體和互操作性
數據湖倉一體架構基于開放表格式構建,可提供統一的數據管理方法。但是,實現真正的開放性需要的不僅僅是采用開放的表格格式。開放數據湖倉一體必須集成模塊化、可互操作的開源組件,例如存儲引擎、目錄和計算引擎,以實現跨不同平臺的無縫運行。
開放表格式是開放標準,并且根據其設計,支持整個堆棧的互操作性和開放性。然而,實際挑戰仍然存在,例如確保目錄互操作性和避免依賴專有服務進行表管理。最近推出的 Apache XTable 等工具展示了通用兼容性的進展,為一次編寫、隨處查詢的系統提供了一條途徑。需要注意的是,XTable 不允許你以多種開放的表格格式寫入,只允許讀取。希望未來互操作性的創新將繼續建立在這些項目和其他圍繞開放表格格式的項目之上。
開放表格的未來
隨著數據湖倉一體的不斷發展,一些新的趨勢開始顯現。
一個重要的發展趨勢就是將 AI 和機器學習 (ML) 工作負載直接集成到湖倉一體架構中。對于存儲層,這可能看起來像是與 Hugging Face 和 OpenAI 等關鍵 AI 平臺直接集成的平臺。對于計算層,AI 集成可能會導致創建針對 ML 算法優化的專用計算引擎,從而提高湖倉一體生態系統中訓練和推理過程的效率。
另一個重要的發展領域回是開源社區。當 Databricks、Snowflake 和 AWS 等大型公司開始大展拳腳時,人們很容易忘記開放表格格式是真正的開放標準。Iceberg、Hudi 和 Delta Lake 可供任何貢獻者、協作或集成到開源工具和平臺中。換句話說,它們是充滿活力且不斷發展的開放標準數據生態系統的一部分,開源應用程序、附加組件、目錄和創新等會持續激增。
最后,隨著企業與組織為 AI 和其他高級分析應用構建大規模、高性能的數據湖倉一體,開放表格式的采用率將繼續上升。一些行業專業人士已經將開放表的流行等同于十多年前Hadoop 的崛起,開放表格未來有望實現大數據的霸主地位。隨著Hadoop逐漸走向沒落,開放表格的崛起,正所謂是大數據已死、亦將永存。
大數據在線是聚焦人工智能、大數據、云計算等前沿科技領域深度觀察的深度媒體。目前,大數據在線在微信公眾號、今日頭條號、新浪財經、36氪、雪球號、觀察號等主流自媒體平臺均有入駐,積累粉絲超過20W;并榮獲今日頭條十大科技新銳媒體、商業新知十大人工智能媒體等多項殊榮。商務聯系請添加微信:Owen_Inter,添加請備注具體信息。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.