數(shù)據(jù)湖 | 一文讀懂Data Lake的概念闷畸、特征、架構(gòu)與案例(轉(zhuǎn))

本文包括七個(gè)小節(jié):1吞滞、什么是數(shù)據(jù)湖佑菩;2、數(shù)據(jù)湖的基本特征裁赠;3殿漠、數(shù)據(jù)湖基本架構(gòu);4佩捞、各廠商的數(shù)據(jù)湖解決方案绞幌;5、典型的數(shù)據(jù)湖應(yīng)用場(chǎng)景一忱;6莲蜘、數(shù)據(jù)湖建設(shè)的基本過(guò)程;7帘营、總結(jié)票渠。受限于個(gè)人水平,謬誤在所難免芬迄,歡迎同學(xué)們一起探討问顷,批評(píng)指正,不吝賜教禀梳。

一杜窄、什么是數(shù)據(jù)湖

數(shù)據(jù)湖是目前比較熱的一個(gè)概念,許多企業(yè)都在構(gòu)建或者計(jì)劃構(gòu)建自己的數(shù)據(jù)湖算途。但是在計(jì)劃構(gòu)建數(shù)據(jù)湖之前塞耕,搞清楚什么是數(shù)據(jù)湖,明確一個(gè)數(shù)據(jù)湖項(xiàng)目的基本組成嘴瓤,進(jìn)而設(shè)計(jì)數(shù)據(jù)湖的基本架構(gòu)荷科,對(duì)于數(shù)據(jù)湖的構(gòu)建至關(guān)重要唯咬。關(guān)于什么是數(shù)據(jù)湖?有不同的定義畏浆。

Wikipedia上說(shuō)數(shù)據(jù)湖是一類存儲(chǔ)數(shù)據(jù)自然/原始格式的系統(tǒng)或存儲(chǔ)胆胰,通常是對(duì)象塊或者文件,包括原始系統(tǒng)所產(chǎn)生的原始數(shù)據(jù)拷貝以及為了各類任務(wù)而產(chǎn)生的轉(zhuǎn)換數(shù)據(jù)刻获,包括來(lái)自于關(guān)系型數(shù)據(jù)庫(kù)中的結(jié)構(gòu)化數(shù)據(jù)(行和列)蜀涨、半結(jié)構(gòu)化數(shù)據(jù)(如CSV、日志蝎毡、XML厚柳、JSON)、非結(jié)構(gòu)化數(shù)據(jù)(如email沐兵、文檔别垮、PDF等)和二進(jìn)制數(shù)據(jù)(如圖像矾睦、音頻局装、視頻)。

AWS定義數(shù)據(jù)湖是一個(gè)集中式存儲(chǔ)庫(kù)川陆,允許您以任意規(guī)模存儲(chǔ)所有結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)毁靶。

微軟的定義就更加模糊了胧奔,并沒(méi)有明確給出什么是Data Lake,而是取巧的將數(shù)據(jù)湖的功能作為定義预吆,數(shù)據(jù)湖包括一切使得開(kāi)發(fā)者龙填、數(shù)據(jù)科學(xué)家、分析師能更簡(jiǎn)單的存儲(chǔ)拐叉、處理數(shù)據(jù)的能力岩遗,這些能力使得用戶可以存儲(chǔ)任意規(guī)模、任意類型凤瘦、任意產(chǎn)生速度的數(shù)據(jù)喘先,并且可以跨平臺(tái)、跨語(yǔ)言的做所有類型的分析和處理廷粒。

關(guān)于數(shù)據(jù)湖的定義其實(shí)很多,但是基本上都圍繞著以下幾個(gè)特性展開(kāi)红且。

1坝茎、 數(shù)據(jù)湖需要提供足夠用的數(shù)據(jù)存儲(chǔ)能力,這個(gè)存儲(chǔ)保存了一個(gè)企業(yè)/組織中的所有數(shù)據(jù)暇番。

2嗤放、 數(shù)據(jù)湖可以存儲(chǔ)海量的任意類型的數(shù)據(jù),包括結(jié)構(gòu)化壁酬、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)次酌。

3恨课、 數(shù)據(jù)湖中的數(shù)據(jù)是原始數(shù)據(jù),是業(yè)務(wù)數(shù)據(jù)的完整副本岳服。數(shù)據(jù)湖中的數(shù)據(jù)保持了他們?cè)跇I(yè)務(wù)系統(tǒng)中原來(lái)的樣子剂公。

4、 數(shù)據(jù)湖需要具備完善的數(shù)據(jù)管理能力(完善的元數(shù)據(jù))吊宋,可以管理各類數(shù)據(jù)相關(guān)的要素纲辽,包括數(shù)據(jù)源、數(shù)據(jù)格式璃搜、連接信息拖吼、數(shù)據(jù)schema、權(quán)限管理等这吻。

5吊档、 數(shù)據(jù)湖需要具備多樣化的分析能力,包括但不限于批處理唾糯、流式計(jì)算怠硼、交互式分析以及機(jī)器學(xué)習(xí);同時(shí)趾断,還需要提供一定的任務(wù)調(diào)度和管理能力拒名。

6、 數(shù)據(jù)湖需要具備完善的數(shù)據(jù)生命周期管理能力芋酌。不光需要存儲(chǔ)原始數(shù)據(jù)增显,還需要能夠保存各類分析處理的中間結(jié)果,并完整的記錄數(shù)據(jù)的分析處理過(guò)程脐帝,能幫助用戶完整詳細(xì)追溯任意一條數(shù)據(jù)的產(chǎn)生過(guò)程同云。

7、 數(shù)據(jù)湖需要具備完善的數(shù)據(jù)獲取和數(shù)據(jù)發(fā)布能力堵腹。數(shù)據(jù)湖需要能支撐各種各樣的數(shù)據(jù)源炸站,并能從相關(guān)的數(shù)據(jù)源中獲取全量/增量數(shù)據(jù);然后規(guī)范存儲(chǔ)疚顷。數(shù)據(jù)湖能將數(shù)據(jù)分析處理的結(jié)果推送到合適的存儲(chǔ)引擎中旱易,滿足不同的應(yīng)用訪問(wèn)需求。

8腿堤、 對(duì)于大數(shù)據(jù)的支持阀坏,包括超大規(guī)模存儲(chǔ)以及可擴(kuò)展的大規(guī)模數(shù)據(jù)處理能力。

綜上笆檀,個(gè)人認(rèn)為數(shù)據(jù)湖應(yīng)該是一種不斷演進(jìn)中忌堂、可擴(kuò)展的大數(shù)據(jù)存儲(chǔ)、處理酗洒、分析的基礎(chǔ)設(shè)施士修;以數(shù)據(jù)為導(dǎo)向枷遂,實(shí)現(xiàn)任意來(lái)源、任意速度棋嘲、任意規(guī)模酒唉、任意類型數(shù)據(jù)的全量獲取、全量存儲(chǔ)封字、多模式處理與全生命周期管理黔州;并通過(guò)與各類外部異構(gòu)數(shù)據(jù)源的交互集成,支持各類企業(yè)級(jí)應(yīng)用阔籽。

image.png

圖1. 數(shù)據(jù)湖基本能力示意

這里需要再特別指出兩點(diǎn):

1)可擴(kuò)展是指規(guī)模的可擴(kuò)展和能力的可擴(kuò)展流妻,即數(shù)據(jù)湖不但要能夠隨著數(shù)據(jù)量的增大,提供“足夠”的存儲(chǔ)和計(jì)算能力笆制;還需要根據(jù)需要不斷提供新的數(shù)據(jù)處理模式绅这,例如可能一開(kāi)始業(yè)務(wù)只需要批處理能力,但隨著業(yè)務(wù)的發(fā)展在辆,可能需要交互式的即席分析能力证薇;又隨著業(yè)務(wù)的實(shí)效性要求不斷提升,可能需要支持實(shí)時(shí)分析和機(jī)器學(xué)習(xí)等豐富的能力匆篓。

2)以數(shù)據(jù)為導(dǎo)向浑度,是指數(shù)據(jù)湖對(duì)于用戶來(lái)說(shuō)要足夠的簡(jiǎn)單、易用鸦概,幫助用戶從復(fù)雜的IT基礎(chǔ)設(shè)施運(yùn)維工作中解脫出來(lái)箩张,關(guān)注業(yè)務(wù)、關(guān)注模型窗市、關(guān)注算法先慷、關(guān)注數(shù)據(jù)。數(shù)據(jù)湖面向的是數(shù)據(jù)科學(xué)家咨察、分析師论熙。目前來(lái)看,云原生應(yīng)該是構(gòu)建數(shù)據(jù)湖的一種比較理想的構(gòu)建方式摄狱,后面在“數(shù)據(jù)湖基本架構(gòu)”一節(jié)會(huì)詳細(xì)論述這一觀點(diǎn)脓诡。

二、數(shù)據(jù)湖的基本特征

對(duì)數(shù)據(jù)湖的概念有了基本的認(rèn)知之后媒役,我們需要進(jìn)一步明確數(shù)據(jù)湖需要具備哪些基本特征祝谚,特別是與大數(shù)據(jù)平臺(tái)或者傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)相比,數(shù)據(jù)湖具有哪些特點(diǎn)刊愚。在具體分析之前,我們先看一張來(lái)自AWS官網(wǎng)的對(duì)比表格(表格引自:https://aws.amazon.com/cn/big-data/datalakes-and-analytics/what-is-a-data-lake/

image.png

上表對(duì)比了數(shù)據(jù)湖與傳統(tǒng)數(shù)倉(cāng)的區(qū)別踩验,個(gè)人覺(jué)得可以從數(shù)據(jù)和計(jì)算兩個(gè)層面進(jìn)一步分析數(shù)據(jù)湖應(yīng)該具備哪些特征鸥诽。在數(shù)據(jù)方面:

1)“保真性”商玫。數(shù)據(jù)湖中對(duì)于業(yè)務(wù)系統(tǒng)中的數(shù)據(jù)都會(huì)存儲(chǔ)一份“一模一樣”的完整拷貝。與數(shù)據(jù)倉(cāng)庫(kù)不同的地方在于牡借,數(shù)據(jù)湖中必須要保存一份原始數(shù)據(jù)拳昌,無(wú)論是數(shù)據(jù)格式、數(shù)據(jù)模式钠龙、數(shù)據(jù)內(nèi)容都不應(yīng)該被修改炬藤。在這方面,數(shù)據(jù)湖強(qiáng)調(diào)的是對(duì)于業(yè)務(wù)數(shù)據(jù)“原汁原味”的保存碴里。同時(shí)沈矿,數(shù)據(jù)湖應(yīng)該能夠存儲(chǔ)任意類型/格式的數(shù)據(jù)。

2)“靈活性”:上表一個(gè)點(diǎn)是 “寫入型schema” v.s.“讀取型schema”咬腋,其實(shí)本質(zhì)上來(lái)講是數(shù)據(jù)schema的設(shè)計(jì)發(fā)生在哪個(gè)階段的問(wèn)題羹膳。對(duì)于任何數(shù)據(jù)應(yīng)用來(lái)說(shuō),其實(shí)schema的設(shè)計(jì)都是必不可少的根竿,即使是mongoDB等一些強(qiáng)調(diào)“無(wú)模式”的數(shù)據(jù)庫(kù)陵像,其最佳實(shí)踐里依然建議記錄盡量采用相同/相似的結(jié)構(gòu)】芸牵“寫入型schema”背后隱含的邏輯是數(shù)據(jù)在寫入之前醒颖,就需要根據(jù)業(yè)務(wù)的訪問(wèn)方式確定數(shù)據(jù)的schema,然后按照既定schema壳炎,完成數(shù)據(jù)導(dǎo)入泞歉,帶來(lái)的好處是數(shù)據(jù)與業(yè)務(wù)的良好適配;但是這也意味著數(shù)倉(cāng)的前期擁有成本會(huì)比較高冕广,特別是當(dāng)業(yè)務(wù)模式不清晰疏日、業(yè)務(wù)還處于探索階段時(shí),數(shù)倉(cāng)的靈活性不夠撒汉。

數(shù)據(jù)湖強(qiáng)調(diào)的“讀取型schema”沟优,背后的潛在邏輯則是認(rèn)為業(yè)務(wù)的不確定性是常態(tài):我們無(wú)法預(yù)期業(yè)務(wù)的變化,那么我們就保持一定的靈活性睬辐,將設(shè)計(jì)去延后挠阁,讓整個(gè)基礎(chǔ)設(shè)施具備使數(shù)據(jù)“按需”貼合業(yè)務(wù)的能力。因此溯饵,個(gè)人認(rèn)為“保真性”和“靈活性”是一脈相承的:既然沒(méi)辦法預(yù)估業(yè)務(wù)的變化侵俗,那么索性保持?jǐn)?shù)據(jù)最為原始的狀態(tài),一旦需要時(shí)丰刊,可以根據(jù)需求對(duì)數(shù)據(jù)進(jìn)行加工處理隘谣。因此,數(shù)據(jù)湖更加適合創(chuàng)新型企業(yè)、業(yè)務(wù)高速變化發(fā)展的企業(yè)寻歧。同時(shí)掌栅,數(shù)據(jù)湖的用戶也相應(yīng)的要求更高,數(shù)據(jù)科學(xué)家码泛、業(yè)務(wù)分析師(配合一定的可視化工具)是數(shù)據(jù)湖的目標(biāo)客戶猾封。

3)“可管理”:數(shù)據(jù)湖應(yīng)該提供完善的數(shù)據(jù)管理能力。既然數(shù)據(jù)要求“保真性”和“靈活性”噪珊,那么至少數(shù)據(jù)湖中會(huì)存在兩類數(shù)據(jù):原始數(shù)據(jù)和處理后的數(shù)據(jù)晌缘。數(shù)據(jù)湖中的數(shù)據(jù)會(huì)不斷的積累、演化痢站。因此磷箕,對(duì)于數(shù)據(jù)管理能力也會(huì)要求很高,至少應(yīng)該包含以下數(shù)據(jù)管理能力:數(shù)據(jù)源瑟押、數(shù)據(jù)連接搀捷、數(shù)據(jù)格式、數(shù)據(jù)schema(庫(kù)/表/列/行)多望。同時(shí)嫩舟,數(shù)據(jù)湖是單個(gè)企業(yè)/組織中統(tǒng)一的數(shù)據(jù)存放場(chǎng)所,因此怀偷,還需要具有一定的權(quán)限管理能力家厌。

