偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

架構師指南之開放表格式和對象存儲篇

譯文 精選
開發(fā) 架構
本指南將從開放表格式和對象存儲在構建現(xiàn)代化數(shù)據(jù)湖倉中的作用與演變出發(fā),深入探討 Apache Iceberg、Delta Lake 和 Apache Hudi三種頂級的表格式的特征比較,進而介紹如何為你的數(shù)據(jù)湖倉選擇合適的開放表格式。

譯者 | 陳峻

審校 | 重樓

近年來,開放表格式(Open table formats)和對象存儲(object storage)正在重新定義各個組織構建其數(shù)據(jù)系統(tǒng)的方式,并為可擴展、高效、且面向未來的數(shù)據(jù)湖倉data lakehouse)奠定了基礎。通過利用對象存儲的成本效益等獨特優(yōu)勢,以及 Apache Iceberg、Delta Lake 和 Apache Hudi 等開放表格式的高級元數(shù)據(jù)管理功能,組織正在創(chuàng)建滿足現(xiàn)代數(shù)據(jù)工作負載需求的模塊化架構。

本指南將開放表格式和對象存儲在構建現(xiàn)代數(shù)據(jù)湖倉中的作用與演變出發(fā),深入探討各種頂級的表格式的特征比較,進而介紹在針對高級分析和 AI 工作負載架構進行性能優(yōu)化時的注意事項。據(jù)此,能夠設計可擴展、高效、且能夠適應數(shù)據(jù)驅動時代快速變化需求的數(shù)據(jù)系統(tǒng)。

開放表格式的適用范圍

現(xiàn)代數(shù)據(jù)湖倉架構建立在三個關鍵組件之上,即:以對象存儲為基礎的存儲層、位于中心的開放表式、以及最終傳遞可擴容的計算引擎。這種模塊化設計經(jīng)過優(yōu)化,可充分利用對象存儲的可擴展性和成本效益,實現(xiàn)無縫的元數(shù)據(jù)管理,以及橫跨不同計算引擎的互操作性。

如下圖所示,此類架構轉變的核心在于計算和存儲的分解。作為基礎,對象存儲提供了對于結構化、半結構化、以及非結構化數(shù)據(jù)的無縫管理;而開放表格式充當元數(shù)據(jù)的抽象層,支持類似數(shù)據(jù)庫的功能,包括:模式(schema)演變、時間旅行、分區(qū)和 ACID(原子性、一致性、隔離性和持久性)事務。Spark、Presto、Trino 和 Dremio 等計算引擎通過與這些表格式交互,提供了大規(guī)模處理和分析數(shù)據(jù)的靈活性,而不會受制于供應商。

數(shù)據(jù)架構的演變

如上圖所示,數(shù)據(jù)湖倉的興起可以被理解為數(shù)據(jù)架構一種更廣泛的演變。過去,在線事務處理 (OTLP) 數(shù)據(jù)庫等早期系統(tǒng)優(yōu)先考慮的是事務完整性,但缺乏分析功能。之后,在線分析處理(OLAP) 系統(tǒng)的出現(xiàn)引入了數(shù)據(jù)倉庫,優(yōu)化結構化數(shù)據(jù)查詢,但是其代價是無法有效處理半結構化非結構化數(shù)據(jù)。數(shù)據(jù)湖的出現(xiàn)解決了此類限制,為各種數(shù)據(jù)類型提供了可擴展的存儲和讀時模式 Schema-on-Read 功能。然而,數(shù)據(jù)湖缺乏事務保證,這引發(fā)了數(shù)據(jù)湖倉出現(xiàn)。能夠將數(shù)據(jù)湖和數(shù)據(jù)倉庫的優(yōu)勢集成到一個統(tǒng)一的架構中。

說到數(shù)據(jù)湖倉,它是基于開放表格式和對象存儲構建、且完全解耦的。這種分解式架構既提供了數(shù)據(jù)庫的事務一致性,又提供了對象存儲的可擴展性。

為何開放表格式是對象存儲的理想選擇

