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