4)“可追溯”:數(shù)據(jù)湖是一個(gè)組織/企業(yè)中全量數(shù)據(jù)的存儲(chǔ)場(chǎng)所,需要對(duì)數(shù)據(jù)的全生命周期進(jìn)行管理椎工,包括數(shù)據(jù)的定義饭于、接入、存儲(chǔ)维蒙、處理掰吕、分析、應(yīng)用的全過(guò)程颅痊。一個(gè)強(qiáng)大的數(shù)據(jù)湖實(shí)現(xiàn)殖熟,需要能做到對(duì)其間的任意一條數(shù)據(jù)的接入、存儲(chǔ)斑响、處理菱属、消費(fèi)過(guò)程是可追溯的,能夠清楚的重現(xiàn)數(shù)據(jù)完整的產(chǎn)生過(guò)程和流動(dòng)過(guò)程舰罚。

在計(jì)算方面纽门,個(gè)人認(rèn)為數(shù)據(jù)湖對(duì)于計(jì)算能力要求其實(shí)非常廣泛,完全取決于業(yè)務(wù)對(duì)于計(jì)算的要求营罢。

5)豐富的計(jì)算引擎赏陵。從批處理、流式計(jì)算、交互式分析到機(jī)器學(xué)習(xí)蝙搔,各類計(jì)算引擎都屬于數(shù)據(jù)湖應(yīng)該囊括的范疇候醒。一般情況下,數(shù)據(jù)的加載杂瘸、轉(zhuǎn)換、處理會(huì)使用批處理計(jì)算引擎伙菊;需要實(shí)時(shí)計(jì)算的部分败玉,會(huì)使用流式計(jì)算引擎;對(duì)于一些探索式的分析場(chǎng)景镜硕,可能又需要引入交互式分析引擎运翼。隨著大數(shù)據(jù)技術(shù)與人工智能技術(shù)的結(jié)合越來(lái)越緊密,各類機(jī)器學(xué)習(xí)/深度學(xué)習(xí)算法也被不斷引入兴枯,例如TensorFlow/PyTorch框架已經(jīng)支持從HDFS/S3/OSS上讀取樣本數(shù)據(jù)進(jìn)行訓(xùn)練血淌。因此,對(duì)于一個(gè)合格的數(shù)據(jù)湖項(xiàng)目而言财剖,計(jì)算引擎的可擴(kuò)展/可插拔悠夯,應(yīng)該是一類基礎(chǔ)能力。

6)多模態(tài)的存儲(chǔ)引擎躺坟。理論上沦补,數(shù)據(jù)湖本身應(yīng)該內(nèi)置多模態(tài)的存儲(chǔ)引擎,以滿足不同的應(yīng)用對(duì)于數(shù)據(jù)訪問(wèn)需求(綜合考慮響應(yīng)時(shí)間/并發(fā)/訪問(wèn)頻次/成本等因素)咪橙。但是夕膀,在實(shí)際的使用過(guò)程中,數(shù)據(jù)湖中的數(shù)據(jù)通常并不會(huì)被高頻次的訪問(wèn)美侦,而且相關(guān)的應(yīng)用也多在進(jìn)行探索式的數(shù)據(jù)應(yīng)用产舞,為了達(dá)到可接受的性價(jià)比,數(shù)據(jù)湖建設(shè)通常會(huì)選擇相對(duì)便宜的存儲(chǔ)引擎(如S3/OSS/HDFS/OBS)菠剩,并且在需要時(shí)與外置存儲(chǔ)引擎協(xié)同工作易猫,滿足多樣化的應(yīng)用需求。

三赠叼、數(shù)據(jù)湖基本架構(gòu)

數(shù)據(jù)湖可以認(rèn)為是新一代的大數(shù)據(jù)基礎(chǔ)設(shè)施擦囊。為了更好的理解數(shù)據(jù)湖的基本架構(gòu),我們先來(lái)看看大數(shù)據(jù)基礎(chǔ)設(shè)施架構(gòu)的演進(jìn)過(guò)程嘴办。

1) 第一階段:以Hadoop為代表的離線數(shù)據(jù)處理基礎(chǔ)設(shè)施瞬场。如下圖所示,Hadoop是以HDFS為核心存儲(chǔ)涧郊,以MapReduce(簡(jiǎn)稱MR)為基本計(jì)算模型的批量數(shù)據(jù)處理基礎(chǔ)設(shè)施贯被。圍繞HDFS和MR,產(chǎn)生了一系列的組件,不斷完善整個(gè)大數(shù)據(jù)平臺(tái)的數(shù)據(jù)處理能力彤灶,例如面向在線KV操作的HBase看幼、面向SQL的HIVE、面向工作流的PIG等幌陕。同時(shí)诵姜,隨著大家對(duì)于批處理的性能要求越來(lái)越高,新的計(jì)算模型不斷被提出搏熄,產(chǎn)生了Tez棚唆、Spark、Presto等計(jì)算引擎心例,MR模型也逐漸進(jìn)化成DAG模型宵凌。DAG模型一方面,增加計(jì)算模型的抽象并發(fā)能力:對(duì)每一個(gè)計(jì)算過(guò)程進(jìn)行分解止后,根據(jù)計(jì)算過(guò)程中的聚合操作點(diǎn)對(duì)任務(wù)進(jìn)行邏輯切分瞎惫,任務(wù)被切分成一個(gè)個(gè)的stage,每個(gè)stage都可以有一個(gè)或者多個(gè)Task組成译株,Task是可以并發(fā)執(zhí)行的瓜喇,從而提升整個(gè)計(jì)算過(guò)程的并行能力;另一方面歉糜,為減少數(shù)據(jù)處理過(guò)程中的中間結(jié)果寫文件操作欠橘,Spark、Presto等計(jì)算引擎盡量使用計(jì)算節(jié)點(diǎn)的內(nèi)存對(duì)數(shù)據(jù)進(jìn)行緩存现恼,從而提高整個(gè)數(shù)據(jù)過(guò)程的效率和系統(tǒng)吞吐能力肃续。

[圖片上傳失敗...(image-68d00e-1625710771408)]

圖2. Hadoop體系結(jié)構(gòu)示意

2) 第二階段:lambda架構(gòu)。隨著數(shù)據(jù)處理能力和處理需求的不斷變化叉袍,越來(lái)越多的用戶發(fā)現(xiàn)始锚,批處理模式無(wú)論如何提升性能,也無(wú)法滿足一些實(shí)時(shí)性要求高的處理場(chǎng)景喳逛,流式計(jì)算引擎應(yīng)運(yùn)而生瞧捌,例如Storm、Spark Streaming润文、Flink等姐呐。然而,隨著越來(lái)越多的應(yīng)用上線典蝌,大家發(fā)現(xiàn)曙砂,其實(shí)批處理和流計(jì)算配合使用,才能滿足大部分應(yīng)用需求骏掀;而對(duì)于用戶而言鸠澈,其實(shí)他們并不關(guān)心底層的計(jì)算模型是什么柱告,用戶希望無(wú)論是批處理還是流計(jì)算,都能基于統(tǒng)一的數(shù)據(jù)模型來(lái)返回處理結(jié)果笑陈,于是Lambda架構(gòu)被提出际度,如下圖所示。(為了省事涵妥,lambda架構(gòu)和Kappa架構(gòu)圖均來(lái)自于網(wǎng)絡(luò))

image.png

圖3. Lambda架構(gòu)示意

Lambda架構(gòu)的核心理念是“流批一體”乖菱,如上圖所示,整個(gè)數(shù)據(jù)流向自左向右流入平臺(tái)蓬网。進(jìn)入平臺(tái)后一分為二块请,一部分走批處理模式,一部分走流式計(jì)算模式拳缠。無(wú)論哪種計(jì)算模式,最終的處理結(jié)果都通過(guò)服務(wù)層對(duì)應(yīng)用提供贸弥,確保訪問(wèn)的一致性窟坐。

3) 第三階段:Kappa架構(gòu)。Lambda架構(gòu)解決了應(yīng)用讀取數(shù)據(jù)的一致性問(wèn)題徽缚,但是“流批分離”的處理鏈路增大了研發(fā)的復(fù)雜性贮乳。因此勃痴,有人就提出能不能用一套系統(tǒng)來(lái)解決所有問(wèn)題。目前比較流行的做法就是基于流計(jì)算來(lái)做徙菠。流計(jì)算天然的分布式特征,注定了他的擴(kuò)展性更好郁岩。通過(guò)加大流計(jì)算的并發(fā)性婿奔,加大流式數(shù)據(jù)的“時(shí)間窗口”,來(lái)統(tǒng)一批處理與流式處理兩種計(jì)算模式问慎。

image.png

圖4. Kappa架構(gòu)示意

綜上萍摊,從傳統(tǒng)的hadoop架構(gòu)往lambda架構(gòu),從lambda架構(gòu)往Kappa架構(gòu)的演進(jìn)如叼,大數(shù)據(jù)平臺(tái)基礎(chǔ)架構(gòu)的演進(jìn)逐漸囊括了應(yīng)用所需的各類數(shù)據(jù)處理能力冰木,大數(shù)據(jù)平臺(tái)逐漸演化成了一個(gè)企業(yè)/組織的全量數(shù)據(jù)處理平臺(tái)。當(dāng)前的企業(yè)實(shí)踐中笼恰,除了關(guān)系型數(shù)據(jù)庫(kù)依托于各個(gè)獨(dú)立的業(yè)務(wù)系統(tǒng)踊沸;其余的數(shù)據(jù),幾乎都被考慮納入大數(shù)據(jù)平臺(tái)來(lái)進(jìn)行統(tǒng)一的處理社证。然而逼龟,目前的大數(shù)據(jù)平臺(tái)基礎(chǔ)架構(gòu),都將視角鎖定在了存儲(chǔ)和計(jì)算追葡,而忽略了對(duì)于數(shù)據(jù)的資產(chǎn)化管理审轮,這恰恰是數(shù)據(jù)湖作為新一代的大數(shù)據(jù)基礎(chǔ)設(shè)施所重點(diǎn)關(guān)注的方向之一肥哎。

大數(shù)據(jù)基礎(chǔ)架構(gòu)的演進(jìn),其實(shí)反應(yīng)了一點(diǎn):在企業(yè)/組織內(nèi)部疾渣,數(shù)據(jù)是一類重要資產(chǎn)已經(jīng)成為了共識(shí)篡诽;為了更好的利用數(shù)據(jù),企業(yè)/組織需要對(duì)數(shù)據(jù)資產(chǎn) 1)進(jìn)行長(zhǎng)期的原樣存儲(chǔ)榴捡;2)進(jìn)行有效管理與集中治理杈女;3)提供多模式的計(jì)算能力滿足處理需求;4)以及面向業(yè)務(wù)吊圾,提供統(tǒng)一的數(shù)據(jù)視圖达椰、數(shù)據(jù)模型與數(shù)據(jù)處理結(jié)果。數(shù)據(jù)湖就是在這個(gè)大背景下產(chǎn)生的项乒,除了大數(shù)據(jù)平臺(tái)所擁有的各類基礎(chǔ)能力之外啰劲,數(shù)據(jù)湖更強(qiáng)調(diào)對(duì)于數(shù)據(jù)的管理、治理和資產(chǎn)化能力檀何。落到具體的實(shí)現(xiàn)上蝇裤,數(shù)據(jù)湖需要包括一系列的數(shù)據(jù)管理組件,包括:1)數(shù)據(jù)接入频鉴;2)數(shù)據(jù)搬遷栓辜;3)數(shù)據(jù)治理;4)質(zhì)量管理垛孔;5)資產(chǎn)目錄藕甩;6)訪問(wèn)控制;7)任務(wù)管理周荐;8)任務(wù)編排狭莱;9)元數(shù)據(jù)管理等。如下圖所示概作,給出了一個(gè)數(shù)據(jù)湖系統(tǒng)的參考架構(gòu)贩毕。對(duì)于一個(gè)典型的數(shù)據(jù)湖而言,它與大數(shù)據(jù)平臺(tái)相同的地方在于它也具備處理超大規(guī)模數(shù)據(jù)所需的存儲(chǔ)和計(jì)算能力仆嗦,能提供多模式的數(shù)據(jù)處理能力辉阶;增強(qiáng)點(diǎn)在于數(shù)據(jù)湖提供了更為完善的數(shù)據(jù)管理能力,具體體現(xiàn)在:

1) 更強(qiáng)大的數(shù)據(jù)接入能力瘩扼。數(shù)據(jù)接入能力體現(xiàn)在對(duì)于各類外部異構(gòu)數(shù)據(jù)源的定義管理能力谆甜,以及對(duì)于外部數(shù)據(jù)源相關(guān)數(shù)據(jù)的抽取遷移能力,抽取遷移的數(shù)據(jù)包括外部數(shù)據(jù)源的元數(shù)據(jù)與實(shí)際存儲(chǔ)的數(shù)據(jù)集绰。

2) 更強(qiáng)大的數(shù)據(jù)管理能力规辱。管理能力具體又可分為基本管理能力和擴(kuò)展管理能力≡匝啵基本管理能力包括對(duì)各類元數(shù)據(jù)的管理罕袋、數(shù)據(jù)訪問(wèn)控制改淑、數(shù)據(jù)資產(chǎn)管理,是一個(gè)數(shù)據(jù)湖系統(tǒng)所必須的浴讯,后面我們會(huì)在“各廠商的數(shù)據(jù)湖解決方案”一節(jié)相信討論各個(gè)廠商對(duì)于基本管理能力的支持方式朵夏。擴(kuò)展管理能力包括任務(wù)管理、流程編排以及與數(shù)據(jù)質(zhì)量榆纽、數(shù)據(jù)治理相關(guān)的能力仰猖。任務(wù)管理和流程編排主要用來(lái)管理、編排奈籽、調(diào)度饥侵、監(jiān)測(cè)在數(shù)據(jù)湖系統(tǒng)中處理數(shù)據(jù)的各類任務(wù),通常情況下衣屏,數(shù)據(jù)湖構(gòu)建者會(huì)通過(guò)購(gòu)買/研制定制的數(shù)據(jù)集成或數(shù)據(jù)開(kāi)發(fā)子系統(tǒng)/模塊來(lái)提供此類能力躏升,定制的系統(tǒng)/模塊可以通過(guò)讀取數(shù)據(jù)湖的相關(guān)元數(shù)據(jù),來(lái)實(shí)現(xiàn)與數(shù)據(jù)湖系統(tǒng)的融合狼忱。而數(shù)據(jù)質(zhì)量和數(shù)據(jù)治理則是更為復(fù)雜的問(wèn)題膨疏,一般情況下,數(shù)據(jù)湖系統(tǒng)不會(huì)直接提供相關(guān)功能藕赞,但是會(huì)開(kāi)放各類接口或者元數(shù)據(jù),供有能力的企業(yè)/組織與已有的數(shù)據(jù)治理軟件集成或者做定制開(kāi)發(fā)卖局。

