加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

Cloudera Data Platform引入Apache Iceberg的五大原因

2022/09/16
665
閱讀需 12 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

近期,Cloudera宣布將Apache Iceberg集成到其云生態(tài)系統(tǒng)中,Iceberg的優(yōu)勢得以融入正在轉(zhuǎn)向公有云和采用湖倉等融合架構(gòu)的企業(yè)之中??梢哉f,集成了Iceberg的Cloudera CDP將強(qiáng)有力地幫助企業(yè)構(gòu)建新一代數(shù)據(jù)架構(gòu),賦予企業(yè)更多的前瞻性和附加優(yōu)勢。

 Apache Iceberg是一種高性能的開放表格式。它誕生于云端,可擴(kuò)展到PB級并且獨立于底層存儲層和引擎存儲層。作為一種真正的開放表格式,Apache Iceberg符合Cloudera Data Platform(CDP)的愿景。

原因一:多功能分析助力實現(xiàn)數(shù)據(jù)集共享

Apache Iceberg實現(xiàn)了不同流式傳輸和處理引擎之間的無縫集成,同時保持了它們之間的數(shù)據(jù)完整性。多個引擎可以同時更改表,即便是部分寫入也不會出現(xiàn)正確性問題,而且也不需要昂貴的讀取鎖定。因此,降低了使用不同的連接器、維護(hù)不善的API、以及采取其他臨時解決方案處理數(shù)據(jù)集的必要性。

Iceberg采用開放、兼容所有引擎的設(shè)計,實現(xiàn)了數(shù)據(jù)集的共享。Cloudera擴(kuò)展了對Hive和Impala的支持,實現(xiàn)了從大規(guī)模數(shù)據(jù)工程工作負(fù)載和流處理,到智能大數(shù)據(jù)分析平臺(Fast BI)和查詢以及機(jī)器學(xué)習(xí)的多功能分析數(shù)據(jù)架構(gòu)愿景。

Iceberg的多功能還意味著Cloudera數(shù)據(jù)平臺就此擁有了打破數(shù)據(jù)孤島的集成端到端數(shù)據(jù)管道,并將分析整合成一個連貫的生命周期,在每一個階段都可以提取商業(yè)價值。用戶將能夠借助所需工具并充分利用其對工作負(fù)載所作出的特定優(yōu)化。例如Jupyter筆記本可以使用Spark或Python框架直接訪問Iceberg表來建立預(yù)測模型,同時通過NiFi流獲取新數(shù)據(jù),而SQL分析師則可以利用數(shù)據(jù)可視化監(jiān)控收入目標(biāo)。而作為一個完全開源的項目,這意味著將來會有更多的引擎和工具得到支持。

原因二:開放文件格式提升數(shù)據(jù)存用靈活度

作為一種表格式,Iceberg 支持一些最常用的開源文件格式,比如Avro、Parquet 和 ORC。這些都是眾所周知且發(fā)展成熟的大數(shù)據(jù)文件格式,它們不僅被開源社區(qū)所使用,同時也被嵌入到第三方工具中。開放格式的價值在于靈活性和可移植性。用戶可以在不受底層存儲束縛的情況下移動他們的工作負(fù)載。但到目前為止,這種格式仍有一個缺點——由于表模式和存儲優(yōu)化與引擎等緊密耦合,因此使用起來難免“束手束腳”。

而Iceberg是一個通過與開放文件格式一起使用來避免這種耦合的開放表格式。模式、分區(qū)等表信息作為元數(shù)據(jù)文件的一部分單獨存儲,使應(yīng)用更容易與表和它們所選擇的存儲格式快速集成。由于查詢不再依賴于表的物理布局,Iceberg表可以隨著數(shù)據(jù)量的變化而逐漸實現(xiàn)分區(qū)方案的演進(jìn)。

原因三:開源功能有效規(guī)避供應(yīng)商“陷阱”

開源對于避免供應(yīng)商“陷阱”至關(guān)重要,但許多供應(yīng)商會在兜售開源工具時隱瞞他們自主開發(fā)的版本與開源社區(qū)之間的差距。這意味著當(dāng)客戶嘗試去使用開源版本時,他們才會發(fā)現(xiàn)二者之間存在顯著差異。如此說來,避開供應(yīng)商陷阱實則困難重重。