經(jīng)過專門設計數(shù)據(jù)湖倉架構,旨在充分利用 Amazon Web Services (AWS) S3、Google Cloud Storage 和 Azure Blob Storage對象存儲系統(tǒng)的可擴展性和成本效益。也就是說,這種集成支持在一個統(tǒng)一的平臺中,無縫管理各種數(shù)據(jù)類型(如:結構化、半結構化和非結構化)。總體而言,對象存儲上的數(shù)據(jù)湖倉架構的主要功能包括:

  • 統(tǒng)一存儲層:通過利用對象存儲,數(shù)據(jù)湖倉可以其原生格式存儲大量數(shù)據(jù),無需在存儲前進行復雜的數(shù)據(jù)轉換。這種方法不但簡化了數(shù)據(jù)攝取,而且實現(xiàn)了與各種數(shù)據(jù)源的兼容。
  • 可擴展性:對象存儲系統(tǒng)具有原生的可擴展性,使數(shù)據(jù)湖倉能夠容納不斷增長的數(shù)據(jù)量,而無需對基礎設施進行重大更改。這種可擴展性使組織能夠有效地管理不斷增多的數(shù)據(jù)集和不斷變化的分析要求。
  • 靈活性:一流的對象存儲可以部署在包括:本地、私有云、公共云、主機托管設施、數(shù)據(jù)中心、以及邊緣任何地方。這種靈活性使組織能夠根據(jù)特定的運營和地理需求,定制其數(shù)據(jù)基礎設施。通過集成上述功能,數(shù)據(jù)湖倉架構結合了數(shù)據(jù)湖和數(shù)據(jù)倉庫的優(yōu)勢,進而提供了一全面的解決方案。由于所有這些設計建立在可擴展且靈活的對象存儲系統(tǒng),因此也就實現(xiàn)了高效的數(shù)據(jù)存儲、管理和分析。

典型的開放表格式

開放表格式是一種標準化的開源框架,旨在高效管理大規(guī)模分析數(shù)據(jù)集。通常,它作為數(shù)據(jù)文件之上的元數(shù)據(jù)層來執(zhí)行,可以促進跨各種處理引擎的無縫數(shù)據(jù)管理和訪問。以下是三種典型的開放表格式--Iceberg、Delta Lake 和 Hudi:

Apache Iceberg

Apache Iceberg 是一種高性能的表格式,專為海量數(shù)據(jù)集而設計。作為現(xiàn)代分析工作負載的基石,架構優(yōu)先考慮高效的讀取操作和可擴展性。其定義功能之一是將元數(shù)據(jù)與普通數(shù)據(jù)分離,從而允許基于快照的高效隔離和規(guī)劃。這種設計消除了成本高昂的元數(shù)據(jù)操作,并能夠支持跨大型數(shù)據(jù)集的并行查詢規(guī)劃。

Iceberg 生態(tài)系統(tǒng)的最新發(fā)展凸顯了在整個行業(yè)的日益普及。S3 表能夠讓查詢引擎直接訪問存儲在 S3 兼容系統(tǒng)中的表元數(shù)據(jù)和數(shù)據(jù)文件,從而減少延遲,提高互操作性,簡化數(shù)據(jù)管理。與此同時,Databricks 對 Tabular 的收購凸顯了 Iceberg 在開放式湖倉平臺中的首要作用,并強化了其對性能和治理的關注。Snowflake將 Polaris 開源的決定,表明了該行業(yè)對開放性和互操作性的承諾,進一步鞏固了 Iceberg 作為領先表格式的地位。

Delta Lake

與 Apache Spark 密切相關Delta Lake 最初由 Databricks 開發(fā)。它既能夠與 Spark API 完全兼容,又可與 Spark 的結構化流式處理集成,實現(xiàn)了批處理和流式處理操作。其中,Delta Lake 的一個關鍵功能是它使用事務日志來記錄對數(shù)據(jù)所做的所有更改,從而確保一致的視圖和寫入隔離。而且,該設計支持并發(fā)數(shù)據(jù)操作,能夠適用于高吞吐量環(huán)境。

Apache Hudi

Apache Hudi 旨在應對實時數(shù)據(jù)攝取和分析的挑戰(zhàn),尤其是在那些數(shù)據(jù)需要頻繁更新的環(huán)境中。也就是說,其架構支持用于高效數(shù)據(jù)攝取的寫入優(yōu)化存儲(write-optimized storage,WOS) ,又可用于查詢的讀取優(yōu)化存儲(read-optimized storage,ROS),從而實現(xiàn)數(shù)據(jù)集的最新視圖。

通過逐步處理數(shù)據(jù)流中的更改,Hudi 實現(xiàn)了大規(guī)模實時分析。bloom篩選條件和全局索引等功能可優(yōu)化 I/O 操作,從而提高查詢和寫入性能。此外,Hudi 還包含了用于集群、壓縮和清理的工具這些工具有助于維護數(shù)據(jù)表的組織和性能。而且,其處理記錄級更新和刪除的能力,成為高速數(shù)據(jù)流和嚴格數(shù)據(jù)管理合規(guī)場景的實用選擇。

比較開放表格式