3) 可共享的元數(shù)據(jù)斧蜕。數(shù)據(jù)湖中的各類計(jì)算引擎會(huì)與數(shù)據(jù)湖中的數(shù)據(jù)深度融合,而融合的基礎(chǔ)就是數(shù)據(jù)湖的元數(shù)據(jù)砚偶。好的數(shù)據(jù)湖系統(tǒng)批销,計(jì)算引擎在處理數(shù)據(jù)時(shí),能從元數(shù)據(jù)中直接獲取數(shù)據(jù)存儲(chǔ)位置染坯、數(shù)據(jù)格式均芽、數(shù)據(jù)模式、數(shù)據(jù)分布等信息单鹿,然后直接進(jìn)行數(shù)據(jù)處理掀宋,而無(wú)需進(jìn)行人工/編程干預(yù)。更進(jìn)一步仲锄,好的數(shù)據(jù)湖系統(tǒng)還可以對(duì)數(shù)據(jù)湖中的數(shù)據(jù)進(jìn)行訪問(wèn)控制劲妙,控制的力度可以做到“庫(kù)表列行”等不同級(jí)別。

image.png

圖5. 數(shù)據(jù)湖組件參考架構(gòu)

還有一點(diǎn)應(yīng)該指出的是儒喊,上圖的“集中式存儲(chǔ)”更多的是業(yè)務(wù)概念上的集中镣奋,本質(zhì)上是希望一個(gè)企業(yè)/組織內(nèi)部的數(shù)據(jù)能在一個(gè)明確統(tǒng)一的地方進(jìn)行沉淀。事實(shí)上怀愧,數(shù)據(jù)湖的存儲(chǔ)應(yīng)該是一類可按需擴(kuò)展的分布式文件系統(tǒng)侨颈,大多數(shù)數(shù)據(jù)湖實(shí)踐中也是推薦采用S3/OSS/OBS/HDFS等分布式系統(tǒng)作為數(shù)據(jù)湖的統(tǒng)一存儲(chǔ)余赢。

我們可以再切換到數(shù)據(jù)維度,從數(shù)據(jù)生命周期的視角來(lái)看待數(shù)據(jù)湖對(duì)于數(shù)據(jù)的處理方式哈垢,數(shù)據(jù)在數(shù)據(jù)湖中的整個(gè)生命周期如圖6所示妻柒。理論上,一個(gè)管理完善的數(shù)據(jù)湖中的數(shù)據(jù)會(huì)永久的保留原始數(shù)據(jù)温赔,同時(shí)過(guò)程數(shù)據(jù)會(huì)不斷的完善蛤奢、演化,以滿足業(yè)務(wù)的需要陶贼。

image.png

圖6. 數(shù)據(jù)湖中的數(shù)據(jù)生命周期示意

四啤贩、各廠商的數(shù)據(jù)湖解決方案

數(shù)據(jù)湖作為當(dāng)前的一個(gè)風(fēng)口,各大云廠商紛紛推出自己的數(shù)據(jù)湖解決方案及相關(guān)產(chǎn)品拜秧。本節(jié)將分析各個(gè)主流廠商推出的數(shù)據(jù)湖解決方案痹屹,并將其映射到數(shù)據(jù)湖參考架構(gòu)上,幫助大家理解各類方案的優(yōu)缺點(diǎn)枉氮。

4.1 AWS數(shù)據(jù)湖解決方案

image.png

圖7. AWS數(shù)據(jù)湖解決方案

圖7是AWS推薦的數(shù)據(jù)湖解決方案志衍。整個(gè)方案基于AWS Lake Formation構(gòu)建,AWS Lake Formation本質(zhì)上是一個(gè)管理性質(zhì)的組件聊替,它與其他AWS服務(wù)互相配合楼肪,來(lái)完成整個(gè)企業(yè)級(jí)數(shù)據(jù)湖構(gòu)建功能。上圖自左向右惹悄,體現(xiàn)了數(shù)據(jù)流入春叫、數(shù)據(jù)沉淀、數(shù)據(jù)計(jì)算泣港、數(shù)據(jù)應(yīng)用四個(gè)步驟暂殖。我們進(jìn)一步來(lái)看其關(guān)鍵點(diǎn):

1) 數(shù)據(jù)流入。

數(shù)據(jù)流入是整個(gè)數(shù)據(jù)湖構(gòu)建的起始当纱,包括元數(shù)據(jù)的流入和業(yè)務(wù)數(shù)據(jù)流入兩個(gè)部分呛每。元數(shù)據(jù)流入包括數(shù)據(jù)源創(chuàng)建、元數(shù)據(jù)抓取兩步坡氯,最終會(huì)形成數(shù)據(jù)資源目錄晨横,并生成對(duì)應(yīng)的安全設(shè)置與訪問(wèn)控制策略。解決方案提供專門的組件箫柳,獲取外部數(shù)據(jù)源的相關(guān)元信息颓遏,該組件能連接外部數(shù)據(jù)源、檢測(cè)數(shù)據(jù)格式和模式(schema)滞时,并在對(duì)應(yīng)的數(shù)據(jù)資源目錄中創(chuàng)建屬于數(shù)據(jù)湖的元數(shù)據(jù)叁幢。業(yè)務(wù)數(shù)據(jù)的流入是通過(guò)ETL來(lái)完成的。

在具體的產(chǎn)品形式上坪稽,元數(shù)據(jù)抓取曼玩、ETL和數(shù)據(jù)準(zhǔn)備AWS將其單獨(dú)抽象出來(lái)鳞骤,形成了一個(gè)產(chǎn)品叫AWS GLUE。AWS GLUE與AWS Lake Formation共享同一個(gè)數(shù)據(jù)資源目錄黍判,在AWS GLUE官網(wǎng)文檔上明確指出:“Each AWS account has one AWS Glue Data Catalog per AWS region”豫尽。

對(duì)于異構(gòu)數(shù)據(jù)源的支持。AWS提供的數(shù)據(jù)湖解決方案顷帖,支持S3美旧、AWS關(guān)系型數(shù)據(jù)庫(kù)、AWS NoSQL數(shù)據(jù)庫(kù)贬墩,AWS利用GLUE榴嗅、EMR、Athena等組件支持?jǐn)?shù)據(jù)的自由流動(dòng)陶舞。

2) 數(shù)據(jù)沉淀嗽测。

采用Amazon S3作為整個(gè)數(shù)據(jù)湖的集中存儲(chǔ),按需擴(kuò)展/按使用量付費(fèi)肿孵。

3) 數(shù)據(jù)計(jì)算唠粥。

整個(gè)解決方案利用AWS GLUE來(lái)進(jìn)行基本的數(shù)據(jù)處理。GLUE基本的計(jì)算形式是各類批處理模式的ETL任務(wù)停做,任務(wù)的出發(fā)方式分為手動(dòng)觸發(fā)晤愧、定時(shí)觸發(fā)、事件觸發(fā)三種蛉腌。不得不說(shuō)官份,AWS的各類服務(wù)在生態(tài)上實(shí)現(xiàn)的非常好,事件觸發(fā)模式上眉抬,可以利用AWS Lambda進(jìn)行擴(kuò)展開(kāi)發(fā)贯吓,同時(shí)觸發(fā)一個(gè)或多個(gè)任務(wù)懈凹,極大的提升了任務(wù)觸發(fā)的定制開(kāi)發(fā)能力蜀变;同時(shí)介评,各類ETL任務(wù)库北,可以通過(guò)CloudWatch進(jìn)行很好的監(jiān)控。

4) 數(shù)據(jù)應(yīng)用们陆。

在提供基本的批處理計(jì)算模式之外寒瓦,AWS通過(guò)各類外部計(jì)算引擎,來(lái)提供豐富的計(jì)算模式支持坪仇,例如通過(guò)Athena/Redshift來(lái)提供基于SQL的交互式批處理能力杂腰;通過(guò)EMR來(lái)提供各類基于Spark的計(jì)算能力,包括Spark能提供的流計(jì)算能力和機(jī)器學(xué)習(xí)能力椅文。

5) 權(quán)限管理喂很。

AWS的數(shù)據(jù)湖解決方案通過(guò)Lake Formation來(lái)提供相對(duì)完善的權(quán)限管理惜颇,粒度包括“庫(kù)-表-列”。但是少辣,有一點(diǎn)例外的是凌摄,GLUE訪問(wèn)Lake Formation時(shí),粒度只有“庫(kù)-表”兩級(jí)漓帅;這也從另一個(gè)側(cè)面說(shuō)明锨亏,GLUE和Lake Formation的集成是更為緊密的,GLUE對(duì)于Lake Formation中的數(shù)據(jù)有更大的訪問(wèn)權(quán)限忙干。

Lake Formation的權(quán)限進(jìn)一步可以細(xì)分為數(shù)據(jù)資源目錄訪問(wèn)權(quán)限和底層數(shù)據(jù)訪問(wèn)權(quán)限器予,分別對(duì)應(yīng)元數(shù)據(jù)與實(shí)際存儲(chǔ)的數(shù)據(jù)。實(shí)際存儲(chǔ)數(shù)據(jù)的訪問(wèn)權(quán)限又進(jìn)一步分為數(shù)據(jù)存取權(quán)限和數(shù)據(jù)存儲(chǔ)訪問(wèn)權(quán)限豪直。數(shù)據(jù)存取權(quán)限類似于數(shù)據(jù)庫(kù)中對(duì)于庫(kù)表的訪問(wèn)權(quán)限劣摇,數(shù)據(jù)存儲(chǔ)權(quán)限則進(jìn)一步細(xì)化了對(duì)于S3中具體目錄的訪問(wèn)權(quán)限(分為顯示和隱式兩種)。如圖8所示弓乙,用戶A在只有數(shù)據(jù)存取的權(quán)限下末融,無(wú)法創(chuàng)建位于S3指定bucket下的表。

個(gè)人認(rèn)為這進(jìn)一步體現(xiàn)了數(shù)據(jù)湖需要支持各種不同的存儲(chǔ)引擎暇韧,未來(lái)的數(shù)據(jù)湖可能不只S3/OSS/OBS/HDFS一類核心存儲(chǔ)勾习,可能根據(jù)應(yīng)用的訪問(wèn)需求,納入更多類型的存儲(chǔ)引擎懈玻,例如巧婶,S3存儲(chǔ)原始數(shù)據(jù),NoSQL存儲(chǔ)處理過(guò)后適合以“鍵值”模式訪問(wèn)的數(shù)據(jù)涂乌,OLAP引擎存儲(chǔ)需要實(shí)時(shí)出各類報(bào)表/adhoc查詢的數(shù)據(jù)艺栈。雖然當(dāng)前各類材料都在強(qiáng)調(diào)數(shù)據(jù)湖與數(shù)據(jù)倉(cāng)庫(kù)的不同;但是湾盒,從本質(zhì)上湿右,數(shù)據(jù)湖更應(yīng)該是一類融合的數(shù)據(jù)管理思想的具體實(shí)現(xiàn),“湖倉(cāng)一體化”也很可能是未來(lái)的一個(gè)發(fā)展趨勢(shì)罚勾。

image.png

圖8. AWS數(shù)據(jù)湖解決方案權(quán)限分離示意

綜上毅人,AWS數(shù)據(jù)湖方案成熟度高,特別是元數(shù)據(jù)管理尖殃、權(quán)限管理上考慮充分丈莺,打通了異構(gòu)數(shù)據(jù)源與各類計(jì)算引擎的上下游關(guān)系,讓數(shù)據(jù)能夠自由“移動(dòng)”起來(lái)送丰。在流計(jì)算和機(jī)器學(xué)習(xí)上缔俄,AWS的解決方案也比較完善。流計(jì)算方面AWS推出了專門的流計(jì)算組件Kinesis,Kinesis中的Kinesis data Firehose服務(wù)可以創(chuàng)建一個(gè)完全被托管的數(shù)據(jù)分發(fā)服務(wù)俐载,通過(guò)Kinesis data Stream實(shí)時(shí)處理的數(shù)據(jù)铐懊,可以借助Firehose方便的寫入S3中,并支持相應(yīng)的格式轉(zhuǎn)換瞎疼,如將JSON轉(zhuǎn)換成Parquet格式科乎。AWS整個(gè)方案最牛的地方還在與Kinesis可以訪問(wèn)GLUE中的元數(shù)據(jù),這一點(diǎn)充分體現(xiàn)了AWS數(shù)據(jù)湖解決方案在生態(tài)上的完備性贼急。同樣茅茂,在機(jī)器學(xué)習(xí)方面,AWS提供了SageMaker服務(wù)太抓,SageMaker可以讀取S3中的訓(xùn)練數(shù)據(jù)空闲,并將訓(xùn)練好的模型回寫至S3中。但是走敌,有一點(diǎn)需要指出的是碴倾,在AWS的數(shù)據(jù)湖解決方案中,流計(jì)算和機(jī)器學(xué)習(xí)并不是固定捆綁的掉丽,只是作為計(jì)算能力擴(kuò)展跌榔,能方便的集成。

最后捶障,讓我們回到圖6的數(shù)據(jù)湖組件參考架構(gòu)僧须,看看AWS的數(shù)據(jù)湖解決方案的組件覆蓋情況,參見(jiàn)圖9项炼。

image.png

圖9. AWS 數(shù)據(jù)湖解決方案在參考架構(gòu)中的映射

綜上担平,AWS的數(shù)據(jù)湖解決方案覆蓋了除質(zhì)量管理和數(shù)據(jù)治理的所有功能。其實(shí)質(zhì)量管理和數(shù)據(jù)治理這個(gè)工作和企業(yè)的組織結(jié)構(gòu)锭部、業(yè)務(wù)類型強(qiáng)相關(guān)暂论,需要做大量的定制開(kāi)發(fā)工作,因此通用解決方案不囊括這塊內(nèi)容拌禾,也是可以理解的取胎。事實(shí)上,現(xiàn)在也有比較優(yōu)秀的開(kāi)源項(xiàng)目支持這個(gè)項(xiàng)目蹋砚,比如Apache Griffin扼菠,如果對(duì)質(zhì)量管理和數(shù)據(jù)治理有強(qiáng)訴求摄杂,可以自行定制開(kāi)發(fā)坝咐。