而Apache Iceberg項目是一個充滿活力的社區(qū),它正迅速擴(kuò)大對各種處理引擎的支持并不斷增加新功能。為了使該社區(qū)及新的表格式獲得持續(xù)成功,Cloudera為上游社區(qū)提供跨Spark、Hive和Impala的支持,意在促使Apache Iceberg被廣泛采納并可供有意構(gòu)建新一代數(shù)據(jù)架構(gòu)的企業(yè)所使用。該社區(qū)提供了許多功能改進(jìn)及性能特性,例如向量化讀取和Z-Order等,無論用戶使用什么引擎或供應(yīng)商來訪問表,都將從中受益。在CDP中,這已經(jīng)作為Impala MPP開源引擎對Z-Order提供的一部分支持。

如之前所述,在查詢規(guī)劃方面Iceberg依賴于元數(shù)據(jù)文件,這些文件包含了數(shù)據(jù)駐留的位置以及分區(qū)和模式如何分布在文件中。雖然這實現(xiàn)了模式的演變,但如果表格的變化過多,就會帶來問題。為此社區(qū)創(chuàng)建了一個API來讀取元數(shù)據(jù)文件,同時也在同步進(jìn)行其他類似的優(yōu)化。這種開放標(biāo)準(zhǔn)方法讓用戶可以在Iceberg上以CDP中的性能運行工作負(fù)載,且無需擔(dān)心落入供應(yīng)商“陷阱”中。

原因四:有效降低企業(yè)級應(yīng)用學(xué)習(xí)和管理門檻

作為Cloudera企業(yè)平臺的一部分,Iceberg的原生集成受益于企業(yè)級的共享數(shù)據(jù)體驗(SDX)功能,例如數(shù)據(jù)沿襲、審計和安全等,而且無需重新設(shè)計或第三方工具集成,因此不會增加管理的復(fù)雜性,也不需要額外學(xué)習(xí)。CDP中的Apache Iceberg表被集成在SDX Metastore中用于表結(jié)構(gòu)和訪問驗證,這意味著用戶可以進(jìn)行審計并創(chuàng)建細(xì)粒度的政策,實現(xiàn)即開即用。

原因五:Apache Iceberg開啟全新使用場景

Apache Hive表實現(xiàn)了對數(shù)據(jù)倉儲、數(shù)據(jù)工程和機(jī)器學(xué)習(xí)的集中訪問,奠定了良好的性能基礎(chǔ)。同時,它還支持開放的文件格式(ORC、AVRO、Parquet等),并通過ACID和事務(wù)支持幫助實現(xiàn)新的用例。但由于元數(shù)據(jù)的集中化并且抽象化主要基于文件,因此它在規(guī)模等方面不免面臨挑戰(zhàn)。

Iceberg克服了規(guī)模和性能方面的挑戰(zhàn),同時加入了一系列新的功能,能夠解決不同行業(yè)和用例的挑戰(zhàn)。例如:

  • 變更數(shù)據(jù)捕獲(CDC)

能夠處理具有原子性和一致性的Delta表雖然早已普及,而且Hive ACID等現(xiàn)有的解決方案也能提供這種功能,但該功能對大多數(shù)提供DW和BI用例的數(shù)據(jù)處理管道來說至關(guān)重要。因此Iceberg從一開始就通過支持行級更新和刪除來解決這個問題。它在不深入到細(xì)節(jié)的情況下可以使用多種不同的方法來實現(xiàn)這一點,例如寫時拷貝(Copy-on-write)與讀時合并(Merge-on-read)。但更重要的是,隨著這些解決方案以及Iceberg開放標(biāo)準(zhǔn)格式的持續(xù)發(fā)展,我們將看到處理類似用例的更優(yōu)表現(xiàn)。

  • 金融監(jiān)管

許多金融和受到高度監(jiān)管的行業(yè)都希望能夠回溯歷史,甚至希望能夠?qū)⒈頎顟B(tài)恢復(fù)到特定的時間點。Apache Iceberg的“快照”和“時間旅行”功能可以幫助分析和審計人員輕松回溯歷史并使用簡單的SQL來分析數(shù)據(jù)。

  • 機(jī)器學(xué)習(xí)運維的可重復(fù)性

