数据有了,如何构建数据资产?
本文由百度智能云大數(shù)據(jù)資深產(chǎn)品經(jīng)理——崔寶宏在百度開發(fā)者沙龍線上分享的演講內(nèi)容整理而成。本次分享模擬企業(yè)面臨的真實(shí)場景,介紹如何利用百度大數(shù)據(jù)產(chǎn)品幫助企業(yè)構(gòu)建數(shù)據(jù)資產(chǎn)。
本次分享從以下四個(gè)環(huán)節(jié)展開:
- 場景介紹
- 架構(gòu)設(shè)計(jì)
- 數(shù)據(jù)開發(fā)
- 應(yīng)用開發(fā)
01場景介紹
為了讓大家更好的了解這些產(chǎn)品的應(yīng)用,首先模擬一個(gè)企業(yè)應(yīng)用場景demo:
有一家中型的零售商,客戶和銷售數(shù)據(jù)分散在不同系統(tǒng)中。希望通過一個(gè)項(xiàng)目打通并實(shí)現(xiàn)標(biāo)準(zhǔn)化、集中化的管理。管理好了之后同時(shí)希望能把數(shù)據(jù)實(shí)現(xiàn)價(jià)值發(fā)揮,為高層提供多維度的銷售報(bào)表,維度包括:客戶、產(chǎn)品、地域和時(shí)間。度量包括:銷售額和凈利潤。
企業(yè)在技術(shù)層面上有如下需求:
- 原始數(shù)據(jù)存儲(chǔ)于MySQL數(shù)據(jù)庫或者其他的文件中。
- 為了保護(hù)原始生態(tài)系統(tǒng)的穩(wěn)定性,不用查詢?cè)磾?shù)據(jù)直接訪問生產(chǎn)主庫。
- 最大處理TB級(jí)數(shù)據(jù),需要2小時(shí)完成數(shù)據(jù)全鏈路處理。
- 報(bào)表查詢秒級(jí)響應(yīng)。
業(yè)務(wù)需求分析
業(yè)務(wù)解讀:
- 數(shù)據(jù)打通及標(biāo)準(zhǔn)化,通常按照數(shù)倉/數(shù)據(jù)集市方式實(shí)現(xiàn)數(shù)據(jù)治理。
- 高層使用多維報(bào)表需要考慮頁面效果以及需求高效響應(yīng),客戶高層的需求除了常用的東西之外還需要快速的響應(yīng)需求。
技術(shù)解讀:
- TB級(jí)別在大數(shù)據(jù)領(lǐng)域?qū)儆跀?shù)據(jù)量中等規(guī)模,針對(duì)大數(shù)據(jù)處理從TB到PB的數(shù)據(jù)增量的過程當(dāng)中,需要考慮底層未來的擴(kuò)展性。
- 大數(shù)據(jù)量報(bào)表秒級(jí)響應(yīng)依賴高性能分析型數(shù)據(jù)庫。
設(shè)計(jì)方案:
- 依托多行業(yè)實(shí)踐經(jīng)驗(yàn)方法論進(jìn)行構(gòu)建,實(shí)現(xiàn)數(shù)據(jù)資產(chǎn)管理的集中化、標(biāo)準(zhǔn)化、穩(wěn)定、歷史資產(chǎn)保護(hù)
- 為保障大規(guī)模數(shù)據(jù)處理的性能、穩(wěn)定性、擴(kuò)展性,使用分布式大數(shù)據(jù)基礎(chǔ)平臺(tái)BMR
- 為提高數(shù)據(jù)治理效率,降低數(shù)據(jù)資產(chǎn)構(gòu)建過程門檻,使用一站式大數(shù)據(jù)開發(fā)治理平臺(tái)EDAP
- 為保障TB級(jí)明細(xì)數(shù)據(jù)多維數(shù)據(jù)查詢性能,使用MPP數(shù)據(jù)庫Doris
- 為加速報(bào)表開發(fā)效率以及可視化渲染效果,使用可視化報(bào)表開發(fā)平臺(tái)sugarBl
02架構(gòu)設(shè)計(jì)
技術(shù)架構(gòu)與數(shù)據(jù)架構(gòu)
基于這個(gè)業(yè)務(wù)需求,首先就要進(jìn)行架構(gòu)設(shè)計(jì)。技術(shù)架構(gòu)其中分了三層:
- 最底層有存算引擎,包括托管大數(shù)據(jù)平臺(tái)BMR和數(shù)據(jù)倉庫Doris。
- 開發(fā)平臺(tái)是面向開發(fā)者提高開發(fā)效率的工具——數(shù)據(jù)湖管理與分析EasyDAP。
- 面向高管駕駛艙報(bào)表的Sugar BI。
這就是產(chǎn)品層面的技術(shù)架構(gòu)。
右側(cè)是數(shù)據(jù)架構(gòu),數(shù)據(jù)要從原始的生產(chǎn)系統(tǒng)里面數(shù)據(jù)庫拿出來,所以數(shù)據(jù)架構(gòu)的源數(shù)據(jù)在MySQL或者文件里。
在構(gòu)建數(shù)倉的過程中要進(jìn)行大規(guī)模的ETL處理,一部分要進(jìn)行基于數(shù)倉的實(shí)時(shí)查詢,所以使用了BMR里面的Hive以及Doris這兩款存儲(chǔ)引擎來完成數(shù)據(jù)的存儲(chǔ)和數(shù)據(jù)的加工。
最上層生成的報(bào)表有UI層面的頁面數(shù)據(jù)。
整體的數(shù)據(jù)架構(gòu)也是分三層:源數(shù)據(jù)、倉內(nèi)數(shù)據(jù)、頁面數(shù)據(jù)。
數(shù)倉構(gòu)建
技術(shù)架構(gòu)之外,還需要進(jìn)行數(shù)倉構(gòu)建。
數(shù)倉構(gòu)建的核心就是數(shù)據(jù)要以一種標(biāo)準(zhǔn)化、規(guī)范化、統(tǒng)一化的形式把數(shù)據(jù)管理起來。
這里引入主體域的概念:什么數(shù)據(jù)應(yīng)該存在哪個(gè)主題下,具體到不同的業(yè)務(wù)里面應(yīng)該怎么劃分主題。
劃分方案是:實(shí)體、事件和描述,可以客觀的把日常生活中各種各樣的業(yè)務(wù)用這三個(gè)關(guān)系表達(dá)出來。
舉例一個(gè)業(yè)務(wù)場景,比如某人去超市購物,商品或者人就是一個(gè)實(shí)體,在購物的過程中比如刷卡這是事件,所謂事件就是什么時(shí)間什么地點(diǎn)什么人做了什么事,它是一條事務(wù)性的記錄,它在做這些事情的過程當(dāng)中有這樣一些定語相關(guān)的對(duì)他進(jìn)行描述。
回到構(gòu)建的場景里面來,這是一家中型的零售商在進(jìn)行產(chǎn)品的售賣,實(shí)體有客戶實(shí)體、產(chǎn)品實(shí)體和合同實(shí)體。事件是在購買產(chǎn)品的過程當(dāng)中有咨詢、購買和投訴,按照這樣的分類方式就把主題域劃分清楚了。
數(shù)據(jù)模型分層架構(gòu)
把模型劃分好了之后需要對(duì)ETL中數(shù)據(jù)進(jìn)行分層。
左邊是最通用的分層方式:從ODS層,到DWD層,再到DWA層,最后到ADS應(yīng)用層,這也是市面上主流的廠商提供的數(shù)據(jù)分層的結(jié)構(gòu)。我們認(rèn)為這樣的分層方式雖然通用,但是不夠細(xì)化,對(duì)于一些精細(xì)化的數(shù)據(jù)管理應(yīng)該是按照7層的數(shù)據(jù)流架構(gòu),這樣能夠涵蓋所有的加工過程。
在數(shù)據(jù)流架構(gòu)之中,SRC是元數(shù)據(jù)層。ODS是貼源層,貼源層和SRC實(shí)際上就是實(shí)現(xiàn)數(shù)據(jù)上的解耦,數(shù)據(jù)層面是一個(gè)鏡像級(jí)的拷貝,目的是完成對(duì)所有生產(chǎn)型業(yè)務(wù)系統(tǒng)的備份。
DWD是標(biāo)準(zhǔn)明細(xì)層,從數(shù)據(jù)粒度上講是類似的,從數(shù)據(jù)的定義上是實(shí)現(xiàn)了統(tǒng)一化。
DWA是將數(shù)據(jù)進(jìn)行加工匯總。DMA存放個(gè)性化的使用。之后將不同指標(biāo)的計(jì)算方式拆分成兩層比如報(bào)表層和分析層以及最外層的展示層,在構(gòu)建當(dāng)中可以靈活的選擇需要哪一層。
03數(shù)據(jù)開發(fā)
開發(fā)順序
開發(fā)過程當(dāng)中,需要進(jìn)行大規(guī)模數(shù)據(jù)的存儲(chǔ)和計(jì)算,所以需要一款大數(shù)據(jù)引擎BMR,建數(shù)倉的核心是BMR里面的Hive,基于Hive數(shù)據(jù)在應(yīng)用層需要做多維的秒級(jí)的實(shí)時(shí)響應(yīng)查詢,所以需要一款高性能的分析型數(shù)據(jù)庫Doris,開發(fā)過程中使用EasyDAP,報(bào)表制作使用Sugar BI。
為什么要用BMR?
有非常豐富的組件,不僅是可以完成結(jié)構(gòu)化的數(shù)倉,還可以支持完成數(shù)據(jù)湖的搭建。
高性價(jià)比的產(chǎn)品,可以使用更小的資源進(jìn)行更大規(guī)模數(shù)據(jù)的處理,用更少的存儲(chǔ)來存更大量級(jí)的數(shù)據(jù),同等規(guī)模下成本會(huì)越來越低。
可以高效運(yùn)維,整個(gè)平臺(tái)就是頁面是全托管的使用方式,不需要在底層寫命令來做運(yùn)維監(jiān)控,所有的東西都能通過控制臺(tái)來完成。
非常安全可靠,有各種各樣的安全認(rèn)證,有行列級(jí)別的數(shù)據(jù)權(quán)限,在數(shù)據(jù)的加密脫敏方面有固定的組件支撐,用戶的所有操作都可以通過審計(jì)。
Hive庫表創(chuàng)建
進(jìn)行BMR的集群構(gòu)建和庫表的創(chuàng)建,需要把Hive表建立起來。在建Hive表的過程當(dāng)中,需要把Hive表的集群搭建起來,其中有這么幾個(gè)步驟:
- 第一步是集群創(chuàng)建,過程當(dāng)中要選擇一些必要的組件比如Hive、Spark。選好之后需要進(jìn)行隊(duì)列的管理,能夠最大力度保證核心任務(wù)快速跑完,所有的隊(duì)列創(chuàng)建好了之后,在實(shí)際運(yùn)行過程中是需要去檢測有沒有一些運(yùn)行中出現(xiàn)的服務(wù)異常,或者服務(wù)異常之后的報(bào)警功能。
- 第二步要進(jìn)行Hive庫表的創(chuàng)建,建立一些數(shù)據(jù)庫如ODS庫、DWD庫和DWA庫,建表過程當(dāng)中,每一層的庫都遵循建表的規(guī)范。
Doris產(chǎn)品特性
Doris產(chǎn)品其實(shí)是高性能的MPP數(shù)倉,它的特性有以上幾點(diǎn)。
Doris建庫建表
在Doris上需要建立好DMA,建庫的過程只需要creat_database 命令,然后通過可視化的頁面就完成了,建完庫之后需要把DMA里面的表創(chuàng)建好,建表規(guī)范與DWA和DWD一致,都是按照主題域然后特定的業(yè)務(wù)實(shí)體來表達(dá)。
在這個(gè)建表的過程當(dāng)中可以指定哪些表是維度,所謂維度就是說可以用來做聚合,把聚合的字段定義好之后,那么在這張表的寫入過程當(dāng)中,程序就會(huì)默認(rèn)幫你把底層多維交叉的分組數(shù)據(jù)在指標(biāo)層面做了分組和統(tǒng)計(jì),當(dāng)我們?nèi)ゲ樵冞@兩個(gè)維度下對(duì)應(yīng)的指標(biāo)數(shù)據(jù)的時(shí)候,這已經(jīng)不是一個(gè)實(shí)時(shí)計(jì)算的過程而只是一個(gè)實(shí)時(shí)查詢的過程,所以它能實(shí)現(xiàn)數(shù)據(jù)的快速響應(yīng)。
最后建完表之后要把數(shù)據(jù)快速導(dǎo)入,Doris和主流的Hadoop生態(tài)是兼容的,Hive建完倉之后,數(shù)據(jù)其實(shí)是放在HDFS中,所以只需要把HDFS導(dǎo)入就可以了。
EasyDAP產(chǎn)品特性
用這些基礎(chǔ)的引擎構(gòu)建完之后,在開發(fā)的過程中是需要把ETL工作流通過一款產(chǎn)品來完成,這款產(chǎn)品就是EasyDAP。
- 能做數(shù)據(jù)集成、數(shù)據(jù)開放、數(shù)據(jù)分析和數(shù)據(jù)服務(wù)。它的特性就是可以把Doris的Hive當(dāng)作數(shù)據(jù)源引入進(jìn)來,把BMR的計(jì)算引擎當(dāng)作計(jì)算資源引入進(jìn)來。
- 提供了一個(gè)低門檻的開發(fā)方式,在開發(fā)的過程當(dāng)中不需要寫代碼,通過拖拉組件就可以完成。
- 非常安全可靠,在這個(gè)平臺(tái)內(nèi)所有的操作都是通過審計(jì)日志的,表的訪問也都是有授權(quán)的。
- 非常開放兼容,除了能夠?qū)影俣鹊腄oris、Hadoop,還能夠?qū)邮忻嫔掀渌麖S商開源的Hadoop生態(tài)。
數(shù)據(jù)源配置
在EasyDAP進(jìn)行數(shù)據(jù)開發(fā)的過程當(dāng)中,第一步就是要把原始數(shù)據(jù)引入到數(shù)倉里面,在平臺(tái)上創(chuàng)建一個(gè)計(jì)算資源,然后再把源MySQL的JDBC配置好,把目標(biāo)的Hive JDBC配置好,就可以完成一些基礎(chǔ)的操作。從權(quán)限上來講,這些操作都應(yīng)該是管理員來操作的,開發(fā)人員進(jìn)來之后只需要進(jìn)行開發(fā)就行,由管理人員來進(jìn)行這些基礎(chǔ)的配置。
數(shù)據(jù)開發(fā)階段
把以上基礎(chǔ)配置好之后就進(jìn)入數(shù)據(jù)開發(fā)階段。首先創(chuàng)建開發(fā)項(xiàng)目,然后綁定項(xiàng)目需要使用的資源,最后需要把開發(fā)人員進(jìn)行授權(quán)管理。
編寫數(shù)據(jù)集作業(yè),數(shù)據(jù)寫入Hive ODS庫表中
把基礎(chǔ)的管理相關(guān)的工作做完之后,就是實(shí)際開發(fā)人員進(jìn)入平臺(tái)進(jìn)行ETL開發(fā)。圖中的例子里想要把MySQL里面的數(shù)據(jù)集成到Hive里,第一步就是要把MySQL里面的原始數(shù)據(jù)放入到Hive的ODS層。
舉例說明:MySQL里面有兩個(gè)庫,一個(gè)是CRM庫,一個(gè)是MARKET庫,CRM庫里面有一種表是客戶基本信息(CUST_INFO),MARKET庫里面也有一種表是客戶明細(xì)信息(CUST_DETAIL),同時(shí)MARKET庫里面還有合同信息(CONTRACT_INFO)。在Hive里面的話就是按照Hive的命名規(guī)范,原始庫名+原始系統(tǒng)名+原始表名。
加工的過程當(dāng)中,可以有幾種加工模式,第一個(gè)用可視化開發(fā)工具,第二用腳本開發(fā)。
線上監(jiān)控以及告警處理
配置調(diào)動(dòng)實(shí)際上就是來執(zhí)行異常告警,失敗重做,以及日常的日志排查,同時(shí)也支持手工的執(zhí)行。
Hive倉內(nèi)開發(fā)
把原始數(shù)據(jù)庫里的數(shù)據(jù)寫入到Hive的ODS層后,需要在Hive里面做倉內(nèi)開發(fā),也就是要把數(shù)據(jù)從ODS層寫入DWD層寫入DWA層,因?yàn)镠ive支持豐富的數(shù)據(jù)生態(tài),所以使用HQL來實(shí)現(xiàn)。
左邊這張圖,ODS中有三張表,在加工進(jìn)入DWD中是要把兩個(gè)客戶的基本信息做統(tǒng)一,寫入到DWD的客戶主題下的信息表,然后銷售合同里面的合同信息在主題域里面認(rèn)為是一個(gè)訂單,所以在事件主題下面有一個(gè)訂單表。
加工好了之后就要做匯總層,其中包括天級(jí)、月級(jí)、季級(jí)和年級(jí)。
寫入Doris
到了DWA之后,下一步要寫入Doris,在DWA和DMA里面其實(shí)只是做數(shù)據(jù)的轉(zhuǎn)儲(chǔ),目標(biāo)是為了響應(yīng)實(shí)時(shí)的數(shù)據(jù)查詢。只需要將數(shù)據(jù)源選擇Hive,將數(shù)據(jù)目標(biāo)選擇Doris,然后把圖配好之后,就可以把數(shù)據(jù)生成了,也可以使用底層腳本的方式,使用Doris的命令也可以把Hive里面的數(shù)據(jù)寫入Doris里面。
以上是老師的全部分享內(nèi)容,有問題歡迎在評(píng)論區(qū)提出。
往期推薦
🔗
可視化神器背后的奧秘
6000字,詳解數(shù)據(jù)倉庫明星產(chǎn)品背后的技術(shù)奧秘
3個(gè)步驟,4大平臺(tái),搞定大規(guī)模數(shù)據(jù)處理
掃描二維碼,備注:大數(shù)據(jù)開發(fā),立即加入大數(shù)據(jù)產(chǎn)品&技術(shù)交流群。
總結(jié)
以上是生活随笔為你收集整理的数据有了,如何构建数据资产?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3个步骤,4大平台,完成大规模数据处理
- 下一篇: 中国区块链应用市场将爆发,百度创新指数第