4.2 華為數(shù)據(jù)湖解決方案

image.png

圖10.華為數(shù)據(jù)湖解決方案

華為的數(shù)據(jù)湖解決方案相關(guān)信息來(lái)自華為官網(wǎng)。目前官網(wǎng)可見(jiàn)的相關(guān)產(chǎn)品包括數(shù)據(jù)湖探索(Data Lake Insight析恢,DLI)和智能數(shù)據(jù)湖運(yùn)營(yíng)平臺(tái)(DAYU)墨坚。其中DLI相當(dāng)于是AWS的Lake Formation、GLUE、Athena泽篮、EMR(Flink&Spark)的集合盗尸。官網(wǎng)上沒(méi)找到關(guān)于DLI的整體架構(gòu)圖,我根據(jù)自己的理解帽撑,嘗試畫了一個(gè)泼各,主要是和AWS的解決方案有一個(gè)對(duì)比,所以形式上盡量一致亏拉,如果有非常了解華為DLI的同學(xué)扣蜻,也請(qǐng)不吝賜教。

華為的數(shù)據(jù)湖解決方案比較完整及塘,DLI承擔(dān)了所有的數(shù)據(jù)湖構(gòu)建莽使、數(shù)據(jù)處理、數(shù)據(jù)管理笙僚、數(shù)據(jù)應(yīng)用的核心功能芳肌。DLI最大的特色是在于分析引擎的完備性,包括基于SQL的交互式分析以及基于Spark+Flink的流批一體處理引擎肋层。在核心存儲(chǔ)引擎上亿笤,DLI依然通過(guò)內(nèi)置的OBS來(lái)提供,和AWS S3的能力基本對(duì)標(biāo)栋猖。華為數(shù)據(jù)湖解決方案在上下游生態(tài)上做的比AWS相對(duì)完善责嚷,對(duì)于外部數(shù)據(jù)源,幾乎支持所有目前華為云上提供的數(shù)據(jù)源服務(wù)掂铐。

DLI可以與華為的CDM(云數(shù)據(jù)遷移服務(wù))和DIS(數(shù)據(jù)接入服務(wù))對(duì)接:1)借助DIS罕拂,DLI可以定義各類數(shù)據(jù)點(diǎn),這些點(diǎn)可以在Flink作業(yè)中被使用全陨,做為source或者sink爆班;2)借助CDM,DLI甚至能接入IDC辱姨、第三方云服務(wù)的數(shù)據(jù)柿菩。

為了更好的支持?jǐn)?shù)據(jù)集成、數(shù)據(jù)開(kāi)發(fā)雨涛、數(shù)據(jù)治理枢舶、質(zhì)量管理等數(shù)據(jù)湖高級(jí)功能,華為云提供了DAYU平臺(tái)替久。DAYU平臺(tái)是華為數(shù)據(jù)湖治理運(yùn)營(yíng)方法論的落地實(shí)現(xiàn)凉泄。DAYU涵蓋了整個(gè)數(shù)據(jù)湖治理的核心流程,并對(duì)其提供了相應(yīng)的工具支持蚯根;甚至在華為的官方文檔中后众,給出了數(shù)據(jù)治理組織的構(gòu)建建議。DAYU的數(shù)據(jù)治理方法論的落地實(shí)現(xiàn)如圖11所示(來(lái)自華為云官網(wǎng))去件。

image.png

圖11 DAYU數(shù)據(jù)治理方法論流程

可以看到乍构,本質(zhì)上DAYU數(shù)據(jù)治理的方法論其實(shí)是傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)治理方法論在數(shù)據(jù)湖基礎(chǔ)設(shè)施上的延伸:從數(shù)據(jù)模型來(lái)看绘迁,依然包括貼源層修噪、多源整合層巡验、明細(xì)數(shù)據(jù)層辫封,這點(diǎn)與數(shù)據(jù)倉(cāng)庫(kù)完全一致砖第。根據(jù)數(shù)據(jù)模型和指標(biāo)模型會(huì)生成質(zhì)量規(guī)則和轉(zhuǎn)換模型荷腊,DAYU會(huì)和DLI對(duì)接绍移,直接調(diào)用DLI提供的相關(guān)數(shù)據(jù)處理服務(wù)痊臭,完成數(shù)據(jù)治理。華為云整個(gè)的數(shù)據(jù)湖解決方案登夫,完整覆蓋了數(shù)據(jù)處理的生命周期广匙,并且明確支持了數(shù)據(jù)治理,并提供了基于模型和指標(biāo)的數(shù)據(jù)治理流程工具恼策,在華為云的數(shù)據(jù)湖解決方案中逐漸開(kāi)始往“湖倉(cāng)一體化”方向演進(jìn)鸦致。

4.3 阿里云數(shù)據(jù)湖解決方案

阿里云上數(shù)據(jù)類產(chǎn)品眾多,因?yàn)楸救四壳霸跀?shù)據(jù)BU涣楷,所以本節(jié)方案將關(guān)注在如何使用數(shù)據(jù)庫(kù)BU的產(chǎn)品來(lái)構(gòu)建數(shù)據(jù)湖分唾,其他云上產(chǎn)品會(huì)略有涉及。阿里云的基于數(shù)據(jù)庫(kù)產(chǎn)品的數(shù)據(jù)湖解決方案更加聚焦狮斗,主打數(shù)據(jù)湖分析和聯(lián)邦分析兩個(gè)場(chǎng)景绽乔。阿里云數(shù)據(jù)湖解決方案如圖12所示。

image.png

圖12. 阿里云數(shù)據(jù)湖解決方案

整個(gè)方案依然采用OSS作為數(shù)據(jù)湖的集中存儲(chǔ)碳褒。在數(shù)據(jù)源的支持上折砸,目前也支持所有的阿里云數(shù)據(jù)庫(kù),包括OLTP沙峻、OLAP和NoSQL等各類數(shù)據(jù)庫(kù)睦授。核心關(guān)鍵點(diǎn)如下:

1) 數(shù)據(jù)接入與搬遷。在建湖過(guò)程中摔寨,DLA的Formation組件具備元數(shù)據(jù)發(fā)現(xiàn)和一鍵建湖的能力去枷,在本文寫作之時(shí),目前“一鍵建湖”還只支持全量建湖是复,但是基于binlog的增量建湖已經(jīng)在開(kāi)發(fā)中了删顶,預(yù)計(jì)近期上線。增量建湖能力會(huì)極大的增加數(shù)據(jù)湖中數(shù)據(jù)的實(shí)時(shí)性淑廊,并將對(duì)源端業(yè)務(wù)數(shù)據(jù)庫(kù)的壓力降到最下逗余。這里需要注意的是,DLA Formation是一個(gè)內(nèi)部組件蒋纬,對(duì)外并沒(méi)有暴露猎荠。

2) 數(shù)據(jù)資源目錄。DLA提供Meta data catalog組件對(duì)于數(shù)據(jù)湖中的數(shù)據(jù)資產(chǎn)進(jìn)行統(tǒng)一的管理蜀备,無(wú)論數(shù)據(jù)是在“湖中”還是在“湖外”关摇。Meta data catalog也是聯(lián)邦分析的統(tǒng)一元數(shù)據(jù)入口。

3) 在內(nèi)置計(jì)算引擎上碾阁,DLA提供了SQL計(jì)算引擎和Spark計(jì)算引擎兩種输虱。無(wú)論是SQL還是Spark引擎,都和Meta data catalog深度集成脂凶,能方便的獲取元數(shù)據(jù)信息宪睹。基于Spark的能力蚕钦,DLA解決方案支持批處理亭病、流計(jì)算和機(jī)器學(xué)習(xí)等計(jì)算模式。

4) 在外圍生態(tài)上嘶居,除了支持各類異構(gòu)數(shù)據(jù)源做數(shù)據(jù)接入與匯聚之外罪帖,在對(duì)外訪問(wèn)能力上,DLA與云原生數(shù)據(jù)倉(cāng)庫(kù)(原ADB)深度整合邮屁。一方面整袁,DLA處理的結(jié)果可之際推送至ADB中,滿足實(shí)時(shí)佑吝、交互式坐昙、ad hoc復(fù)雜查詢;另一方面芋忿,ADB里的數(shù)據(jù)也可以借助外表功能炸客,很方便的進(jìn)行數(shù)據(jù)回流至OSS中「旮郑基于DLA嚷量,阿里云上各類異構(gòu)數(shù)據(jù)源可以完全被打通,數(shù)據(jù)自由流動(dòng)逆趣。

5) 在數(shù)據(jù)集成和開(kāi)發(fā)上蝶溶,阿里云的數(shù)據(jù)湖解決方案提供兩種選擇:一種是采用dataworks完成;另一種是采用DMS來(lái)完成宣渗。無(wú)論是選擇哪種抖所,都能對(duì)外提供可視化的流程編排、任務(wù)調(diào)度痕囱、任務(wù)管理能力田轧。在數(shù)據(jù)生命周期管理上,dataworks的數(shù)據(jù)地圖能力相對(duì)更加成熟鞍恢。

6) 在數(shù)據(jù)管理和數(shù)據(jù)安全上傻粘,DMS提供了強(qiáng)大的能力每窖。DMS的數(shù)據(jù)管理粒度分為“庫(kù)-表-列-行”,完善的支持企業(yè)級(jí)的數(shù)據(jù)安全管控需求弦悉。除了權(quán)限管理之外窒典,DMS更精細(xì)的地方是把原來(lái)基于數(shù)據(jù)庫(kù)的devops理念擴(kuò)展到了數(shù)據(jù)湖,使得數(shù)據(jù)湖的運(yùn)維稽莉、開(kāi)發(fā)更加精細(xì)化瀑志。

進(jìn)一步細(xì)化整個(gè)數(shù)據(jù)湖方案的數(shù)據(jù)應(yīng)用架構(gòu),如下圖所示污秆。

image.png

圖13. 阿里云數(shù)據(jù)湖數(shù)據(jù)應(yīng)用架構(gòu)

自左向右從數(shù)據(jù)的流向來(lái)看劈猪,數(shù)據(jù)生產(chǎn)者產(chǎn)生各類數(shù)據(jù)(云下/云上/其他云),利用各類工具良拼,上傳至各類通用/標(biāo)準(zhǔn)數(shù)據(jù)源战得,包括OSS/HDFS/DB等。針對(duì)各類數(shù)據(jù)源庸推,DLA通過(guò)數(shù)據(jù)發(fā)現(xiàn)贡避、數(shù)據(jù)接入、數(shù)據(jù)遷移等能力予弧,完整建湖操作刮吧。對(duì)于“入湖”的數(shù)據(jù),DLA提供基于SQL和Spark的數(shù)據(jù)處理能力掖蛤,并可以基于Dataworks/DMS杀捻,對(duì)外提供可視化的數(shù)據(jù)集成和數(shù)據(jù)開(kāi)發(fā)能力;在對(duì)外應(yīng)用服務(wù)能力上蚓庭,DLA提供標(biāo)準(zhǔn)化的JDBC接口致讥,可以直接對(duì)接各類報(bào)表工具、大屏展示功能等器赞。阿里云的DLA的特色在于背靠整個(gè)阿里云數(shù)據(jù)庫(kù)生態(tài)垢袱,包括OLTP、OLAP港柜、NoSQL等各類數(shù)據(jù)庫(kù)请契,對(duì)外提供基于SQL的數(shù)據(jù)處理能力,對(duì)于傳統(tǒng)企業(yè)基于數(shù)據(jù)庫(kù)的開(kāi)發(fā)技術(shù)棧而言夏醉,轉(zhuǎn)型成本相對(duì)較低爽锥,學(xué)習(xí)曲線比較平緩。

阿里云的DLA解決方案的另一個(gè)特色在于“基于云原生的湖倉(cāng)一體化”畔柔。傳統(tǒng)的企業(yè)級(jí)數(shù)據(jù)倉(cāng)庫(kù)在大數(shù)據(jù)時(shí)代的今天氯夷,在各類報(bào)表應(yīng)用上依然是無(wú)法替代的;但是數(shù)倉(cāng)無(wú)法滿足大數(shù)據(jù)時(shí)代的數(shù)據(jù)分析處理的靈活性需求靶擦;因此腮考,我們推薦數(shù)據(jù)倉(cāng)庫(kù)應(yīng)該作為數(shù)據(jù)湖的上層應(yīng)用存在:即數(shù)據(jù)湖是原始業(yè)務(wù)數(shù)據(jù)在一個(gè)企業(yè)/組織中唯一官方數(shù)據(jù)存儲(chǔ)地雇毫;數(shù)據(jù)湖根據(jù)各類業(yè)務(wù)應(yīng)用需求,將原始數(shù)據(jù)進(jìn)行加工處理踩蔚,形成可再次利用的中間結(jié)果棚放;當(dāng)中間結(jié)果的數(shù)據(jù)模式(Schema)相對(duì)固定后,DLA可以將中間結(jié)果推送至數(shù)據(jù)倉(cāng)庫(kù)寂纪,供企業(yè)/組織開(kāi)展基于數(shù)倉(cāng)的業(yè)務(wù)應(yīng)用席吴。阿里云在提供DLA的同時(shí)赌结,還提供了云原生數(shù)倉(cāng)(原ADB)捞蛋,DLA和云原生數(shù)倉(cāng)在以下兩點(diǎn)上深度融合。

1) 使用同源的SQL解析引擎柬姚。DLA的SQL與ADB的SQL語(yǔ)法上完全兼容拟杉,這意味著開(kāi)發(fā)者使用一套技術(shù)棧即能同時(shí)開(kāi)發(fā)數(shù)據(jù)湖應(yīng)用和數(shù)倉(cāng)應(yīng)用。

2) 都內(nèi)置了對(duì)于OSS的訪問(wèn)支持量承。OSS直接作為DLA的原生存儲(chǔ)存在搬设;對(duì)于ADB而言,可以通過(guò)外部表的能力撕捍,很方便的訪問(wèn)OSS上的結(jié)構(gòu)化數(shù)據(jù)拿穴。借助外部表,數(shù)據(jù)可以自由的在DLA和ADB之間流轉(zhuǎn)忧风,做到真正的湖倉(cāng)一體默色。