Apache Iceberg、Delta Lake 和 Apache Hudi 都為數(shù)據(jù)湖倉化的架構帶來了各自獨特的優(yōu)勢。以下是基于它們主要特征的比較:

  • ACID 事務:所有三種格式都符合 ACID 要求,能夠確??煽康臄?shù)據(jù)操作。其中,Iceberg 采用快照隔離來實現(xiàn)事務完整性;Delta Lake 利用事務日志實現(xiàn)一致的視圖和寫入隔離Hudi 為高并發(fā)場景提供文件級并發(fā)控制。
  • 架構演變:每種格式都支持架構更改,允許添加、刪除或修改數(shù)據(jù)列。Iceberg 提供靈活的架構演變,而無需重寫現(xiàn)有數(shù)據(jù);Delta Lake 在運行時強制執(zhí)行架構,以保持數(shù)據(jù)質量;而 Hudi 提供預提交轉換功能,以提高靈活性。
  • 分區(qū)演變:Iceberg 支持分區(qū)演變,無需重寫現(xiàn)有數(shù)據(jù),即可無縫更新分區(qū)方案Delta Lake 允許分區(qū)更改,但可能需要手動干預才能獲得最佳性能而 Hudi 提供精細集群,作為傳統(tǒng)分區(qū)的替代方案。
  • 時間旅行:這三種格式都提供時間旅行功能,允許用戶查詢歷史數(shù)據(jù)狀態(tài)。顯然,該功能對于審計和調(diào)試來說非常用。
  • 廣泛采用:Iceberg 是數(shù)據(jù)社區(qū)最廣泛采用的開放表格式。從 Databricks 到 Snowflake 再到 AWS,許多大型平臺都投資了 Iceberg。如果已經(jīng)是這些生態(tài)系統(tǒng)的一部分或正在考慮加入它們,那么 Iceberg 可能會自然成為你的不二之選。
  • 索引:Hudi 通過提供多模式索引功能,包括 Bloom 過濾器和記錄級索引,提高查詢性能。Delta Lake 和 Iceberg 依賴于元數(shù)據(jù)優(yōu)化,不提供相同級別的索引靈活性。
  • 并發(fā)和流式處理:Hudi 專為實時分析而設計,有高級并發(fā)控制和內(nèi)置工具(如 DeltaStreamer),用于增量數(shù)據(jù)的攝取Delta Lake 支持通過更改數(shù)據(jù)源,實現(xiàn)流式處理而 Iceberg 提供基本的增量讀取功能。雖然上述三種格式都為現(xiàn)代數(shù)據(jù)架構提供了強大的基礎,但是由于各自的特點比較明顯,因此具體該如何選擇取決于特定的工作負載要求和組織需求。

性能預期

在數(shù)據(jù)湖倉架構中實現(xiàn)最佳性能對于充分利用開放表格式的功能至關重要。而相關性能往往取決于存儲層和計算層的效率。其中,

  • 存儲層必須能夠提供低延遲和高吞吐量,以滿足大規(guī)模的數(shù)據(jù)分析需求。因此,選用的對象存儲解決方案應有助于快速訪問數(shù)據(jù),并支持高速傳輸,而且即便是在高工作負載下也能確保平穩(wěn)運行。此外,高效的每秒輸入/輸出操作數(shù) (input/output operations per second,IOPS) 對于處理大量并發(fā)數(shù)據(jù)請求也非常重要,它能夠實現(xiàn)無瓶頸的響應式數(shù)據(jù)交互。
  • 計算層性能同樣也會直接影響數(shù)據(jù)處理和查詢執(zhí)行速度。計算引擎需要通過可擴展,在不影響性能的情況下,管理不斷增長的數(shù)據(jù)量和用戶查詢。采用優(yōu)化的查詢執(zhí)行計劃和資源管理策略,可以進一步提高處理效率。此外,計算引擎需要通過與開放表格式無縫集成,充分利用 ACID 事務、架構演變和時間旅行等高級功能。
    通過正確配置完全優(yōu)化,開放表格式也能夠將元數(shù)據(jù)與普通數(shù)據(jù)分開管理,從而實現(xiàn)更快查詢規(guī)劃和執(zhí)行。同時,數(shù)據(jù)分區(qū)將數(shù)據(jù)組成多個子集,通過減少操作期間掃描的數(shù)據(jù)量來提高查詢性能。而通過對架構演變的支持,表格式能夠適應數(shù)據(jù)結構的變化,而無需進行大量的數(shù)據(jù)重寫,實現(xiàn)了在確保靈活性的同時,最大限度地減少處理開銷。
    可見,通過關注存儲和計算層的上述性能方面,組織可以確保其數(shù)據(jù)湖倉環(huán)境高效可擴展,并能夠滿足現(xiàn)代分析和 AI 工作負載的需求。當然,這些考慮因素也會使開放表格式能夠充分發(fā)揮其潛力,提供實時洞察和決策所需的高性能。

