[摘要] 本文設(shè)計(jì)一種基于Spark離線計(jì)算框架的數(shù)據(jù)質(zhì)量評(píng)估方法,可以通過(guò)自定義劃分?jǐn)?shù)據(jù)集、指定多層級(jí)的質(zhì)量計(jì)算規(guī)則,以實(shí)現(xiàn)高度自定義的定制化數(shù)據(jù)質(zhì)量評(píng)估方法,為業(yè)務(wù)決策、技術(shù)方案優(yōu)化、技術(shù)選型等提供數(shù)據(jù)支持。
[關(guān)鍵詞]離線計(jì)算;大數(shù)據(jù);數(shù)據(jù)質(zhì)量;車(chē)聯(lián)網(wǎng)
中圖分類(lèi)號(hào):U463.6 " 文獻(xiàn)標(biāo)志碼:A " " 文章編號(hào):1003—8639(2023)07
A Data Quality Assessment Method Based on SparkComputing
Liang GuoHaoZhu MeiQing,Wei TongMing,Jiang XiangBin,Zhang Liang,
(SAIC GM Wuling Automoblie Co.,Ltd .,Guangxi Laboratory of New Energy Automobile,Guangxi Key Laboratory of Automobile Four New Features,Liuzhou Guangxi,545007,China)
[Abstract]
Keywords: offline computing; big data; data quality; Internet of Vehicles
收稿日期:2022-11-25
作者簡(jiǎn)介:梁國(guó)豪(1996—),男,助理工程師,研究方向?yàn)榇髷?shù)據(jù)處理、數(shù)據(jù)管理。
智能網(wǎng)聯(lián)汽車(chē)(Intelligent Connected Vehicle,ICV)是車(chē)聯(lián)網(wǎng)與智能車(chē)的有機(jī)聯(lián)合,因搭載了先進(jìn)的車(chē)載傳感器、控制器、執(zhí)行器等裝置,所以每時(shí)每刻都在產(chǎn)生大量數(shù)據(jù),是大數(shù)據(jù)的其中一種重要組成部分。由于需要對(duì)車(chē)輛部分狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控、預(yù)警或者需要對(duì)車(chē)輛進(jìn)行操作控制,往往需要對(duì)車(chē)輛上各種傳感器數(shù)據(jù)進(jìn)行采集并上傳至云端服務(wù)器,云端能夠掌握大量的數(shù)據(jù)并實(shí)現(xiàn)相應(yīng)計(jì)算。由于不同生產(chǎn)廠家、不同批次的零件等都有可能存在差異,往往導(dǎo)致采集到的數(shù)據(jù)不準(zhǔn)確性,需對(duì)車(chē)輛采集的數(shù)據(jù)進(jìn)行相應(yīng)的質(zhì)量分析計(jì)算,以評(píng)估各零件的信號(hào)采樣質(zhì)量。為了兼顧計(jì)算效率及計(jì)算規(guī)模,需要選擇分布式離線計(jì)算框架,并基于此框架進(jìn)行數(shù)據(jù)計(jì)算。
ApacheSpark得益于MapReduce分布式編程模型帶來(lái)的優(yōu)點(diǎn)[1],是目前大數(shù)據(jù)領(lǐng)域開(kāi)源的一款分布式離線計(jì)算框架,為了實(shí)現(xiàn)對(duì)海量的車(chē)聯(lián)網(wǎng)數(shù)據(jù)的計(jì)算分析,需要設(shè)計(jì)依賴(lài)于此計(jì)算框架的離線計(jì)算方法。
1 "數(shù)據(jù)總覽
現(xiàn)代智能網(wǎng)聯(lián)汽車(chē)為了實(shí)現(xiàn)更人性化、更貼切的功能,通常比傳統(tǒng)汽車(chē)使用更多的傳感器進(jìn)行數(shù)據(jù)采集,同時(shí)為了保證功能的實(shí)時(shí)性,數(shù)據(jù)采集頻率相較傳統(tǒng)汽車(chē)也會(huì)更高。在搭載物聯(lián)網(wǎng)卡的基礎(chǔ)上,現(xiàn)代網(wǎng)聯(lián)汽車(chē)可以將大量的零件數(shù)據(jù)通過(guò)TCP/IP協(xié)議進(jìn)行身份認(rèn)證后完成幾乎實(shí)時(shí)的上傳,在網(wǎng)絡(luò)狀態(tài)理想的情況下,延遲可以控制在秒級(jí)別,甚至毫秒級(jí)別內(nèi)。
云端接收到終端零件上傳的請(qǐng)求時(shí),需要在第一時(shí)間內(nèi)完成對(duì)該終端身份的合法性驗(yàn)證,驗(yàn)證完成后可以按照約定的通信規(guī)范內(nèi)容進(jìn)行數(shù)據(jù)的接及解析。經(jīng)過(guò)一系列的計(jì)算處理后,云端會(huì)將接收到的車(chē)輛零件等數(shù)據(jù)進(jìn)行分布式的可靠性存儲(chǔ),以保證數(shù)據(jù)的完整性及可用性。該存儲(chǔ)操作通常以定時(shí)任務(wù)的方式進(jìn)行,會(huì)將一段時(shí)間內(nèi)的數(shù)據(jù)以邏輯隔離的方式進(jìn)行分開(kāi)存儲(chǔ),即后續(xù)需要讀取數(shù)據(jù)時(shí)可以根據(jù)時(shí)間范圍進(jìn)行篩選而無(wú)需對(duì)所有數(shù)據(jù)進(jìn)行遍歷。
由于數(shù)據(jù)網(wǎng)絡(luò)的不穩(wěn)定性、零件的差異性、用戶場(chǎng)景的不固定性,不可能所有的上傳數(shù)據(jù)都是實(shí)時(shí)到達(dá)的,部分?jǐn)?shù)據(jù)有可能跨越數(shù)小時(shí)甚至數(shù)日后才上傳至云端。為了使得計(jì)算能夠覆蓋足夠多的數(shù)據(jù),又能保證一定的時(shí)效性,定時(shí)計(jì)算開(kāi)始的時(shí)間一般會(huì)做一定的調(diào)整。
數(shù)據(jù)質(zhì)量是指在指定條件下使用時(shí),數(shù)據(jù)的特性滿足明確的和隱含的要求的程度[2]。海量的云端大數(shù)據(jù)始終是需要為業(yè)務(wù)服務(wù),而在數(shù)據(jù)發(fā)光發(fā)熱之前,需要對(duì)數(shù)據(jù)質(zhì)量有一個(gè)全面的評(píng)估,以體現(xiàn)其可信度及可用性,因而需要對(duì)數(shù)據(jù)進(jìn)行質(zhì)量分析。
2 "方法
2.1 "計(jì)算引擎
傳統(tǒng)的數(shù)據(jù)計(jì)算方式通常將任務(wù)提交到單臺(tái)服務(wù)器上,數(shù)據(jù)量在GB級(jí)別以下時(shí)通常是可行的。當(dāng)數(shù)據(jù)量迅速增長(zhǎng)達(dá)到TB、PB甚至更多時(shí),傳統(tǒng)的單機(jī)計(jì)算模式已經(jīng)無(wú)法滿足相應(yīng)規(guī)模的計(jì)算需求了,分布式計(jì)算的出現(xiàn)解決了此問(wèn)題。通過(guò)將巨大的工作量轉(zhuǎn)化為多個(gè)批次的小工作量,每臺(tái)計(jì)算機(jī)負(fù)責(zé)一個(gè)批次的數(shù)據(jù)計(jì)算,最后將結(jié)果匯總,以達(dá)到超大數(shù)據(jù)量計(jì)算的效果。借助現(xiàn)代開(kāi)源的大數(shù)據(jù)離線計(jì)算框架ApacheSpark,可以輕易完成大數(shù)據(jù)的分布式離線任務(wù)的開(kāi)發(fā)及結(jié)果計(jì)算。
2.2 "方法模型
基于以上數(shù)據(jù)現(xiàn)狀及離線計(jì)算的支持,本文設(shè)計(jì)一種基于ApacheSpark的數(shù)據(jù)質(zhì)量評(píng)估方法,詳見(jiàn)內(nèi)容如下。
1)一種符合約定的數(shù)據(jù)范圍劃分方法,即所分析的數(shù)據(jù)范圍應(yīng)當(dāng)有具體的業(yè)務(wù)定義,如2022年1月1日所有車(chē)輛的電池溫度數(shù)據(jù)的數(shù)據(jù)質(zhì)量評(píng)估。有明確業(yè)務(wù)定義的數(shù)據(jù)定義,其質(zhì)量評(píng)估結(jié)果才具備實(shí)際意義。
2)直接處理的數(shù)據(jù)應(yīng)當(dāng)是結(jié)構(gòu)化或者半結(jié)構(gòu)化的,即每一條數(shù)據(jù)最終的解析形式為鍵值對(duì),如a=1,復(fù)雜的數(shù)據(jù)解析工作不在此方法范疇之中。
3)一種針對(duì)單條數(shù)據(jù)中單個(gè)屬性的數(shù)據(jù)質(zhì)量評(píng)估方法,其評(píng)估規(guī)則或參考值應(yīng)當(dāng)是可配置的,應(yīng)當(dāng)與數(shù)據(jù)庫(kù)配置結(jié)合,以滿足通用化需求[3]。
4)一種針對(duì)單條數(shù)據(jù)(多屬性)的單條數(shù)據(jù)質(zhì)量評(píng)估方法。
5)一種針對(duì)整個(gè)數(shù)據(jù)集(指劃分?jǐn)?shù)據(jù)范圍后)的數(shù)據(jù)集質(zhì)量評(píng)估方法。
圖1是數(shù)據(jù)集質(zhì)量評(píng)估流程圖,圖2是單條數(shù)據(jù)質(zhì)量評(píng)估流程圖。
2.3 "實(shí)例化
基于以上流程說(shuō)明,可以發(fā)現(xiàn)此方法正是依托于大數(shù)據(jù)的分布式計(jì)算,將龐雜的工作量拆分為多個(gè)細(xì)小的任務(wù),從而逐級(jí)向上計(jì)算,得到最終結(jié)果。
以上方法模型,僅定義了各任務(wù)單元需要完成的計(jì)算職責(zé),本文將列舉其中一種方法作為示例,實(shí)例化體現(xiàn)如下所述。
1)數(shù)據(jù)按照零件信號(hào)采集時(shí)間以每個(gè)自然日劃分。
2)單條數(shù)據(jù)解析后以鍵值對(duì)存儲(chǔ),為保證通用性,值均轉(zhuǎn)換為String存儲(chǔ),即單條數(shù)據(jù)解析為Maplt;String,Stringgt;。
3)針對(duì)單條數(shù)據(jù)中單個(gè)屬性的數(shù)據(jù)質(zhì)量評(píng)估方法實(shí)例劃分為:①單個(gè)屬性需要定義其實(shí)際類(lèi)型,一般設(shè)置類(lèi)型為整數(shù)類(lèi)型、浮點(diǎn)數(shù)類(lèi)型、字符串類(lèi)型、布爾類(lèi)型,如屬性a實(shí)際類(lèi)型為Integer整數(shù)類(lèi)型,屬性b實(shí)際類(lèi)型為Boolean布爾類(lèi)型;②針對(duì)每個(gè)屬性的評(píng)分方法,數(shù)據(jù)質(zhì)量得分記為Integer整數(shù)類(lèi)型變量SIGNAL_QR,滿分記為1分,空值記為0分,非有效值記為-1分;③針對(duì)類(lèi)型轉(zhuǎn)換前的數(shù)據(jù),當(dāng)原始單屬性值為空時(shí),定義為空值,當(dāng)從String轉(zhuǎn)換至其實(shí)際類(lèi)型產(chǎn)生錯(cuò)誤時(shí),定義為非有效值;④針對(duì)實(shí)際類(lèi)型為數(shù)值類(lèi)型的數(shù)據(jù),需要定義其有效值范圍,如浮點(diǎn)型屬性a的有效值范圍為[10.0,15.5];⑤針對(duì)實(shí)際類(lèi)型為字符串類(lèi)型的數(shù)據(jù),需要定義其有效值范圍,一般為枚舉值列表,如字符串屬性city的枚舉值為:南寧、柳州、桂林;⑥針對(duì)實(shí)際類(lèi)型為布爾類(lèi)型的數(shù)據(jù),需要定義其有效值范圍,一般為枚舉值列表,如布爾類(lèi)型屬性isTure的枚舉值只允許為true。
4)針對(duì)單條數(shù)據(jù)的單條數(shù)據(jù)質(zhì)量參數(shù)計(jì)算結(jié)果是單個(gè)數(shù)值,記為float單精度浮點(diǎn)類(lèi)型變量SIGNALS_QR,保留2位小數(shù),其值取單條數(shù)據(jù)下各屬性值的數(shù)據(jù)質(zhì)量參數(shù)的數(shù)學(xué)平均值,即SIGNALS_QR = AVG(Listlt;SIGNAL_QRgt;)。
5)針對(duì)整個(gè)數(shù)據(jù)集的數(shù)據(jù)集質(zhì)量評(píng)估結(jié)果,包含多個(gè)屬性的集合變量記為對(duì)象BAT_SIGNALS_QR。列表中包含:數(shù)學(xué)平均值數(shù)據(jù)質(zhì)量BAT_QR_AVG、數(shù)據(jù)質(zhì)量參數(shù)95線BAT_QR_95LINE(95%的數(shù)據(jù)質(zhì)量大于此值)、數(shù)據(jù)質(zhì)量參數(shù)99線BAT_QR_99LINE(99%的數(shù)據(jù)質(zhì)量大于此值)。以上變量均保留4位小數(shù)。
通過(guò)以上計(jì)算,可以對(duì)整個(gè)數(shù)據(jù)集的質(zhì)量有一個(gè)整體的評(píng)估,以下是相關(guān)質(zhì)量參數(shù)結(jié)果的解析。①數(shù)學(xué)平均值數(shù)據(jù)質(zhì)量BAT_QR_AVG:可以看出整體數(shù)據(jù)值的缺失和非有效值情況。若此值比較低,表明無(wú)效值以及空值出現(xiàn)的概率較高,需要抽取部分?jǐn)?shù)據(jù)做無(wú)效值的排查,即可以作為一種預(yù)警及提示手段促進(jìn)數(shù)據(jù)生產(chǎn)方對(duì)于數(shù)據(jù)質(zhì)量的排查;②數(shù)據(jù)質(zhì)量參數(shù)95線BAT_QR_95LINE:通過(guò)劃分95%的數(shù)據(jù)整體,屏蔽少于5%的可能存在異常數(shù)據(jù)的影響,從而分析出大部分?jǐn)?shù)據(jù)的一個(gè)相對(duì)最低數(shù)據(jù)質(zhì)量水準(zhǔn);③數(shù)據(jù)質(zhì)量參數(shù)99線BAT_QR_99LINE:通過(guò)劃分99%數(shù)據(jù)的整體,屏蔽少于1%的可能存在的極端異常數(shù)據(jù)的影響,分析絕大部分?jǐn)?shù)據(jù)的最低數(shù)據(jù)質(zhì)量。
2.4 "應(yīng)用
通過(guò)統(tǒng)計(jì)數(shù)學(xué)平均值數(shù)據(jù)質(zhì)量、數(shù)據(jù)質(zhì)量參數(shù)%95線、數(shù)據(jù)質(zhì)量參數(shù)%99線,已經(jīng)能夠?qū)?shù)據(jù)總體進(jìn)行質(zhì)量監(jiān)控及質(zhì)量數(shù)據(jù)輸出。當(dāng)BAT_QR_AVG、BAT_QR_95LINE、BAT_QR_99LINE都相對(duì)較低時(shí),可能是由于所有零件的特征都是一致的,但是需要去詳細(xì)分析其原因;當(dāng)BAT_QR_AVG相對(duì)正常,但是BAT_QR_95LINE或BAT_QR_99LINE遠(yuǎn)低于BAT_QR_AVG,則可能是有少量部分零件或數(shù)據(jù)出現(xiàn)異常,需要排查具體的上傳終端或者零件號(hào)等。
3 "結(jié)語(yǔ)
本文介紹一種基于Spark的數(shù)據(jù)質(zhì)量評(píng)估方法,本質(zhì)上是利用分布式大數(shù)據(jù)計(jì)算引擎對(duì)海量數(shù)據(jù)進(jìn)行離線計(jì)算,通過(guò)定義不同數(shù)據(jù)字段的不同有效值定義,統(tǒng)計(jì)出批量數(shù)據(jù)的自定義數(shù)據(jù)質(zhì)量參數(shù)結(jié)果?;诖朔椒?,各開(kāi)發(fā)者還可以拓展并加入其它功能特性,如:字段質(zhì)量分?jǐn)?shù)判斷邏輯、單條數(shù)據(jù)質(zhì)量結(jié)果計(jì)算邏輯、數(shù)據(jù)集質(zhì)量參數(shù)結(jié)果輸出。同時(shí),通過(guò)數(shù)據(jù)集分區(qū),將不同特征如車(chē)型作為區(qū)分?jǐn)?shù)據(jù)子集的依據(jù)以便分析不同車(chē)型產(chǎn)生的數(shù)據(jù)質(zhì)量差異??偠灾?,依托于大數(shù)據(jù)離線處理框架,通過(guò)參考此方法的處理思路,可以對(duì)處理方法內(nèi)容進(jìn)行深度定制化以滿足實(shí)際業(yè)務(wù)需求。
參考文獻(xiàn):
[1]Jeffrey Dean,Sanjay Ghemawat. MapReduce:simplified data processing on large clusters[J]. Communications of the ACM,2008,51(1):107-113.
[2]武小軍. 數(shù)據(jù)質(zhì)量和數(shù)據(jù)質(zhì)量評(píng)價(jià)[J]. 上海質(zhì)量,2021(4):13-14.
[3]李洪濤. 基于數(shù)據(jù)庫(kù)的數(shù)據(jù)質(zhì)量檢查[J]. 中國(guó)管理信息化,2021,24(23):165-167.
(編輯 "凌 "波)