DLA+ADB的組合真正做到了云原生的湖倉(cāng)一體(關(guān)于什么是云原生,不在本文的討論范疇)狮腿。本質(zhì)上腿宰,DLA可以看成一個(gè)能力擴(kuò)展的數(shù)據(jù)倉(cāng)庫(kù)貼源層。與傳統(tǒng)數(shù)倉(cāng)相比缘厢,該貼源層:(1)可以保存各類結(jié)構(gòu)化吃度、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù);(2)可以對(duì)接各類異構(gòu)數(shù)據(jù)源贴硫;(3)具備元數(shù)據(jù)發(fā)現(xiàn)椿每、管理、同步等能力英遭;(4)內(nèi)置的SQL/Spark計(jì)算引擎具備更強(qiáng)的數(shù)據(jù)處理能力拖刃,滿足多樣化的數(shù)據(jù)處理需求;(5)具備全量數(shù)據(jù)的全生命周期管理能力贪绘《夷担基于DLA+ADB的湖倉(cāng)一體化方案,將同時(shí)覆蓋“大數(shù)據(jù)平臺(tái)+數(shù)據(jù)倉(cāng)庫(kù)”的處理能力税灌。

image.png

DLA還有一個(gè)重要能力是構(gòu)建了一個(gè)“四通八達(dá)”的數(shù)據(jù)流動(dòng)體系均函,并以數(shù)據(jù)庫(kù)的體驗(yàn)對(duì)外提供能力亿虽,無(wú)論數(shù)據(jù)在云上還是云下,無(wú)論數(shù)據(jù)在組織內(nèi)部還是外部苞也;借助數(shù)據(jù)湖洛勉,各個(gè)系統(tǒng)之間的數(shù)據(jù)不再存在壁壘,可以自由的流進(jìn)流出如迟;更重要的是收毫,這種流動(dòng)是受監(jiān)管的,數(shù)據(jù)湖完整的記錄了數(shù)據(jù)的流動(dòng)情況殷勘。

4.4 Azure數(shù)據(jù)湖解決方案

Azure的數(shù)據(jù)湖解決方案包括數(shù)據(jù)湖存儲(chǔ)此再、接口層、資源調(diào)度與計(jì)算引擎層玲销,如圖15所示(來(lái)自Azure官網(wǎng))输拇。存儲(chǔ)層是基于Azure object Storage構(gòu)建的,依然是對(duì)結(jié)構(gòu)化贤斜、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)提供支撐策吠。接口層為WebHDFS,比較特別的是在Azure object Storage實(shí)現(xiàn)了HDFS的接口瘩绒,Azure把這個(gè)能力稱為“數(shù)據(jù)湖存儲(chǔ)上的多協(xié)議存取”猴抹。在資源調(diào)度上,Azure基于YARN實(shí)現(xiàn)锁荔。計(jì)算引擎上蟀给,Azure提供了U-SQL、hadoop和Spark等多種處理引擎堕战。

[圖片上傳失敗...(image-ecaf48-1625710771407)]

圖15. Azure Data lake analysis 架構(gòu)

Azure的特別之處是基于visual studio提供給了客戶開(kāi)發(fā)的支持坤溃。

1)開(kāi)發(fā)工具的支持,與visual studio的深度集成嘱丢;Azure推薦使用U-SQL作為數(shù)據(jù)湖分析應(yīng)用的開(kāi)發(fā)語(yǔ)言薪介。Visual studio為U-SQL提供了完備的開(kāi)發(fā)環(huán)境;同時(shí)越驻,為了降低分布式數(shù)據(jù)湖系統(tǒng)開(kāi)發(fā)的復(fù)雜性汁政,visual studio基于項(xiàng)目進(jìn)行封裝,在進(jìn)行U-SQL開(kāi)發(fā)時(shí)缀旁,可以創(chuàng)建“U-SQL database project”记劈,在此類項(xiàng)目中,利用visual studio并巍,可以很方便的進(jìn)行編碼與調(diào)試目木,同時(shí),也提供向?qū)О枚桑瑢㈤_(kāi)發(fā)好的U-SQL腳本發(fā)布到生成環(huán)境刽射。U-SQL支持Python军拟、R進(jìn)行擴(kuò)展,滿足定制開(kāi)發(fā)需求誓禁。

2)多計(jì)算引擎的適配:SQL, Apache Hadoop和Apache Spark懈息。這里的hadoop包括Azure提供的HDInsight(Azure托管的Hadoop服務(wù)),Spark包括Azure Databricks。

3)多種不同引擎任務(wù)之間的自動(dòng)轉(zhuǎn)換能力低千。微軟推薦U-SQL為數(shù)據(jù)湖的缺省開(kāi)發(fā)工具亿絮,并提供各類轉(zhuǎn)換工具,支持U-SQL腳本與Hive泻拦、Spark(HDSight&databricks)、Azure Data Factory data Flow之間的轉(zhuǎn)化纵竖。

4.5 小結(jié)

本文所討論的是數(shù)據(jù)湖的解決方案厕宗,不會(huì)涉及到任何云廠商的單個(gè)產(chǎn)品旭咽。我們從數(shù)據(jù)接入宗收、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)計(jì)算复唤、數(shù)據(jù)管理、應(yīng)用生態(tài)幾個(gè)方面总放,簡(jiǎn)單做了一個(gè)類似下表的總結(jié)呈宇。

image.png

出于篇幅關(guān)系,其實(shí)知名云廠商的數(shù)據(jù)湖解決方案還有谷歌和騰訊的间聊。這兩家從其官方網(wǎng)站上看攒盈,數(shù)據(jù)湖解決方案相對(duì)來(lái)講比較簡(jiǎn)單抵拘,也僅僅是一些概念上的闡述哎榴,推薦的落地方案是“oss+hadoop(EMR)”。其實(shí)數(shù)據(jù)湖不應(yīng)該從一個(gè)簡(jiǎn)單的技術(shù)平臺(tái)視角來(lái)看僵蛛,實(shí)現(xiàn)數(shù)據(jù)湖的方式也多種多樣尚蝌,評(píng)價(jià)一個(gè)數(shù)據(jù)湖解決方案是否成熟,關(guān)鍵應(yīng)該看其提供的數(shù)據(jù)管理能力充尉,具體包括但不限于元數(shù)據(jù)飘言、數(shù)據(jù)資產(chǎn)目錄、數(shù)據(jù)源驼侠、數(shù)據(jù)處理任務(wù)姿鸿、數(shù)據(jù)生命周期、數(shù)據(jù)治理倒源、權(quán)限管理等苛预;以及與外圍生態(tài)的對(duì)接打通能力。

五笋熬、典型的數(shù)據(jù)湖應(yīng)用案例

5.1 廣告數(shù)據(jù)分析

近年來(lái)热某,流量獲取的成本就越來(lái)越高,線上渠道獲客成本的成倍增長(zhǎng)讓各行各業(yè)都面臨著嚴(yán)峻的挑戰(zhàn)。在互聯(lián)網(wǎng)廣告成本不斷攀升的大背景下昔馋,以花錢買流量拉新為主要的經(jīng)營(yíng)策略必然行不通了筹吐。流量前端的優(yōu)化已成強(qiáng)弩之末,利用數(shù)據(jù)工具提高流量到站后的目標(biāo)轉(zhuǎn)化秘遏,精細(xì)化運(yùn)營(yíng)廣告投放的各個(gè)環(huán)節(jié)丘薛,才是改變現(xiàn)狀更為直接有效的方式。說(shuō)到底邦危,要提高廣告流量的轉(zhuǎn)化率榔袋,必須依靠大數(shù)據(jù)分析。

為了能夠提供更多的決策支撐依據(jù)铡俐,需要采取更多的埋點(diǎn)數(shù)據(jù)的收集和分析凰兑,包括但不限于渠道、投放時(shí)間审丘、投放人群吏够,以點(diǎn)擊率為數(shù)據(jù)指標(biāo)進(jìn)行數(shù)據(jù)分析,從而給出更好的滩报、更迅速的方案和建議锅知,實(shí)現(xiàn)高效率高產(chǎn)出。因此脓钾,面對(duì)廣告投放領(lǐng)域多維度售睹、多媒體、多廣告位等結(jié)構(gòu)化可训、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)采集昌妹、存儲(chǔ)、分析和決策建議等要求握截,數(shù)據(jù)湖分析產(chǎn)品解決方案在廣告主或者發(fā)布商進(jìn)行新一代技術(shù)選型中上受到了很熱烈的青睞飞崖。

DG是一家全球領(lǐng)先的企業(yè)國(guó)際化智能營(yíng)銷服務(wù)商,基于先進(jìn)的廣告技術(shù)谨胞、大數(shù)據(jù)和運(yùn)營(yíng)能力固歪,為客戶提供全球高質(zhì)量用戶獲取及流量變現(xiàn)服務(wù)。DG從成立之初就決定以公有云為基礎(chǔ)來(lái)構(gòu)建其IT基礎(chǔ)設(shè)施胯努,最初DG選擇了AWS云平臺(tái)牢裳,主要將其廣告數(shù)據(jù)在S3中以數(shù)據(jù)湖的形態(tài)進(jìn)行存放,通過(guò)Athena進(jìn)行交互式分析叶沛。然而隨著互聯(lián)網(wǎng)廣告的飛速發(fā)展蒲讯,廣告行業(yè)帶來(lái)了幾大挑戰(zhàn),移動(dòng)廣告的發(fā)布與追蹤系統(tǒng)必須解決幾個(gè)關(guān)鍵問(wèn)題:

1) 并發(fā)性與峰值問(wèn)題恬汁。在廣告行業(yè)伶椿,流量高峰時(shí)常出現(xiàn)辜伟,瞬間的點(diǎn)擊量可能達(dá)到數(shù)萬(wàn),甚至數(shù)十萬(wàn)脊另,這就要求系統(tǒng)具備非常好的可擴(kuò)展性以快速響應(yīng)和處理每一次點(diǎn)擊

2) 如何實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的實(shí)時(shí)分析导狡。為了監(jiān)控廣告投放效果,系統(tǒng)需要實(shí)時(shí)對(duì)用戶的每一次點(diǎn)擊和激活數(shù)據(jù)進(jìn)行分析偎痛,同時(shí)把相關(guān)數(shù)據(jù)傳輸?shù)较掠蔚拿襟w旱捧;

3) 平臺(tái)的數(shù)據(jù)量在急劇增長(zhǎng),每天的業(yè)務(wù)日志數(shù)據(jù)在持續(xù)的產(chǎn)生和上傳踩麦,曝光枚赡、點(diǎn)擊、推送的數(shù)據(jù)在持續(xù)處理谓谦,每天新增的數(shù)據(jù)量已經(jīng)在10-50TB左右贫橙,對(duì)整個(gè)數(shù)據(jù)處理系統(tǒng)提出了更高的要求。如何高效地完成對(duì)廣告數(shù)據(jù)的離線/近實(shí)時(shí)統(tǒng)計(jì)反粥,按照廣告客戶的維度要求進(jìn)行聚合分析卢肃。

針對(duì)上述三點(diǎn)業(yè)務(wù)挑戰(zhàn),同時(shí)DG這個(gè)客戶日增量數(shù)據(jù)正在急劇變大(當(dāng)前日數(shù)據(jù)掃描量達(dá)到100+TB)才顿,繼續(xù)在AWS平臺(tái)使用遇到Athena讀取S3數(shù)據(jù)帶寬瓶頸莫湘、數(shù)據(jù)分析滯后時(shí)間越來(lái)越長(zhǎng)、為應(yīng)對(duì)數(shù)據(jù)和分析需求增長(zhǎng)而急劇攀升的投入成本等郑气,經(jīng)過(guò)認(rèn)真幅垮、仔細(xì)的測(cè)試和分析,最終決定從AWS云平臺(tái)全量搬站到阿里云平臺(tái)尾组,新架構(gòu)圖如下:

image.png

圖16. 改造后的廣告數(shù)據(jù)湖方案架構(gòu)

從AWS搬站到阿里云后忙芒,我們?yōu)樵摽蛻粼O(shè)計(jì)了“利用Data Lake Analytics + OSS”極致分析能力來(lái)應(yīng)對(duì)業(yè)務(wù)波峰波谷。一方面輕松應(yīng)對(duì)來(lái)自品牌客戶的臨時(shí)分析演怎。另一方面利用Data Lake Analytics的強(qiáng)大計(jì)算能力匕争,分析按月、季度廣告投放爷耀,精確計(jì)算出一個(gè)品牌下面會(huì)有多少個(gè)活動(dòng),每個(gè)活動(dòng)分媒體拍皮,分市場(chǎng)歹叮,分頻道,分DMP的投放效果铆帽,進(jìn)一步增強(qiáng)了加和智能流量平臺(tái)為品牌營(yíng)銷帶來(lái)的銷售轉(zhuǎn)化率咆耿。并且在廣告投放與分析的總擁有成本上,Data Lake Analytics提供的Serverless的彈性服務(wù)為按需收費(fèi)爹橱,不需要購(gòu)買固定的資源萨螺,完全契合業(yè)務(wù)潮汐帶來(lái)的資源波動(dòng),滿足彈性的分析需求,同時(shí)極大地降低了運(yùn)維成本和使用成本慰技。

[圖片上傳失敗...(image-7957be-1625710771407)]

圖17 數(shù)據(jù)湖部署示意圖

總體上椭盏,DG從AWS切換到阿里云后,極大地節(jié)省了硬件成本吻商、人力成本和開(kāi)發(fā)成本掏颊。由于采用DLA serverless云服務(wù),DG無(wú)需先期投入大量的資金去購(gòu)買服務(wù)器艾帐、存儲(chǔ)等硬件設(shè)備乌叶,也無(wú)需一次性購(gòu)買大量的云服務(wù),其基礎(chǔ)設(shè)施的規(guī)模完全是按需擴(kuò)展:需求高的時(shí)候增加服務(wù)數(shù)量,需求減少的時(shí)候減少服務(wù)數(shù)量呻此,提高了資金的利用率动猬。使用阿里云平臺(tái)帶來(lái)的第二個(gè)顯著好處是性能的提升。在DG業(yè)務(wù)的快速增長(zhǎng)期以及后續(xù)多條業(yè)務(wù)線接入期兄裂,DG在移動(dòng)廣告系統(tǒng)的訪問(wèn)量經(jīng)常呈爆發(fā)式增長(zhǎng),然而原先AWS方案和平臺(tái)在Athena讀取S3數(shù)據(jù)遇到數(shù)據(jù)讀取帶寬的極大瓶頸阳藻,數(shù)據(jù)分析的時(shí)間變得越來(lái)越長(zhǎng)晰奖,阿里云DLA聯(lián)合OSS團(tuán)隊(duì)等進(jìn)行了極大的優(yōu)化和改造,同時(shí)腥泥,DLA數(shù)據(jù)庫(kù)分析在計(jì)算引擎上(與TPC-DS打榜世界第一的AnalyticDB共享計(jì)算引擎)比Presto原生計(jì)算引擎的能力提升數(shù)十倍性能匾南,也極大的為DG提升了分析性能。

