從流批一體、湖倉(cāng)一體、NoETL、數(shù)據(jù)中臺(tái)到DataOps,現(xiàn)代數(shù)據(jù)分析領(lǐng)域熱詞迭出,企業(yè)如何抓住本質(zhì),經(jīng)營(yíng)數(shù)據(jù)生產(chǎn)力以提質(zhì)增效?
9月26-27日,ArchSummit全球架構(gòu)師峰會(huì)杭州站舉辦,網(wǎng)易副總裁、網(wǎng)易杭州研究院執(zhí)行院長(zhǎng)、網(wǎng)易數(shù)帆總經(jīng)理汪源受邀在會(huì)上發(fā)表主題演講,深入淺出地剖析了現(xiàn)代化數(shù)據(jù)分析架構(gòu)中最值得關(guān)注的三條主線,包括統(tǒng)一的基礎(chǔ)設(shè)施、統(tǒng)一的中間層和統(tǒng)一的數(shù)據(jù)資產(chǎn),并介紹了國(guó)內(nèi)外的相關(guān)技術(shù)實(shí)踐。
統(tǒng)一的基礎(chǔ)設(shè)施:流式湖倉(cāng),Iceberg+Arctic將成核心
統(tǒng)一的基礎(chǔ)設(shè)施要解決四大問(wèn)題:湖倉(cāng)一體、流批一體、標(biāo)準(zhǔn)格式和存算分離——不僅是文件格式,還包括表格式。汪源表示,理想的統(tǒng)一基礎(chǔ)設(shè)施是流式湖倉(cāng)的基礎(chǔ)設(shè)施,即湖倉(cāng)和流批都做到一體。除了最底層的對(duì)象存儲(chǔ),目前已有可用的開(kāi)源實(shí)現(xiàn)。
統(tǒng)一的基礎(chǔ)設(shè)施包括六層架構(gòu)。最底層是存儲(chǔ)層,往上是Parquet文件格式層,中間加了緩存加速層,用來(lái)彌補(bǔ)上層需求和底層對(duì)象存儲(chǔ)之間的性能差距,現(xiàn)在出現(xiàn)的有Alluxio、JuiceFS、CurveFS,其中CurveFS是網(wǎng)易數(shù)帆開(kāi)源的一個(gè)文件存儲(chǔ)系統(tǒng)。
最核心的是最近兩三年出現(xiàn)了兩個(gè)新的層次,一個(gè)是表格式(table format),如Iceberg、Hudi,一個(gè)是表服務(wù)(table service),如Arctic。這兩個(gè)層次能夠讓底層大數(shù)據(jù)體系支持湖倉(cāng)一體、實(shí)時(shí)更新、版本一致性、ACID等等,之前的大數(shù)據(jù)沒(méi)有這些功能,所以它無(wú)法做一些實(shí)時(shí)的分析服務(wù),只能做T+1的分析。最上層是分析引擎層。
汪源認(rèn)為Iceberg是最有希望成為table format標(biāo)準(zhǔn)的項(xiàng)目。Iceberg從數(shù)據(jù)層面提供了ACID的能力,并且可以讀到任何時(shí)間點(diǎn)的數(shù)據(jù);第二個(gè)從元數(shù)據(jù)層面解決了HMS性能瓶頸,把原來(lái)集中式的元數(shù)據(jù)變成了分布式的元數(shù)據(jù),并且相當(dāng)于給數(shù)據(jù)構(gòu)建了一個(gè)多級(jí)的索引,能夠支持高級(jí)過(guò)濾,這能解決很多問(wèn)題。比如大數(shù)據(jù)場(chǎng)景常見(jiàn)千萬(wàn)甚至億級(jí)文件的查詢(xún),基于Hive的查詢(xún)啟動(dòng)可能要花20分鐘,而Iceberg可以做到一分鐘以?xún)?nèi),這是一個(gè)非??鋸埖倪M(jìn)步。
Arctic由網(wǎng)易數(shù)帆于2022年8月宣布開(kāi)源,但在網(wǎng)易數(shù)帆內(nèi)部研發(fā)已經(jīng)將近三年。Arctic主要用來(lái)幫助Iceberg把整體的技術(shù)體系構(gòu)建完整,因?yàn)镮ceberg只是一種格式,無(wú)法單獨(dú)形成面向分析性能最優(yōu)化的狀態(tài)。Arctic首先提供了基于Iceberg的自?xún)?yōu)化的能力,以及upsert的功能,支持高效的數(shù)據(jù)更新。其次支持流批一體,流表和批表定義一致,可以復(fù)用。最后是兼容Hive和Iceberg,從而可以快速落地。
汪源認(rèn)為,今天由Iceberg和Arctic共同構(gòu)建的這一層會(huì)成為一個(gè)新的事實(shí)的標(biāo)準(zhǔn),在它下面有不同的存儲(chǔ),在它上面有不同的計(jì)算體系?!斑@個(gè)中間基本上勝出的只有一家,不可能有多家,否則這個(gè)技術(shù)棧就混亂了。”
統(tǒng)一的中間層:數(shù)據(jù)倉(cāng)庫(kù)+HeadlessBI
數(shù)據(jù)分析的過(guò)程,理想的狀態(tài)是理論大師們規(guī)劃的路線:在數(shù)據(jù)倉(cāng)庫(kù)里面做好了所有的數(shù)據(jù)轉(zhuǎn)化,每一個(gè)團(tuán)隊(duì)用很好的BI工具只做數(shù)據(jù)的展現(xiàn)和交互,所有的計(jì)算邏輯應(yīng)該都在數(shù)倉(cāng)里面完成。但實(shí)際上每一個(gè)團(tuán)隊(duì)都會(huì)在自己的BI里面去做很多的計(jì)算邏輯,這是數(shù)據(jù)倉(cāng)庫(kù)的計(jì)算邏輯不夠用,導(dǎo)致計(jì)算邏輯分散的問(wèn)題。汪源指出,大家在不同的BI產(chǎn)品中看到的數(shù)據(jù)口徑和結(jié)果的差異,就是由分散的計(jì)算邏輯帶來(lái)的。
解決該問(wèn)題的“中國(guó)方案”是數(shù)據(jù)中臺(tái),通過(guò)OneData、OneService、OneID,解決指標(biāo)口徑不一致的問(wèn)題,所有的口徑定義、計(jì)算邏輯都在中臺(tái)做好。數(shù)據(jù)中臺(tái)包括了數(shù)據(jù)倉(cāng)庫(kù),在數(shù)據(jù)倉(cāng)庫(kù)定義了一套規(guī)范的指標(biāo)層,包括原始指標(biāo)、派生指標(biāo)、復(fù)合指標(biāo)。上面是數(shù)據(jù)服務(wù)層,提供所有對(duì)外的數(shù)據(jù)。同時(shí)又引入了數(shù)據(jù)治理來(lái)保證中臺(tái)輸出的數(shù)據(jù)符合質(zhì)量和安全要求。
國(guó)際方案包括三個(gè)核心概念:Semantic Layer、HeadlessBI和Metric Layer。汪源認(rèn)為最貼切的描述是HeadlessBI,以國(guó)外的Cube產(chǎn)品設(shè)計(jì)為例,數(shù)據(jù)輸入來(lái)自左邊的各種數(shù)倉(cāng),中間HeadlessBI要做的是數(shù)據(jù)建模、安全相關(guān)的訪問(wèn)控制、性能加速,最后以API的方式提供給右邊的下游消費(fèi)者,主要是BI工具以及嵌入式的分析。
在這個(gè)方向上,網(wǎng)易數(shù)帆強(qiáng)調(diào)的是開(kāi)發(fā)和治理一體化,在建數(shù)倉(cāng)、建指標(biāo)等開(kāi)發(fā)活動(dòng)的過(guò)程中把數(shù)據(jù)治理同步完成,讓指標(biāo)、模型等持續(xù)保持高質(zhì)量。此前,網(wǎng)易數(shù)帆發(fā)現(xiàn)很多客戶(hù)先找開(kāi)發(fā)的方案來(lái)做開(kāi)發(fā),做完之后發(fā)現(xiàn)數(shù)據(jù)質(zhì)量不佳,又去做數(shù)據(jù)治理的項(xiàng)目。汪源表示,在開(kāi)發(fā)環(huán)節(jié)同時(shí)把開(kāi)發(fā)治理做好了,就不會(huì)有這樣的后遺癥。
汪源對(duì)統(tǒng)一的中間層的期待,包括數(shù)據(jù)倉(cāng)庫(kù)和HeadlessBI兩層,后者能做建模,包括指標(biāo),做權(quán)限、加速和服務(wù),同時(shí)把開(kāi)發(fā)和治理一體化,通過(guò)統(tǒng)一的模型指標(biāo)計(jì)算邏輯和口徑,實(shí)現(xiàn)事前事中事后的持續(xù)治理。這樣BI層可以真正聚焦在展現(xiàn)和交付上,汪源將其命名為“NecklessBI”,與HeadlessBI對(duì)應(yīng)。
汪源還強(qiáng)調(diào),在此過(guò)程中,ETL不會(huì)被消除,它只能被轉(zhuǎn)移或隱藏,因?yàn)閺臄?shù)據(jù)源到分析所需要的數(shù)據(jù)一定是有很多不匹配的,比較現(xiàn)實(shí)的是做ETL的自動(dòng)化,即AutoETL。
統(tǒng)一的數(shù)據(jù)資產(chǎn):Data Fabric已落地
數(shù)據(jù)資產(chǎn)管理面臨的問(wèn)題,是數(shù)據(jù)找不到,找到了看不懂,看了之后信不過(guò)、不敢用,管不牢等。汪源認(rèn)為比較可行的思路就是分析機(jī)構(gòu)提出的Data Fabric,它的目的是實(shí)現(xiàn)數(shù)據(jù)的整合利用,它是一個(gè)架構(gòu)思想或者設(shè)計(jì)理念,并不綁定一個(gè)特定的技術(shù)實(shí)現(xiàn)。
Data Fabric和其他數(shù)據(jù)整合利用的方式有明顯的區(qū)別:數(shù)據(jù)倉(cāng)庫(kù)或者數(shù)據(jù)中臺(tái),比較強(qiáng)調(diào)數(shù)據(jù)的集中,同時(shí)也強(qiáng)調(diào)數(shù)據(jù)比較深度的預(yù)加工。數(shù)據(jù)湖強(qiáng)調(diào)數(shù)據(jù)的集中,但是它強(qiáng)調(diào)數(shù)據(jù)不要做太多的預(yù)加工,應(yīng)該按照原始的數(shù)據(jù)格式都存在湖里面,需要的時(shí)候再把它拿出來(lái)處理。Data Fabric則強(qiáng)調(diào)元數(shù)據(jù)的集中。
Data Fabric的實(shí)際落地需要構(gòu)建四個(gè)方面的核心能力,包括連接數(shù)據(jù)源、主動(dòng)元數(shù)據(jù)(active metadata)、數(shù)據(jù)虛擬化和邏輯數(shù)據(jù)湖。汪源認(rèn)為數(shù)據(jù)虛擬化能最大程度發(fā)揮Data Fabric的能力,因?yàn)樗軌蛟跀?shù)據(jù)沒(méi)有完成集中之前就能夠做一定程度的利用,但并非所有的數(shù)據(jù)分析都可以基于數(shù)據(jù)虛擬化來(lái)做。網(wǎng)易數(shù)帆已經(jīng)落地的邏輯數(shù)據(jù)湖,也是Data Fabric的一種實(shí)現(xiàn),它從邏輯上看是一個(gè)湖,但是從物理實(shí)現(xiàn)上數(shù)據(jù)還是分散存儲(chǔ)在Hadoop、Oracle、MySQL等系統(tǒng)里面。
總結(jié)
總體來(lái)說(shuō),現(xiàn)代數(shù)據(jù)分析技術(shù)的三大主題,第一個(gè)是構(gòu)建一個(gè)統(tǒng)一的基礎(chǔ)設(shè)施,能夠支撐實(shí)時(shí)數(shù)據(jù)更新與消費(fèi),并且是開(kāi)放、低成本的流式湖倉(cāng)基礎(chǔ)設(shè)施。第二個(gè)是統(tǒng)一的中間層,包括數(shù)據(jù)倉(cāng)庫(kù)和HeadlessBI兩個(gè)層次,要做到統(tǒng)一的模型、指標(biāo)、計(jì)算邏輯和口徑,并實(shí)現(xiàn)事前事中事后持續(xù)的數(shù)據(jù)治理。第三個(gè)是統(tǒng)一的數(shù)據(jù)資產(chǎn),目的是企業(yè)全域數(shù)據(jù)資產(chǎn)的高效的發(fā)現(xiàn)、整合和管理,它在實(shí)現(xiàn)上能夠兼容各種風(fēng)格的數(shù)據(jù)處理技術(shù)。
“我希望整個(gè)行業(yè)能夠往這些方向去聚焦,不要產(chǎn)生太多的相互割裂的概念?!蓖粼凑f(shuō)。
(本內(nèi)容屬于網(wǎng)絡(luò)轉(zhuǎn)載,文中涉及圖片等內(nèi)容如有侵權(quán),請(qǐng)聯(lián)系編輯刪除。市場(chǎng)有風(fēng)險(xiǎn),選擇需謹(jǐn)慎!此文僅供參考,不作買(mǎi)賣(mài)及投資依據(jù)。)
原創(chuàng)文章,作者:陳晨,如若轉(zhuǎn)載,請(qǐng)注明出處:http://m.2079x.cn/article/561795.html