大數(shù)據(jù)“復(fù)活”記
1018
2025-04-02
本文來自【研發(fā)智能圖書館】系列,旨在介紹如何使用華為云EI服務(wù)來進(jìn)行大數(shù)據(jù)開發(fā)的架構(gòu)與實踐,給準(zhǔn)備使用華為云EI服務(wù)來進(jìn)行數(shù)據(jù)研發(fā)的小伙伴提供一些借鑒和幫助。
前言
在產(chǎn)品線多、數(shù)據(jù)量大、需求不一的背景下,我們數(shù)據(jù)團(tuán)隊需要從0到1打造一個可快速接入不同產(chǎn)品線數(shù)據(jù)、快速適配各產(chǎn)品線業(yè)務(wù)、同時能夠提供數(shù)據(jù)應(yīng)用的“數(shù)據(jù)引擎”。于是我們針對業(yè)務(wù)特點建設(shè)了測試域的數(shù)據(jù)倉庫,通過劃分?jǐn)?shù)據(jù)主題,減少數(shù)據(jù)計算鏈路,實現(xiàn)統(tǒng)一的數(shù)據(jù)加工邏輯。
首先列舉一下數(shù)據(jù)開發(fā)架構(gòu)中使用的EI服務(wù):
OBS對象存儲服務(wù)(Object Storage Service),類似于Hadoop的HDFS
DLI數(shù)據(jù)湖探索(Data Lake Insight),主要用于SparkSql和FlinkSql的數(shù)據(jù)計算
DAYU數(shù)據(jù)湖運(yùn)營平臺,作業(yè)調(diào)度系統(tǒng),實現(xiàn)ETL功能。
MRS,大數(shù)據(jù)集群服務(wù),我們的Kafka環(huán)境在上面運(yùn)行
GES,圖引擎服務(wù),用來構(gòu)建節(jié)點和邊的知識圖譜,服務(wù)于E2E追溯應(yīng)用
CSS,云搜素服務(wù),類似于elasticsearch
CDM,云數(shù)據(jù)遷移(Cloud Data Migration),用于OBS到RDS的數(shù)據(jù)同步
整體數(shù)據(jù)架構(gòu)如圖一所示,自底向上包括數(shù)據(jù)源、數(shù)據(jù)存儲、數(shù)據(jù)計算、數(shù)據(jù)應(yīng)用四層。接下來分別對這四層做詳細(xì)介紹。
圖1:測試域數(shù)據(jù)架構(gòu)
數(shù)據(jù)源
在數(shù)據(jù)源接入層,我們需要接入追溯鏈路上每個節(jié)點的數(shù)據(jù),包含ALM(需求平臺)、TestDesign(測試設(shè)計)、TMSS(測試用例)、TICC(用例執(zhí)行)、TDB(測試結(jié)果)、DTS(問題單平臺)。
在數(shù)據(jù)源的采集過程中,可以分成FDI/CDM增量采集(保存數(shù)據(jù)快照)、Binlog日志采集、接口采集、日志采集四種方式。在數(shù)據(jù)量較少且上游提供了數(shù)據(jù)接口的情況,我們直接調(diào)接口同步數(shù)據(jù)。對于服務(wù)器日志文件的采集,我們使用Flume進(jìn)行日志的同步。天級離線同步使用FDI/CDM,可以T+1增量保存數(shù)據(jù)快照。但是在業(yè)務(wù)數(shù)據(jù)庫分庫分表太多的情況下,比如超過10000張表,F(xiàn)DI/CDM需要對接每一張表,并且由于其保存數(shù)據(jù)快照的方式導(dǎo)致無法和數(shù)據(jù)庫表的添加刪除同步,配置的工作量就會特別大,所以我們使用業(yè)界成熟同時在社區(qū)中較為活躍的方案,即通過Maxwell采集Mysql的Binlog日志。通過Maxwell,我們可以很方便地從Binlog里獲取數(shù)據(jù)刪除和修改的記錄,同時Maxwell相對比較輕量并且支持使用bootstrap讀取表中的全量數(shù)據(jù),通過這套采集方案,我們解決了分庫分表數(shù)量大的問題,同時兼顧離線數(shù)據(jù)和實時數(shù)據(jù)消費(fèi),具體的數(shù)據(jù)接入流程如下圖所示。
圖2:數(shù)據(jù)接入流程
數(shù)據(jù)存儲
數(shù)據(jù)采集完后離線數(shù)據(jù)會落入到對象存儲服務(wù)(OBS),實時數(shù)據(jù)會進(jìn)入MRS集群搭建的Kafka管道。
數(shù)據(jù)計算
在數(shù)據(jù)計算部分,離線計算是基于SparkSql,而實時計算則使用Flink,任務(wù)調(diào)度使用的是華為云EI智能數(shù)據(jù)湖運(yùn)營平臺(DAYU)以實現(xiàn)ETL功能。
數(shù)據(jù)應(yīng)用
在數(shù)據(jù)應(yīng)用層,我們使用了華為云圖引擎服務(wù)(Graph Engine Service,簡稱為GES)來構(gòu)建百億級的知識圖譜,用于數(shù)據(jù)可追溯的查詢分析。當(dāng)前數(shù)據(jù)報表的底存儲使用的是關(guān)系型數(shù)據(jù)庫(RDS),后續(xù)將引入數(shù)據(jù)倉庫服務(wù)(Data Warehouse Service,簡稱為DWS),這種MPP的底層數(shù)據(jù)引擎可用于OLAP分析和對外提供接口服務(wù)。
在對外提供數(shù)據(jù)服務(wù)時,我們使用的是團(tuán)隊自研開發(fā)的AIMS,是一套基于tornado實現(xiàn)的Web 服務(wù)框架,AIMS的服務(wù)架構(gòu)如下圖所示。在第2期的文章中,介紹了AIMS的詳細(xì)內(nèi)容,這里不做重復(fù)描述。基于AIMS架構(gòu),我們目前支撐了公司30+產(chǎn)品的E2E追溯訴求。
圖3:AIMS整體服務(wù)架構(gòu)
結(jié)語
當(dāng)前,我們已打造了基于EI平臺的一站式數(shù)據(jù)服務(wù),提供包括數(shù)據(jù)規(guī)范、數(shù)據(jù)接入、數(shù)據(jù)處理與計算和數(shù)據(jù)總線服務(wù)。我們正在建設(shè)支撐各產(chǎn)品線的數(shù)據(jù)總線服務(wù),支撐全公司從需求->用例->問題單所涉及的關(guān)鍵路徑的數(shù)據(jù)查詢和獲取,同時更為嚴(yán)格地把控數(shù)據(jù)血緣,打造更為準(zhǔn)確規(guī)范、一致完整的數(shù)據(jù)質(zhì)量。在加強(qiáng)數(shù)據(jù)完備性建設(shè)的同時,可以預(yù)見的是數(shù)據(jù)開發(fā)需求的井噴,所以在今后的工作中還需要考慮開放數(shù)據(jù)計算、存儲能力等賦予業(yè)務(wù)方有數(shù)據(jù)開發(fā)的能力。我們會繼續(xù)做好數(shù)據(jù)運(yùn)營(DataOps),加強(qiáng)數(shù)據(jù)工程能力、數(shù)據(jù)集成能力和自動化能力,更好地服務(wù)于各產(chǎn)品線。
【研發(fā)智能圖書館】系列其他文章:
《主動學(xué)習(xí)在DevOps中的應(yīng)用與實踐》,《文檔驅(qū)動開發(fā)模式在 AIMS 中的應(yīng)用與實踐》,《軟件“美不美”,UI測試一下就知道》。
DevOps EI智能體 大數(shù)據(jù) 敏捷開發(fā)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。