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