5.2 游戲運(yùn)營(yíng)分析

數(shù)據(jù)湖是一類TCO表現(xiàn)極其優(yōu)秀的大數(shù)據(jù)基礎(chǔ)設(shè)施蛔外。對(duì)于很多快速增長(zhǎng)的游戲公司而言蛆楞,一個(gè)爆款游戲,往往在短期內(nèi)相關(guān)數(shù)據(jù)增長(zhǎng)極快夹厌;同時(shí)豹爹,公司的研發(fā)人員的技術(shù)棧很難在短期內(nèi)與數(shù)據(jù)的增量和增速進(jìn)行匹配;此時(shí)矛纹,呈爆發(fā)增長(zhǎng)的數(shù)據(jù)很難被有效利用臂聋。數(shù)據(jù)湖是一個(gè)解決此類問(wèn)題的技術(shù)選擇。

YJ是一家高速成長(zhǎng)的游戲公司或南,公司希望能依托相關(guān)用戶行為數(shù)據(jù)進(jìn)行深入分析孩等,指導(dǎo)游戲的開(kāi)發(fā)和運(yùn)營(yíng)。數(shù)據(jù)分析背后的核心邏輯在于隨著游戲行業(yè)市場(chǎng)競(jìng)爭(zhēng)局面的擴(kuò)大采够,玩家對(duì)于品質(zhì)的要求越來(lái)越高肄方,游戲項(xiàng)目的生命周期越來(lái)越短,直接影響項(xiàng)目的投入產(chǎn)出比蹬癌,通過(guò)數(shù)據(jù)運(yùn)營(yíng)則可以有效的延長(zhǎng)項(xiàng)目的生命周期权她,對(duì)各個(gè)階段的業(yè)務(wù)走向進(jìn)行精準(zhǔn)把控虹茶。而隨著流量成本的日益上升,如何構(gòu)建經(jīng)濟(jì)隅要、高效的精細(xì)化數(shù)據(jù)運(yùn)營(yíng)體系蝴罪,以更好的支撐業(yè)務(wù)發(fā)展,也變得愈發(fā)重要起來(lái)拾徙。數(shù)據(jù)運(yùn)營(yíng)體系就需要有其配套的基礎(chǔ)支撐設(shè)施洲炊,如何選擇這類基礎(chǔ)支撐設(shè)施,是公司技術(shù)決策者需要思考的問(wèn)題尼啡。思考的出發(fā)點(diǎn)包括:

1) 要有足夠的彈性暂衡。對(duì)于游戲而言,往往就是短時(shí)間爆發(fā)崖瞭,數(shù)據(jù)量激增狂巢;因此,能否適應(yīng)數(shù)據(jù)的爆發(fā)性增長(zhǎng)书聚,滿足彈性需求是一個(gè)重點(diǎn)考量的點(diǎn)唧领;無(wú)論是計(jì)算還是存儲(chǔ),都需要具備足夠的彈性雌续。

2) 要有足夠的性價(jià)比斩个。對(duì)于用戶行為數(shù)據(jù),往往需要拉到一個(gè)很長(zhǎng)的周期去分析去對(duì)比驯杜,比如留存率受啥,不少情況下需要考慮90天甚至180天客戶的留存率;因此鸽心,如何以最具性價(jià)比的方式長(zhǎng)期存儲(chǔ)海量數(shù)據(jù)是需要重點(diǎn)考慮的問(wèn)題滚局。

3) 要有夠用的分析能力,且具備可擴(kuò)展性顽频。許多情況下藤肢,用戶行為體現(xiàn)在埋點(diǎn)數(shù)據(jù)中,埋點(diǎn)數(shù)據(jù)又需要與用戶注冊(cè)信息糯景、登陸信息嘁圈、賬單等結(jié)構(gòu)化數(shù)據(jù)關(guān)聯(lián)分析;因此莺奸,在數(shù)據(jù)分析上丑孩,至少需要有大數(shù)據(jù)的ETL能力、異構(gòu)數(shù)據(jù)源的接入能力和復(fù)雜分析的建模能力灭贷。

4) 要與公司現(xiàn)有技術(shù)棧相匹配,且后續(xù)利于招聘略贮。對(duì)于YJ甚疟,其在技術(shù)選型的時(shí)候一個(gè)重要點(diǎn)就是其技術(shù)人員的技術(shù)棧仗岖,YJ的技術(shù)團(tuán)隊(duì)大部分只熟悉傳統(tǒng)的數(shù)據(jù)庫(kù)開(kāi)發(fā),即MySQL览妖;并且人手緊張轧拄,做數(shù)據(jù)運(yùn)營(yíng)分析的技術(shù)人員只有1個(gè),短時(shí)間內(nèi)根本沒(méi)有能力獨(dú)立構(gòu)建大數(shù)據(jù)分析的基礎(chǔ)設(shè)施讽膏。從YJ的角度出發(fā)檩电,最好絕大多數(shù)分析能夠通過(guò)SQL完成;并且在招聘市場(chǎng)上府树,SQL開(kāi)發(fā)人員的數(shù)量也遠(yuǎn)高于大數(shù)據(jù)開(kāi)發(fā)工程師的數(shù)量俐末。針對(duì)客戶的情況,我們幫助客戶對(duì)現(xiàn)有方案做了改造奄侠。

[圖片上傳失敗...(image-caaee8-1625710771407)]

圖18. 改造前的方案

改造前卓箫,客戶所有的結(jié)構(gòu)化數(shù)據(jù)都在一個(gè)高規(guī)格的MySQL里面;而玩家行為數(shù)據(jù)則是通過(guò)LogTail采集至日志服務(wù)(SLS)中垄潮,然后從日志服務(wù)中分別投遞到OSS和ES里烹卒。這個(gè)架構(gòu)的問(wèn)題在于:1)行為數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)完全割裂,無(wú)法聯(lián)動(dòng)分析弯洗;2)對(duì)于行為數(shù)據(jù)智能提供檢索功能旅急,無(wú)法做深層次的挖掘分析;3)OSS僅僅作為數(shù)據(jù)存儲(chǔ)資源使用牡整,并沒(méi)有挖掘出足夠的數(shù)據(jù)價(jià)值藐吮。

事實(shí)上,我們分析客戶現(xiàn)存架構(gòu)其實(shí)已經(jīng)具備了數(shù)據(jù)湖的雛形:全量數(shù)據(jù)已經(jīng)在OSS中保存下來(lái)了果正,現(xiàn)在需要進(jìn)一步補(bǔ)齊客戶對(duì)于OSS中的數(shù)據(jù)的分析能力炎码。而且數(shù)據(jù)湖基于SQL的數(shù)據(jù)處理模式也滿足客戶對(duì)于開(kāi)發(fā)技術(shù)棧的需求。綜上秋泳,我們對(duì)客戶的架構(gòu)做了如下調(diào)整潦闲,幫助客戶構(gòu)建了數(shù)據(jù)湖。

image.png

圖19. 改造后的數(shù)據(jù)湖解決方案

總體上迫皱,我們沒(méi)有改變客戶的數(shù)據(jù)鏈路流轉(zhuǎn)歉闰,只是在OSS的基礎(chǔ)上,增加了DLA組件卓起,對(duì)OSS的數(shù)據(jù)進(jìn)行二次加工處理和敬。DLA提供了標(biāo)準(zhǔn)SQL計(jì)算引擎,同時(shí)支持接入各類異構(gòu)數(shù)據(jù)源戏阅≈绲埽基于DLA對(duì)OSS的數(shù)據(jù)進(jìn)行處理后,生成業(yè)務(wù)直接可用的數(shù)據(jù)奕筐。但是DLA的問(wèn)題在于無(wú)法支撐低延遲需求的交互式分析場(chǎng)景舱痘,為了解決這個(gè)問(wèn)題变骡,我們引入了云原生數(shù)據(jù)倉(cāng)庫(kù)ADB來(lái)解決交互式分析的延遲性問(wèn)題;同時(shí)芭逝,在最前端引入QuickBI作為客戶的可視化分析工具塌碌。YJ方案是圖14所示的湖倉(cāng)一體化解決方案在游戲行業(yè)的一個(gè)經(jīng)典落地案例。

YM是一家數(shù)據(jù)智能服務(wù)提供商旬盯,面向各類中小商家提供一系列數(shù)據(jù)分析運(yùn)營(yíng)服務(wù)台妆。具體實(shí)現(xiàn)的技術(shù)邏輯如下圖所示。

image.png

圖20. YM智能數(shù)據(jù)服務(wù)SaaS模式示意

平臺(tái)方提供多端SDK供用戶(商家提供網(wǎng)頁(yè)胖翰、APP接剩、小程序等多種接入形式)接入各類埋點(diǎn)數(shù)據(jù),平臺(tái)方以SaaS的形式提供統(tǒng)一的數(shù)據(jù)接入服務(wù)和數(shù)據(jù)分析服務(wù)泡态。商家通過(guò)訪問(wèn)各類數(shù)據(jù)分析服務(wù)來(lái)進(jìn)行更細(xì)粒度的埋點(diǎn)數(shù)據(jù)分析搂漠,完成行為統(tǒng)計(jì)、客戶畫像某弦、客戶圈選桐汤、廣告投放監(jiān)測(cè)等基本分析功能。然而靶壮,這種SaaS模式下怔毛,會(huì)存在一定的問(wèn)題:

1) 由于商家類型和需求的多樣化,平臺(tái)提供SaaS類分析功能很難覆蓋所有類型的商家腾降,無(wú)法滿足商家的定制化需求拣度;如有些商家關(guān)注銷量,有些關(guān)注客戶運(yùn)營(yíng)螃壤,有些關(guān)注成本優(yōu)化抗果,很難滿足所有的需求。

2) 對(duì)于一些高級(jí)分析功能奸晴,如依賴于自定義標(biāo)簽的客戶圈選冤馏、客戶自定義擴(kuò)展等功能,統(tǒng)一的數(shù)據(jù)分析服務(wù)無(wú)法滿足的寄啼;特別是一些自定義的標(biāo)簽依賴于商家自定義的算法逮光,無(wú)法滿足客戶的高級(jí)分析需求。

3) 數(shù)據(jù)的資產(chǎn)化管理需求墩划。在大數(shù)據(jù)時(shí)代涕刚,數(shù)據(jù)是一個(gè)企業(yè)/組織的資產(chǎn)已經(jīng)成為了大家的共識(shí),如何能讓屬于商家的數(shù)據(jù)合理乙帮、長(zhǎng)期的沉淀下來(lái)杜漠,也是SaaS服務(wù)需要考慮的事情。

綜上,我們?cè)谏蠄D的基本模式上引入了數(shù)據(jù)湖模式碑幅,讓數(shù)據(jù)湖作為商家沉淀數(shù)據(jù)戴陡、產(chǎn)出模型塞绿、分析運(yùn)營(yíng)的基礎(chǔ)支撐設(shè)施沟涨。引入數(shù)據(jù)湖后的SaaS數(shù)據(jù)智能服務(wù)模式如下。

image.png

圖21. 基于數(shù)據(jù)湖的數(shù)據(jù)智能服務(wù)

如圖21所示异吻,平臺(tái)方為每個(gè)用戶提供一鍵建湖服務(wù)裹赴,商家使用該功能構(gòu)建自己的數(shù)據(jù)湖,“一鍵建湖”能力一方面幫助商家將所有埋點(diǎn)數(shù)據(jù)的數(shù)據(jù)模型(schema)同步至數(shù)據(jù)湖中诀浪;另一方面棋返,將屬于該商家的所有埋點(diǎn)數(shù)據(jù)全量同步至數(shù)據(jù)湖中,并基于“T+1”的模式雷猪,將每天的增量數(shù)據(jù)歸檔入湖睛竣。基于數(shù)據(jù)湖的服務(wù)模式在傳統(tǒng)的數(shù)據(jù)分析服務(wù)的基礎(chǔ)上求摇,賦予了用戶數(shù)據(jù)資產(chǎn)化射沟、分析模型化和服務(wù)定制化三大能力:

1) 數(shù)據(jù)資產(chǎn)化能力。利用數(shù)據(jù)湖与境,商家可以將屬于自己的數(shù)據(jù)持續(xù)沉淀下來(lái)验夯,保存多長(zhǎng)時(shí)間的數(shù)據(jù),耗費(fèi)多少成本摔刁,完全由商家自主決定挥转。數(shù)據(jù)湖還提供了數(shù)據(jù)資產(chǎn)管理能力,商家除了能管理原始數(shù)據(jù)外共屈,還能將處理過(guò)的過(guò)程數(shù)據(jù)和結(jié)果數(shù)據(jù)分門別類保存绑谣,極大的提升了埋點(diǎn)數(shù)據(jù)的價(jià)值。

2) 分析模型化能力拗引。數(shù)據(jù)湖中不僅僅有原始數(shù)據(jù)借宵,還有埋點(diǎn)數(shù)據(jù)的模型(schema)。埋點(diǎn)數(shù)據(jù)模型體現(xiàn)了全域數(shù)據(jù)智能服務(wù)平臺(tái)對(duì)于業(yè)務(wù)邏輯的抽象寺擂,通過(guò)數(shù)據(jù)湖暇务,除了將原始數(shù)據(jù)作為資產(chǎn)輸出外,還將數(shù)據(jù)模型進(jìn)行了輸出怔软,借助埋點(diǎn)數(shù)據(jù)模型垦细,商家可以更深入的理解埋點(diǎn)數(shù)據(jù)背后所體現(xiàn)的用戶行為邏輯,幫助商家更好的洞察客戶行為挡逼,獲取用戶需求括改。