通過允許檢索之前的表狀態(tài),Iceberg讓機(jī)器學(xué)習(xí)工程師能夠使用原始狀態(tài)的數(shù)據(jù)重新訓(xùn)練模型,并執(zhí)行將預(yù)測與歷史數(shù)據(jù)相匹配的事后分析。通過這些存儲的歷史特征,可以對模型進(jìn)行重新評估、找出不足之處并部署更新、更好的模型。

  • 簡化數(shù)據(jù)管理

大多數(shù)數(shù)據(jù)從業(yè)者需要耗費很多時間來應(yīng)對數(shù)據(jù)管理的復(fù)雜性,為項目確定新的數(shù)據(jù)源并將新的屬性加入到現(xiàn)有的數(shù)據(jù)模型中就是其中之一。以前,這可能會因為需要重新創(chuàng)建和重新加載表而導(dǎo)致開發(fā)周期過于漫長,尤其是在引入新的分區(qū)時。但有了Iceberg表及其元數(shù)據(jù)清單文件,就可以簡化這些更新并且不產(chǎn)生額外的費用。

模式演變:表中的列可以就地改變(添加、刪除、重命名、更新或重新排序)而不影響數(shù)據(jù)的可用性。所有變化都可以在元數(shù)據(jù)文件中被追蹤,Iceberg 確保模式變化獨立且沒有副作用(比如錯誤的值)。

分區(qū)演變:可通過與模式演變相同的方式改變Iceberg表中的分區(qū)。在分區(qū)演變過程中,舊的數(shù)據(jù)保持不變,新的數(shù)據(jù)將按照新的分區(qū)規(guī)格寫入。Iceberg 使用隱藏分區(qū),通過分割規(guī)劃自動修剪包含新舊分區(qū)規(guī)格中的匹配數(shù)據(jù)的文件。

細(xì)粒度的分區(qū):以前,在查詢規(guī)劃期間所面臨的主要瓶頸是元數(shù)據(jù)倉以及將分區(qū)加載到內(nèi)存中,限制了用戶使用小時等細(xì)粒度的分區(qū)方案以避免隨著表規(guī)模的增長而導(dǎo)致性能不佳。Iceberg克服了這些可擴(kuò)展性方面的挑戰(zhàn),通過同時避免元數(shù)據(jù)倉和內(nèi)存瓶頸,使用戶能夠使用更細(xì)粒度、最適合應(yīng)用需求的分區(qū)方案來實現(xiàn)更快的查詢。

這意味著數(shù)據(jù)從業(yè)者可以將更多的時間用于創(chuàng)造業(yè)務(wù)價值和開發(fā)新的數(shù)據(jù)應(yīng)用,減少處理數(shù)據(jù)管理的時間,即根據(jù)業(yè)務(wù)的速度實現(xiàn)數(shù)據(jù)演進(jìn),避免本末倒置。

  • 輕松構(gòu)建數(shù)據(jù)倉庫

我們已經(jīng)看到了數(shù)據(jù)倉庫領(lǐng)域的很多趨勢,其中最新的趨勢就是湖倉——一種將數(shù)據(jù)倉庫和數(shù)據(jù)湖相結(jié)合的融合架構(gòu)。在企業(yè)中,加速此類融合架構(gòu)的一個關(guān)鍵因素是存儲與處理引擎的解耦。但這必須與從串流和實時分析到倉儲和機(jī)器學(xué)習(xí)等多功能分析服務(wù)相結(jié)合,僅憑分析工作負(fù)載或?qū)烧呦嘟Y(jié)合還不夠。因此CDP中的Iceberg不具有固定形態(tài),它更多的是一種兼容一切引擎的開放式數(shù)據(jù)底層,可以在云端進(jìn)行擴(kuò)展。

這使得企業(yè)可以輕松構(gòu)建“任何”數(shù)據(jù)倉庫,而不必使用專門的存儲格式來獲得最佳性能,也不必在一個引擎或服務(wù)中進(jìn)行專有優(yōu)化。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