自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

架構(gòu)師指南之開放表格式和對象存儲篇

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

譯者 | 陳峻

審校 | 重樓

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

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

開放表格式的適用范圍

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

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

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

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

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

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

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

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

典型的開放表格式

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

Apache Iceberg

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

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

Delta Lake

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

Apache Hudi

Apache Hudi 旨在應(yīng)對實時數(shù)據(jù)攝取和分析的挑戰(zhàn),尤其是在那些數(shù)據(jù)需要頻繁更新的環(huán)境中。也就是說,其架構(gòu)支持用于高效數(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ù)流和嚴(yán)格數(shù)據(jù)管理合規(guī)場景的實用選擇。

比較開放表格式

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

  • ACID 事務(wù):所有三種格式都符合 ACID 要求,能夠確??煽康臄?shù)據(jù)操作。其中,Iceberg 采用快照隔離來實現(xiàn)事務(wù)完整性;Delta Lake 利用事務(wù)日志實現(xiàn)一致的視圖和寫入隔離;Hudi 為高并發(fā)場景提供文件級并發(fā)控制。
  • 架構(gòu)演變:每種格式都支持架構(gòu)更改,允許添加、刪除或修改數(shù)據(jù)列。Iceberg 提供靈活的架構(gòu)演變,而無需重寫現(xiàn)有數(shù)據(jù);Delta Lake 在運行時強制執(zhí)行架構(gòu)以保持?jǐn)?shù)據(jù)質(zhì)量;而 Hudi 提供預(yù)提交轉(zhuǎn)換功能,以提高靈活性。
  • 分區(qū)演變:Iceberg 支持分區(qū)演變,無需重寫現(xiàn)有數(shù)據(jù)即可無縫更新分區(qū)方案;Delta Lake 允許分區(qū)更改,但可能需要手動干預(yù),才能獲得最佳性能;而 Hudi 提供精細(xì)集群作為傳統(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 專為實時分析而設(shè)計,有高級并發(fā)控制和內(nèi)置工具(如 DeltaStreamer)用于增量數(shù)據(jù)的攝取;Delta Lake 支持通過更改數(shù)據(jù)源,實現(xiàn)流式處理;而 Iceberg 提供基本的增量讀取功能。雖然上述三種格式都為現(xiàn)代數(shù)據(jù)架構(gòu)提供了強大的基礎(chǔ),但是由于各自的特點比較明顯,因此具體該如何選擇取決于特定的工作負(fù)載要求和組織需求。

性能預(yù)期

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

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

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

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

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

開放表格式的未來

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

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

小結(jié)

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

譯者介紹

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

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

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2012-06-20 13:54:44

架構(gòu)性能優(yōu)化

2022-06-15 10:04:51

存儲選型MySQL

2022-08-29 09:14:01

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

2011-10-31 09:22:07

系統(tǒng)架構(gòu)

2012-09-29 13:29:11

存儲架構(gòu)架構(gòu)緩存

2017-11-22 09:00:00

2021-02-03 11:04:30

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

2011-10-18 09:25:04

系統(tǒng)架構(gòu)師

2011-10-27 09:08:59

系統(tǒng)架構(gòu)師

2011-11-02 09:01:30

系統(tǒng)架構(gòu)師

2021-04-27 09:35:36

業(yè)務(wù)領(lǐng)域建模

2018-11-28 09:38:34

微服務(wù)架構(gòu)API

2011-11-01 09:02:26

系統(tǒng)架構(gòu)師

2022-04-27 09:09:57

架構(gòu)師術(shù)語技術(shù)語言

2011-10-19 09:20:44

2011-10-21 09:04:57

系統(tǒng)架構(gòu)師

2010-08-09 09:03:17

.NET企業(yè)級架構(gòu)

2020-04-15 19:53:49

TomcatApache內(nèi)存

2021-07-12 23:43:46

AppAndroid優(yōu)化

2016-08-29 11:33:23

京東云云計算云安全
點贊
收藏

51CTO技術(shù)棧公眾號