開放數(shù)據(jù)湖倉和互操作性

為了提供統(tǒng)一的數(shù)據(jù)管理方法,數(shù)據(jù)湖倉架構往往會基于開放表格式構建。不過,實現(xiàn)真正的開放性,光靠采用開放的表格式是不夠的。開放數(shù)據(jù)湖倉必須集成各種模塊化、以及存儲引擎、目錄和計算引擎可互操作的開源組件,實現(xiàn)跨不同平臺的無縫操作。

好在開放表格式是一套開放標準,可以根據(jù)其設計,支持整個技術棧的互操作性和開放性。不過,實際使用中,挑戰(zhàn)仍然存在例如,需要確保目錄互操作性以及避免依賴專有服務進行數(shù)據(jù)管理。近推出的 Apache XTable 等工具,便展示了其在通用兼容性方面的進展,一次、隨處查詢的系統(tǒng)提供了新的途徑。需要注意的是,XTable 不允許用戶以多種開放的表格式寫入,只允許讀取。

開放表格式的未來

隨著數(shù)據(jù)湖倉的不斷發(fā)展,各種趨勢和進步正在塑造其未來。其中,

  • 一個重要增長領域便是 AI 和機器學習 (ML) 工作負載直接集成到湖倉架構中。對于存儲層而言可能是與 Hugging Face 和 OpenAI 等關鍵 AI 平臺直接集成的平臺。對于計算層,AI 集成可能會導致創(chuàng)建針對 ML 算法優(yōu)化的專用計算引擎,從而提高湖倉生態(tài)系統(tǒng)中訓練和推理過程的效率。
  • 另一個顯著增長的領域可能是開源社區(qū)。當 Databricks、Snowflake 和 AWS 等大型私營公司大行其道時,人們很可能忘記開放表格式其實一個真正的開放標準。Iceberg、Hudi 和 Delta Lake 可供任何貢獻者開展協(xié)作,或集成到開源工具和平臺中。換句話說,它們是充滿活力且不斷發(fā)展的開放標準數(shù)據(jù)生態(tài)系統(tǒng)的一部分。我們可以預見到各種開源應用、插件、目錄和創(chuàng)新在該領域的持續(xù)激增。
  • 最后,隨著企業(yè)為 AI 和其他高級用例構建更多大規(guī)模、高性能的數(shù)據(jù)湖倉,開放表格式的采用率將繼續(xù)上升。一些行業(yè)專業(yè)人士甚至將開放表格式的流行同于 2000 年代初 Hadoop 的崛起和后續(xù)的霸主地位。

小結

通過將開放表格式與高性能對象存儲相結合,架構師能夠構建開放、可互操作且能夠滿足 AI、ML 和高級分析需求的數(shù)據(jù)系統(tǒng)。通過采用上述提到的各項技術,組織可以創(chuàng)建可擴展且靈活的架構,從而在數(shù)據(jù)驅動時代推動業(yè)務的創(chuàng)新和提效。

譯者介紹

陳峻(Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項目實施經(jīng)驗,善于對內(nèi)外部資源與風險實施管控,專注傳播網(wǎng)絡與信息安全知識與經(jīng)驗。

原標題:The Architect’s Guide to Open Table Formats and Object Storage,作者:Brenna Buuck

責任編輯:華軒 來源: 51CTO
相關推薦

2012-06-20 13:54:44

架構性能優(yōu)化

2022-06-15 10:04:51

存儲選型MySQL

2022-08-29 09:14:01

戰(zhàn)略設計核心域支撐域

2017-11-22 09:00:00

2021-04-27 09:35:36

業(yè)務領域建模

2012-09-29 13:29:11

存儲架構架構緩存

2011-10-31 09:22:07

系統(tǒng)架構

2021-02-03 11:04:30

架構師能力挑戰(zhàn)

2011-11-01 09:02:26

系統(tǒng)架構師

2022-04-27 09:09:57

架構師術語技術語言

2018-11-28 09:38:34

微服務架構API

2011-10-18 09:25:04

系統(tǒng)架構師

2011-10-27 09:08:59

系統(tǒng)架構師

2011-11-02 09:01:30

系統(tǒng)架構師

2023-06-05 08:19:20

性能優(yōu)化CPU

2009-12-18 10:22:50

Ray Ozzie架構師

2020-08-24 08:50:12

架構師TL技術

2022-06-08 07:34:02

持久化數(shù)據(jù)存儲原理索引存儲格式

2021-09-30 19:00:17

對象存儲Ceph

2018-07-03 15:46:24

Java架構師源碼
點贊
收藏

51CTO技術棧公眾號