3) 服務(wù)定制化能力。借助數(shù)據(jù)湖提供的數(shù)據(jù)集成和數(shù)據(jù)開(kāi)發(fā)能力家坎,基于對(duì)埋點(diǎn)數(shù)據(jù)模型的理解嘱能,商家可以定制數(shù)據(jù)處理過(guò)程吝梅,不斷對(duì)原始數(shù)據(jù)進(jìn)行迭代加工,從數(shù)據(jù)中提煉有價(jià)值的信息惹骂,最終獲得超越原有數(shù)據(jù)分析服務(wù)的價(jià)值苏携。

六、數(shù)據(jù)湖建設(shè)的基本過(guò)程

個(gè)人認(rèn)為數(shù)據(jù)湖是比傳統(tǒng)大數(shù)據(jù)平臺(tái)更為完善的大數(shù)據(jù)處理基礎(chǔ)支撐設(shè)施对粪,完善在數(shù)據(jù)湖是更貼近客戶業(yè)務(wù)的技術(shù)存在右冻。所有數(shù)據(jù)湖所包括的、且超出大數(shù)據(jù)平臺(tái)存在的特性著拭,例如元數(shù)據(jù)纱扭、數(shù)據(jù)資產(chǎn)目錄、權(quán)限管理儡遮、數(shù)據(jù)生命周期管理乳蛾、數(shù)據(jù)集成和數(shù)據(jù)開(kāi)發(fā)、數(shù)據(jù)治理和質(zhì)量管理等鄙币,無(wú)一不是為了更好的貼近業(yè)務(wù)肃叶,更好的方便客戶使用。數(shù)據(jù)湖所強(qiáng)調(diào)的一些基本的技術(shù)特性爱榔,例如彈性被环、存儲(chǔ)計(jì)算獨(dú)立擴(kuò)展、統(tǒng)一的存儲(chǔ)引擎详幽、多模式計(jì)算引擎等等筛欢,也是為了滿足業(yè)務(wù)需求,并且給業(yè)務(wù)方提供最具性價(jià)比的TCO唇聘。

數(shù)據(jù)湖的建設(shè)過(guò)程應(yīng)該與業(yè)務(wù)緊密結(jié)合版姑;但是數(shù)據(jù)湖的建設(shè)過(guò)程與傳統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù),甚至是大熱的數(shù)據(jù)中臺(tái)應(yīng)該是有所區(qū)別的迟郎。區(qū)別在于剥险,數(shù)據(jù)湖應(yīng)該以一種更敏捷的方式去構(gòu)建,“邊建邊用宪肖,邊用邊治理”表制。為了更好的理解數(shù)據(jù)湖建設(shè)的敏捷性,我們先來(lái)看一下傳統(tǒng)數(shù)倉(cāng)的構(gòu)建過(guò)程控乾。業(yè)界對(duì)于傳統(tǒng)數(shù)倉(cāng)的構(gòu)建提出了“自下而上”和“自頂而下”兩種模式么介,分別由Inmon和KimBall兩位大牛提出。具體的過(guò)程就不詳述了蜕衡,不然可以再寫出幾百頁(yè)壤短,這里只簡(jiǎn)單闡述基本思想。

1)Inmon提出自下而上(EDW-DM)的數(shù)據(jù)倉(cāng)庫(kù)建設(shè)模式,即操作型或事務(wù)型系統(tǒng)的數(shù)據(jù)源久脯,通過(guò)ETL抽取轉(zhuǎn)換和加載到數(shù)據(jù)倉(cāng)庫(kù)的ODS層纳胧;ODS層中的數(shù)據(jù),根據(jù)預(yù)先設(shè)計(jì)好的EDW(企業(yè)級(jí)數(shù)據(jù)倉(cāng)庫(kù))范式進(jìn)行加工處理帘撰,然后進(jìn)入到EDW跑慕。EDW一般是企業(yè)/組織的通用數(shù)據(jù)模型,不方便上層應(yīng)用直接做數(shù)據(jù)分析骡和;因此相赁,各個(gè)業(yè)務(wù)部門會(huì)再次根據(jù)自己的需要,從EDW中處理出數(shù)據(jù)集市層(DM)慰于。

優(yōu)勢(shì):易于維護(hù),高度集成唤衫;劣勢(shì):結(jié)構(gòu)一旦確定婆赠,靈活性不足,且為了適應(yīng)業(yè)務(wù)佳励,部署周期較長(zhǎng)休里。此類方式構(gòu)造的數(shù)倉(cāng),適合于比較成熟穩(wěn)定的業(yè)務(wù)赃承,例如金融妙黍。

2)KimBall提出自頂而下(DM-DW)的數(shù)據(jù)架構(gòu),通過(guò)將操作型或事務(wù)型系統(tǒng)的數(shù)據(jù)源瞧剖,抽取或加載到ODS層拭嫁;然后通過(guò)ODS的數(shù)據(jù),利用維度建模方法建設(shè)多維主題數(shù)據(jù)集市(DM)抓于。各個(gè)DM做粤,通過(guò)一致性的維度聯(lián)系在一起,最終形成企業(yè)/組織通用的數(shù)據(jù)倉(cāng)庫(kù)捉撮。

優(yōu)勢(shì):構(gòu)建迅速怕品,最快的看到投資回報(bào)率,敏捷靈活巾遭;劣勢(shì):作為企業(yè)資源不太好維護(hù)肉康,結(jié)構(gòu)復(fù)雜,數(shù)據(jù)集市集成困難灼舍。常應(yīng)用于中小企業(yè)或互聯(lián)網(wǎng)行業(yè)吼和。

其實(shí)上述只是一個(gè)理論上的過(guò)程,其實(shí)無(wú)論是先構(gòu)造EDW片仿,還是先構(gòu)造DM纹安,都離不開(kāi)對(duì)于數(shù)據(jù)的摸底,以及在數(shù)倉(cāng)構(gòu)建之前的數(shù)據(jù)模型的設(shè)計(jì),包括當(dāng)前大熱的“數(shù)據(jù)中臺(tái)”厢岂,都逃不出下圖所示的基本建設(shè)過(guò)程光督。

image.png

圖22. 數(shù)據(jù)倉(cāng)庫(kù)/數(shù)據(jù)中臺(tái)建設(shè)基本流程

1) 數(shù)據(jù)摸底。對(duì)于一個(gè)企業(yè)/組織而言塔粒,在構(gòu)建數(shù)據(jù)湖初始工作就是對(duì)自己企業(yè)/組織內(nèi)部的數(shù)據(jù)做一個(gè)全面的摸底和調(diào)研结借,包括數(shù)據(jù)來(lái)源、數(shù)據(jù)類型卒茬、數(shù)據(jù)形態(tài)船老、數(shù)據(jù)模式、數(shù)據(jù)總量圃酵、數(shù)據(jù)增量等柳畔。在這個(gè)階段一個(gè)隱含的重要工作是借助數(shù)據(jù)摸底工作,進(jìn)一步梳理企業(yè)的組織結(jié)構(gòu)郭赐,明確數(shù)據(jù)和組織結(jié)構(gòu)之間關(guān)系薪韩。為后續(xù)明確數(shù)據(jù)湖的用戶角色、權(quán)限設(shè)計(jì)捌锭、服務(wù)方式奠定基礎(chǔ)俘陷。

2) 模型抽象。針對(duì)企業(yè)/組織的業(yè)務(wù)特點(diǎn)梳理歸類各類數(shù)據(jù)观谦,對(duì)數(shù)據(jù)進(jìn)行領(lǐng)域劃分拉盾,形成數(shù)據(jù)管理的元數(shù)據(jù),同時(shí)基于元數(shù)據(jù)豁状,構(gòu)建通用的數(shù)據(jù)模型捉偏。

3) 數(shù)據(jù)接入。根據(jù)第一步的摸排結(jié)果替蔬,確定要接入的數(shù)據(jù)源告私。根據(jù)數(shù)據(jù)源,確定所必須的數(shù)據(jù)接入技術(shù)能力承桥,完成數(shù)據(jù)接入技術(shù)選型驻粟,接入的數(shù)據(jù)至少包括:數(shù)據(jù)源元數(shù)據(jù)、原始數(shù)據(jù)元數(shù)據(jù)凶异、原始數(shù)據(jù)蜀撑。各類數(shù)據(jù)按照第二步形成的結(jié)果,分類存放剩彬。

4) 融合治理酷麦。簡(jiǎn)單來(lái)說(shuō)就是利用數(shù)據(jù)湖提供的各類計(jì)算引擎對(duì)數(shù)據(jù)進(jìn)行加工處理,形成各類中間數(shù)據(jù)/結(jié)果數(shù)據(jù)喉恋,并妥善管理保存沃饶。數(shù)據(jù)湖應(yīng)該具備完善的數(shù)據(jù)開(kāi)發(fā)母廷、任務(wù)管理、任務(wù)調(diào)度的能力糊肤,詳細(xì)記錄數(shù)據(jù)的處理過(guò)程琴昆。在治理的過(guò)程中,會(huì)需要更多的數(shù)據(jù)模型和指標(biāo)模型馆揉。

5) 業(yè)務(wù)支撐业舍。在通用模型基礎(chǔ)上,各個(gè)業(yè)務(wù)部門定制自己的細(xì)化數(shù)據(jù)模型升酣、數(shù)據(jù)使用流程舷暮、數(shù)據(jù)訪問(wèn)服務(wù)。

上述過(guò)程噩茄,對(duì)于一個(gè)快速成長(zhǎng)的互聯(lián)網(wǎng)企業(yè)來(lái)說(shuō)下面,太重了,很多情況下是無(wú)法落地的巢墅,最現(xiàn)實(shí)的問(wèn)題就是第二步模型抽象诸狭,很多情況下,業(yè)務(wù)是在試錯(cuò)君纫、在探索,根本不清楚未來(lái)的方向在哪里芹彬,也就根本不可能提煉出通用的數(shù)據(jù)模型蓄髓;沒(méi)有數(shù)據(jù)模型,后面的一切操作也就無(wú)從談起舒帮,這也是很多高速成長(zhǎng)的企業(yè)覺(jué)得數(shù)據(jù)倉(cāng)庫(kù)/數(shù)據(jù)中臺(tái)無(wú)法落地会喝、無(wú)法滿足需求的重要原因之一。

數(shù)據(jù)湖應(yīng)該是一種更為“敏捷”的構(gòu)建方式玩郊,我們建議采用如下步驟來(lái)構(gòu)建數(shù)據(jù)湖肢执。

image.png

圖23. 數(shù)據(jù)湖建設(shè)基本流程

對(duì)比圖22,依然是五步译红,但是這五步是一個(gè)全面的簡(jiǎn)化和“可落地”的改進(jìn)预茄。

1) 數(shù)據(jù)摸底。依然需要摸清楚數(shù)據(jù)的基本情況侦厚,包括數(shù)據(jù)來(lái)源耻陕、數(shù)據(jù)類型、數(shù)據(jù)形態(tài)刨沦、數(shù)據(jù)模式诗宣、數(shù)據(jù)總量、數(shù)據(jù)增量想诅。但是召庞,也就需要做這么多了岛心。數(shù)據(jù)湖是對(duì)原始數(shù)據(jù)做全量保存,因此無(wú)需事先進(jìn)行深層次的設(shè)計(jì)篮灼。

2) 技術(shù)選型忘古。根據(jù)數(shù)據(jù)摸底的情況,確定數(shù)據(jù)湖建設(shè)的技術(shù)選型穿稳。事實(shí)上存皂,這一步也非常的簡(jiǎn)單,因?yàn)殛P(guān)于數(shù)據(jù)湖的技術(shù)選型逢艘,業(yè)界有很多的通行的做法旦袋,基本原則個(gè)人建議有三個(gè):“計(jì)算與存儲(chǔ)分離”、“彈性”它改、“獨(dú)立擴(kuò)展”疤孕。建議的存儲(chǔ)選型是分布式對(duì)象存儲(chǔ)系統(tǒng)(如S3/OSS/OBS);計(jì)算引擎上建議重點(diǎn)考慮批處理需求和SQL處理能力祭阀,因?yàn)樵趯?shí)踐中,這兩類能力是數(shù)據(jù)處理的關(guān)鍵专控,關(guān)于流計(jì)算引擎后面會(huì)再討論一下失都。無(wú)論是計(jì)算還是存儲(chǔ)旅掂,建議優(yōu)先考慮serverless的形式;后續(xù)可以在應(yīng)用中逐步演進(jìn)商虐,真的需要獨(dú)立資源池了觉阅,再考慮構(gòu)建專屬集群崖疤。

3) 數(shù)據(jù)接入。確定要接入的數(shù)據(jù)源典勇,完成數(shù)據(jù)的全量抽取與增量接入劫哼。

4) 應(yīng)用治理。這一步是數(shù)據(jù)湖的關(guān)鍵割笙,我個(gè)人把“融合治理”改成了“應(yīng)用治理”权烧。從數(shù)據(jù)湖的角度來(lái)看,數(shù)據(jù)應(yīng)用和數(shù)據(jù)治理應(yīng)該是相互融合伤溉、密不可分的般码。從數(shù)據(jù)應(yīng)用入手,在應(yīng)用中明確需求乱顾,在數(shù)據(jù)ETL的過(guò)程中板祝,逐步形成業(yè)務(wù)可使用的數(shù)據(jù);同時(shí)形成數(shù)據(jù)模型走净、指標(biāo)體系和對(duì)應(yīng)的質(zhì)量標(biāo)準(zhǔn)券时。數(shù)據(jù)湖強(qiáng)調(diào)對(duì)原始數(shù)據(jù)的存儲(chǔ),強(qiáng)調(diào)對(duì)數(shù)據(jù)的探索式分析與應(yīng)用伏伯,但這絕對(duì)不是說(shuō)數(shù)據(jù)湖不需要數(shù)據(jù)模型橘洞;恰恰相反,對(duì)業(yè)務(wù)的理解與抽象说搅,將極大的推動(dòng)數(shù)據(jù)湖的發(fā)展與應(yīng)用震檩,數(shù)據(jù)湖技術(shù)使得數(shù)據(jù)的處理與建模,保留了極大的敏捷性蜓堕,能快速適應(yīng)業(yè)務(wù)的發(fā)展與變化。

從技術(shù)視角來(lái)看博其,數(shù)據(jù)湖不同于大數(shù)據(jù)平臺(tái)還在于數(shù)據(jù)湖為了支撐數(shù)據(jù)的全生命周期管理與應(yīng)用套才,需要具備相對(duì)完善的數(shù)據(jù)管理、類目管理慕淡、流程編排背伴、任務(wù)調(diào)度、數(shù)據(jù)溯源峰髓、數(shù)據(jù)治理傻寂、質(zhì)量管理、權(quán)限管理等能力携兵。在計(jì)算能力上疾掰,目前主流的數(shù)據(jù)湖方案都支持SQL和可編程的批處理兩種模式(對(duì)機(jī)器學(xué)習(xí)的支持,可以采用Spark或者Flink的內(nèi)置能力)徐紧;在處理范式上静檬,幾乎都采用基于有向無(wú)環(huán)圖的工作流的模式炭懊,并提供了對(duì)應(yīng)的集成開(kāi)發(fā)環(huán)境。對(duì)于流式計(jì)算的支持拂檩,目前各個(gè)數(shù)據(jù)湖解決方案采取了不同的方式侮腹。在討論具體的方式之前胚委,我們先對(duì)流計(jì)算做一個(gè)分類:

1) 模式一:實(shí)時(shí)模式丧枪。這種流計(jì)算模式相當(dāng)于對(duì)數(shù)據(jù)采用“來(lái)一條處理一條”/“微批”的方式進(jìn)行處理魄缚;多見(jiàn)于在線業(yè)務(wù)霞扬,如風(fēng)控撒顿、推薦芥备、預(yù)警等羞芍。

2) 模式二:類流式勾怒。這種模式需要獲取指定時(shí)間點(diǎn)之后變化的數(shù)據(jù)/讀取某一個(gè)版本的數(shù)據(jù)/讀取當(dāng)前的最新數(shù)據(jù)等糠聪,是一種類流式的模式荒椭;多見(jiàn)于數(shù)據(jù)探索類應(yīng)用,如分析某一時(shí)間段內(nèi)的日活舰蟆、留存趣惠、轉(zhuǎn)化等。

二者的本質(zhì)不同在于身害,模式一處理數(shù)據(jù)時(shí)味悄,數(shù)據(jù)往往還沒(méi)有存儲(chǔ)到數(shù)據(jù)湖中,僅僅是在網(wǎng)路/內(nèi)存中流動(dòng)塌鸯;模式二處理數(shù)據(jù)時(shí)侍瑟,數(shù)據(jù)已經(jīng)存儲(chǔ)到數(shù)據(jù)湖中了。綜上丙猬,我個(gè)人建議采用如下圖模式:

image.png

圖24 數(shù)據(jù)湖數(shù)據(jù)流向示意圖

如圖24所示涨颜,在需要數(shù)據(jù)湖具備模式一的處理能力時(shí),還是應(yīng)該引入類Kafka中間件茧球,作為數(shù)據(jù)轉(zhuǎn)發(fā)的基礎(chǔ)設(shè)施庭瑰。完整的數(shù)據(jù)湖解決方案方案應(yīng)該提供將原始數(shù)據(jù)導(dǎo)流至Kafka的能力。流式引擎具備從類Kafka組件中讀取數(shù)據(jù)的能力抢埋。流式計(jì)算引擎在處理數(shù)據(jù)過(guò)后弹灭,根據(jù)需要,可以將結(jié)果寫入OSS/RDBMS/NoSQL/DW揪垄,供應(yīng)用訪問(wèn)穷吮。某種意義上,模式一的流計(jì)算引擎并非一定要作為數(shù)據(jù)湖不可分割的一部分存在饥努,只需要在應(yīng)用需要時(shí)捡鱼,能夠方便的引入即可。但是肪凛,這里需要指出的是:

1)流式引擎依然需要能夠很方便的讀取數(shù)據(jù)湖的元數(shù)據(jù)堰汉;

2)流式引擎任務(wù)也需要統(tǒng)一的納入數(shù)據(jù)湖的任務(wù)管理辽社;

3)流式處理任務(wù)依然需要納入到統(tǒng)一的權(quán)限管理中。

對(duì)于模式二翘鸭,本質(zhì)上更接近于批處理〉吻Γ現(xiàn)在許多經(jīng)典的大數(shù)據(jù)組件已經(jīng)提供了支持方式,如HUDI/IceBerg/Delta等就乓,均支持Spark汉匙、Presto等經(jīng)典的計(jì)算引擎。以HUDI為例生蚁,通過(guò)支持特殊類型的表(COW/MOR)噩翠,提供訪問(wèn)快照數(shù)據(jù)(指定版本)、增量數(shù)據(jù)邦投、準(zhǔn)實(shí)時(shí)數(shù)據(jù)的能力伤锚。目前AWS、騰訊等已經(jīng)將HUDI集成到了其EMR服務(wù)中志衣,阿里云的DLA也正在計(jì)劃推出DLA on HUDI的能力屯援。

讓我們?cè)倩氐奖疚拈_(kāi)頭的第一章,我們說(shuō)過(guò)念脯,數(shù)據(jù)湖的主要用戶是數(shù)據(jù)科學(xué)家和數(shù)據(jù)分析師狞洋,探索式分析和機(jī)器學(xué)習(xí)是這類人群的常見(jiàn)操作;流式計(jì)算(實(shí)時(shí)模式)多用于在線業(yè)務(wù)绿店,嚴(yán)格來(lái)看吉懊,并非數(shù)據(jù)湖目標(biāo)用戶的剛需。但是假勿,流式計(jì)算(實(shí)時(shí)模式)是目前大多數(shù)互聯(lián)網(wǎng)公司在線業(yè)務(wù)的重要組成部分借嗽,而數(shù)據(jù)湖作為企業(yè)/組織內(nèi)部的數(shù)據(jù)集中存放地,需要在架構(gòu)上保持一定的擴(kuò)展能力转培,可以很方便的進(jìn)行擴(kuò)展淹魄,整合流式計(jì)算能力。

5) 業(yè)務(wù)支撐堡距。雖然大多數(shù)數(shù)據(jù)湖解決方案都對(duì)外提供標(biāo)準(zhǔn)的訪問(wèn)接口,如JDBC兆蕉,市面上流行的各類BI報(bào)表工具羽戒、大屏工具也都可以直接訪問(wèn)數(shù)據(jù)湖中的數(shù)據(jù)。但是在實(shí)際的應(yīng)用中虎韵,我們還是建議將數(shù)據(jù)湖處理好的數(shù)據(jù)推送到對(duì)應(yīng)的各類支持在線業(yè)務(wù)的數(shù)據(jù)引擎中去易稠,能夠讓應(yīng)用有更好的體驗(yàn)。

七包蓝、總結(jié)

數(shù)據(jù)湖作為新一代大數(shù)據(jù)分析處理的基礎(chǔ)設(shè)施驶社,需要超越傳統(tǒng)的大數(shù)據(jù)平臺(tái)企量。個(gè)人認(rèn)為目前在以下方面,是數(shù)據(jù)湖解決方案未來(lái)可能的發(fā)展方向亡电。

1) 云原生架構(gòu)届巩。關(guān)于什么是云原生架構(gòu),眾說(shuō)紛紜份乒,很難找到統(tǒng)一的定義恕汇。但是具體到數(shù)據(jù)湖這個(gè)場(chǎng)景,個(gè)人認(rèn)為就是以下三點(diǎn)特征:(1)存儲(chǔ)和計(jì)算分離或辖,計(jì)算能力和存儲(chǔ)能力均可獨(dú)立擴(kuò)展瘾英;(2)多模態(tài)計(jì)算引擎支持,SQL颂暇、批處理缺谴、流式計(jì)算、機(jī)器學(xué)習(xí)等耳鸯;(3)提供serverless態(tài)服務(wù)湿蛔,確保足夠的彈性以及支持按需付費(fèi)。

2) 足夠用的數(shù)據(jù)管理能力片拍。數(shù)據(jù)湖需要提供更為強(qiáng)大的數(shù)據(jù)管理能力煌集,包括但不限于數(shù)據(jù)源管理、數(shù)據(jù)類目管理捌省、處理流程編排苫纤、任務(wù)調(diào)度、數(shù)據(jù)溯源纲缓、數(shù)據(jù)治理卷拘、質(zhì)量管理、權(quán)限管理等祝高。

3) 大數(shù)據(jù)的能力栗弟,數(shù)據(jù)庫(kù)的體驗(yàn)。目前絕大多數(shù)數(shù)據(jù)分析人員都只有數(shù)據(jù)庫(kù)的使用經(jīng)驗(yàn)工闺,大數(shù)據(jù)平臺(tái)的能力雖強(qiáng)乍赫,但是對(duì)于用戶來(lái)說(shuō)并不友好,數(shù)據(jù)科學(xué)家和數(shù)據(jù)數(shù)據(jù)分析師應(yīng)該關(guān)注數(shù)據(jù)陆蟆、算法雷厂、模型及其與業(yè)務(wù)場(chǎng)景的適配,而不是花大量的時(shí)間精力去學(xué)習(xí)大數(shù)據(jù)平臺(tái)的開(kāi)發(fā)叠殷。數(shù)據(jù)湖要想快速發(fā)展改鲫,如何為用戶提供良好的使用體驗(yàn)是關(guān)鍵。基于SQL的數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)已經(jīng)深入人心像棘,如何將數(shù)據(jù)湖的能力通過(guò)SQL的形式釋放出來(lái)稽亏,是未來(lái)的一個(gè)主要方向。

4) 完善的數(shù)據(jù)集成與數(shù)據(jù)開(kāi)發(fā)能力缕题。對(duì)各種異構(gòu)數(shù)據(jù)源的管理與支持截歉,對(duì)異構(gòu)數(shù)據(jù)的全量/增量遷移支持,對(duì)各種數(shù)據(jù)格式的支持都是需要不斷完善的方向避除。同時(shí)怎披,需要具備一個(gè)完備的、可視化的瓶摆、可擴(kuò)展的集成開(kāi)發(fā)環(huán)境凉逛。

5) 與業(yè)務(wù)的深度融合與集成。典型數(shù)據(jù)湖架構(gòu)的構(gòu)成基本已經(jīng)成為了業(yè)界共識(shí):分布式對(duì)象存儲(chǔ)+多模態(tài)計(jì)算引擎+數(shù)據(jù)管理群井。決定數(shù)據(jù)湖方案是否勝出的關(guān)鍵恰恰在于數(shù)據(jù)管理状飞,無(wú)論是原始數(shù)據(jù)的管理、數(shù)據(jù)類目的管理书斜、數(shù)據(jù)模型的管理诬辈、數(shù)據(jù)權(quán)限的管理還是處理任務(wù)的管理,都離不開(kāi)與業(yè)務(wù)的適配和集成荐吉;未來(lái)焙糟,會(huì)有越來(lái)越多的行業(yè)數(shù)據(jù)湖解決方案涌現(xiàn)出來(lái),與數(shù)據(jù)科學(xué)家和數(shù)據(jù)分析師形成良性發(fā)展與互動(dòng)样屠。如何在數(shù)據(jù)湖解決方案中預(yù)置行業(yè)數(shù)據(jù)模型穿撮、ETL流程、分析模型和定制算法痪欲,可能是未來(lái)數(shù)據(jù)湖領(lǐng)域差異化競(jìng)爭(zhēng)的一個(gè)關(guān)鍵點(diǎn)悦穿。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市业踢,隨后出現(xiàn)的幾起案子栗柒,更是在濱河造成了極大的恐慌,老刑警劉巖知举,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞬沦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡雇锡,警方通過(guò)查閱死者的電腦和手機(jī)蛙埂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)遮糖,“玉大人,你說(shuō)我怎么就攤上這事叠赐∮耍” “怎么了屡江?”我有些...
    開(kāi)封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)赛不。 經(jīng)常有香客問(wèn)我惩嘉,道長(zhǎng),這世上最難降的妖魔是什么踢故? 我笑而不...
    開(kāi)封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任文黎,我火速辦了婚禮,結(jié)果婚禮上殿较,老公的妹妹穿的比我還像新娘耸峭。我一直安慰自己,他們只是感情好淋纲,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布劳闹。 她就那樣靜靜地躺著,像睡著了一般洽瞬。 火紅的嫁衣襯著肌膚如雪本涕。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天伙窃,我揣著相機(jī)與錄音菩颖,去河邊找鬼。 笑死为障,一個(gè)胖子當(dāng)著我的面吹牛晦闰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播产场,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼鹅髓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了京景?” 一聲冷哼從身側(cè)響起窿冯,我...
    開(kāi)封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎确徙,沒(méi)想到半個(gè)月后醒串,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鄙皇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年芜赌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伴逸。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缠沈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情洲愤,我是刑警寧澤颓芭,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站柬赐,受9級(jí)特大地震影響亡问,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肛宋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一州藕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酝陈,春花似錦床玻、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至遇西,卻和暖如春馅精,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背粱檀。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工洲敢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人茄蚯。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓压彭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親渗常。 傳聞我的和親對(duì)象是個(gè)殘疾皇子壮不,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 今天青石的票圈出鏡率最高的,莫過(guò)于張藝謀的新片終于定檔了踢俄。 一張滿溢著水墨風(fēng)的海報(bào)一次次的出現(xiàn)在票圈里缩功,也就是老謀...
    青石電影閱讀 10,344評(píng)論 1 2
  • 董多嬌第226天堅(jiān)持分享,焦點(diǎn)相信都办,每個(gè)人在每一刻都會(huì)為自己做出一個(gè)決定與選擇嫡锌,是他們當(dāng)時(shí)認(rèn)為最合適自己的虑稼,所以任...
    良知良能良知良能閱讀 3,823評(píng)論 1 2
  • 一、jQuery簡(jiǎn)介 JQ是JS的一個(gè)優(yōu)秀的庫(kù)势木,大型開(kāi)發(fā)必備动雹。在此,我想說(shuō)的是跟压,JQ里面很多函數(shù)使用和JS類似,所...
    Welkin_qing閱讀 12,344評(píng)論 1 6
  • 特意早起做好兩手準(zhǔn)備――筆記本和手機(jī)都在等S老師的召喚歼培。萬(wàn)萬(wàn)沒(méi)有想到今天卡得飛起震蒋,[r]怎么發(fā)音的部分沒(méi)有聽(tīng)清楚。...
    龍沙寶石_ecde閱讀 1,658評(píng)論 3 3
  • 跑馬燈在項(xiàng)目了其實(shí)應(yīng)用的還比較多躲庄,特別是做多媒體的時(shí)候查剖,音樂(lè)視頻藍(lán)牙等等經(jīng)常用到。 比如音樂(lè)的專輯信息噪窘,藍(lán)牙通話記...
    江南皮皮閱讀 4,438評(píng)論 1 6