倪峻
以智能網(wǎng)聯(lián)大數(shù)據(jù)在高并發(fā)場景下的應(yīng)用為基礎(chǔ),分析了目前汽車行業(yè)主流數(shù)據(jù)平臺技術(shù)的優(yōu)勢與劣勢。以實際業(yè)務(wù)需求出發(fā),制定了融合離線數(shù)據(jù)平臺和實時數(shù)據(jù)平臺的車聯(lián)網(wǎng)大數(shù)據(jù)平臺架構(gòu),以及基于部分開源產(chǎn)品組件,結(jié)合自主開發(fā)組件的解決方案。通過平臺的開發(fā)交付、迭代優(yōu)化,以及業(yè)務(wù)應(yīng)用過程中的案例分析,梳理出該數(shù)據(jù)平臺的技術(shù)特點,并提出了后續(xù)改進(jìn)和擴展的技術(shù)思路。
智能網(wǎng)聯(lián);數(shù)據(jù)平臺;實時數(shù)據(jù);離線數(shù)據(jù);數(shù)據(jù)化
0 前言
隨著車聯(lián)網(wǎng)和物聯(lián)網(wǎng)功能在汽車行業(yè)逐步成為標(biāo)配,通過智能網(wǎng)聯(lián)的應(yīng)用提升產(chǎn)品整體競爭力和用戶體驗,已成為所有汽車整車企業(yè)、零部件企業(yè),甚至汽車服務(wù)企業(yè)需要重點關(guān)注的領(lǐng)域之一。為了在滿足國家法律法規(guī)要求,以及全國各地甚至國外地區(qū)車輛準(zhǔn)入條件的前提下,同時盡可能地滿足用戶的個性化、整車智能化等需求,與車聯(lián)網(wǎng)相關(guān)的數(shù)據(jù)采集、傳輸、接收、轉(zhuǎn)發(fā)、保存、分析、應(yīng)用等,已成為智能網(wǎng)聯(lián)板塊非常關(guān)鍵的環(huán)節(jié)[1]。
根據(jù)車輛動力不同,車輛可分為燃油車、純電動車、燃料電池車等;根據(jù)使用場景的不同,車輛可以分為偏個人客戶的乘用車、偏商務(wù)用戶的商用車,以及工程機械與房車等。在不同動力和應(yīng)用場景下,車輛行駛數(shù)據(jù)、駕駛行為數(shù)據(jù)、車載設(shè)備數(shù)據(jù)、車輛周邊環(huán)境數(shù)據(jù),以及采集范圍、頻率、數(shù)據(jù)包大小、數(shù)據(jù)格式、加密解密、數(shù)據(jù)響應(yīng)時效(實時/準(zhǔn)實時/非實時)等各項因素,都需要在架構(gòu)方案設(shè)計時進(jìn)行綜合考慮和統(tǒng)籌平衡。
本文以實現(xiàn)商乘并舉、多車型、多公司、多場景復(fù)用的智能網(wǎng)聯(lián)數(shù)據(jù)平臺為目標(biāo),對比分析了目前幾種主要的數(shù)據(jù)平臺技術(shù),綜合考慮實際應(yīng)用需求、投入產(chǎn)出、預(yù)留擴展性等因素,制定了基于部分開源組件加自主開發(fā)的架構(gòu)和技術(shù)方案,完成平臺的整體搭建實施,并通過不斷的數(shù)據(jù)化應(yīng)用和分析,持續(xù)推進(jìn)數(shù)據(jù)平臺的迭代和優(yōu)化。
1 應(yīng)用場景分析
智能網(wǎng)聯(lián)最基本的數(shù)據(jù)需求,源于國家和地方政府對于新能源車輛安全行駛的管控要求,采集的數(shù)據(jù)包括基本的里程數(shù)、行駛軌跡、充放電情況等,逐步增加擴展到動力電池狀態(tài)、電動機狀態(tài)等數(shù)百個參數(shù)。隨著國家對于國六車型數(shù)據(jù)標(biāo)準(zhǔn)的推廣與實施,未來車聯(lián)網(wǎng)數(shù)據(jù)標(biāo)準(zhǔn)將成為所有車型的準(zhǔn)入要求。除了基本法規(guī)標(biāo)準(zhǔn)的要求外,為了實現(xiàn)智能網(wǎng)聯(lián)的更多應(yīng)用,如興趣點(POI)推送、人車智能交互、初級智能駕駛、車隊管理、客貨倉管理、租賃車輛遠(yuǎn)程智能控制等功能,技術(shù)人員需要采集大量的車輛行駛數(shù)據(jù)、用戶駕駛行為數(shù)據(jù)、車載設(shè)備或車輛周邊環(huán)境數(shù)據(jù)。由于應(yīng)用場景的實時性需求,有些數(shù)據(jù)在車輛本地的車機端就直接完成了采集和應(yīng)用,而更大部分的數(shù)據(jù),由于車機本地算力的限制,以及綜合應(yīng)用的需要,都需要通過遠(yuǎn)程通訊模塊(TBOX)和傳輸通道回傳到車聯(lián)網(wǎng)平臺(TSP)云端。數(shù)據(jù)格式包括文本、音頻、視頻等多種形式。數(shù)據(jù)采集的頻率從最初的幾十秒/次,逐步縮短到數(shù)秒/次,有些用于研發(fā)分析和故障診斷的數(shù)據(jù)采集頻率可能會更高。每個數(shù)據(jù)包大小從幾個千字節(jié)到十幾個千字節(jié)不等。根據(jù)每日平均在線車輛數(shù)的估算,每日近萬臺車輛的上傳數(shù)據(jù)將達(dá)到幾百個吉字節(jié)。這對于云端大數(shù)據(jù)平臺的容量和性能都是很高的要求[2]。
目前,主流的數(shù)據(jù)平臺技術(shù)和特點如表1所示。為了滿足大量數(shù)據(jù)的讀寫需求,主流的數(shù)據(jù)平臺可分為結(jié)構(gòu)化數(shù)據(jù)庫和分布式數(shù)據(jù)庫。結(jié)構(gòu)化數(shù)據(jù)庫通過提升節(jié)點硬件性能來實現(xiàn)大量數(shù)據(jù)的讀寫需求,但最終會達(dá)到縱向擴展的上限;而分布式數(shù)據(jù)庫則可通過擴展多套并行的數(shù)據(jù)節(jié)點來實現(xiàn)大數(shù)據(jù)的讀寫需求,理論上并沒有擴展的上限[3]。結(jié)構(gòu)化數(shù)據(jù)庫的最大優(yōu)勢是穩(wěn)定性和單節(jié)點性能,而分布式數(shù)據(jù)庫的優(yōu)勢在于操作的擴展性和數(shù)據(jù)的大量處理。在高并發(fā)場景下,Mysql數(shù)據(jù)庫被設(shè)計用來存放用戶在移動端等觸點上的在線行為或訂單交易等數(shù)據(jù);Oracle數(shù)據(jù)庫被設(shè)計用來存放車輛配置、研發(fā)和生產(chǎn)等結(jié)構(gòu)化標(biāo)準(zhǔn)化數(shù)據(jù);MongoDB/Hbase數(shù)據(jù)庫被設(shè)計用來存放車輛行駛、駕駛行為,以及車機端娛樂主機等數(shù)據(jù);Redis數(shù)據(jù)庫被設(shè)計用來存放高性能緩存數(shù)據(jù),以滿足高速的數(shù)據(jù)讀取需求。作為大數(shù)據(jù)平臺的基礎(chǔ)架構(gòu),Hadoop數(shù)據(jù)庫在此基礎(chǔ)上為Hive/Spark提供查詢和計算引擎功能,Kafka數(shù)據(jù)庫則承擔(dān)接收高并發(fā)大數(shù)據(jù)的車機端上傳功能,并同時轉(zhuǎn)發(fā)給多個下級數(shù)據(jù)處理模塊。
2 智能網(wǎng)聯(lián)數(shù)據(jù)平臺架構(gòu)
2.1 應(yīng)用架構(gòu)
智能網(wǎng)聯(lián)作為未來智能駕駛、萬物互聯(lián)、智慧城市的重要基礎(chǔ)設(shè)施,主要包含了“端、管、云”三大部分。其中,“端”包含了整車本身,以及核心的車控單元、車載主機、TBOX,以及各類車載操作系統(tǒng)和應(yīng)用軟件等,可以看作是1個大號的手機或者1臺移動的計算機終端;“管”主要包括通信和數(shù)據(jù)傳輸所需要的運營商基站、無線傳輸通道,以及通信協(xié)議、加密協(xié)議等軟硬件系統(tǒng);“云”則包含了接入網(wǎng)關(guān)、業(yè)務(wù)應(yīng)用,平臺應(yīng)用等。其中,業(yè)務(wù)應(yīng)用包括面向個人車主的服務(wù)、面向大客戶車主的企業(yè)服務(wù),以及面向政府的監(jiān)管服務(wù)等;平臺應(yīng)用包括基礎(chǔ)的車控服務(wù)、數(shù)據(jù)服務(wù)、生態(tài)服務(wù)、安全服務(wù)等。此外,與用戶的數(shù)字化觸點,如應(yīng)用程序(APP)、小程序、全球廣域網(wǎng)(Web)應(yīng)用等,以及這些觸點背后的系統(tǒng)平臺,都屬于廣義“云”的范疇。圖1為智能網(wǎng)聯(lián)TSP平臺的應(yīng)用架構(gòu)圖。
通過數(shù)據(jù)流,以上應(yīng)用架構(gòu)可以簡單說明如下:車輛行駛數(shù)據(jù)、車主或司機的駕駛行為通過各類TBOX、AVN等設(shè)備上傳至接入網(wǎng)關(guān),考慮到并發(fā)容量,以及數(shù)據(jù)安全等因素,技術(shù)人員需要設(shè)置多種不同類型和用戶的網(wǎng)關(guān)。基于企業(yè)存量車的歷史原因,有些上聯(lián)設(shè)備之前已經(jīng)有了異構(gòu)的網(wǎng)聯(lián)平臺(比如上柴發(fā)動機、紅巖重卡等),可以通過“云云對接”的方式接入數(shù)據(jù)。數(shù)據(jù)在進(jìn)入網(wǎng)關(guān)后,所有數(shù)據(jù)都會首先保存到大數(shù)據(jù)平臺,大數(shù)據(jù)平臺會根據(jù)數(shù)據(jù)的類型和應(yīng)用需求不同,執(zhí)行分類備份和歸檔策略。然后,系統(tǒng)根據(jù)應(yīng)用的實時性要求進(jìn)行處理。有的數(shù)據(jù)必須立刻轉(zhuǎn)發(fā)給相關(guān)的平臺,如國家或地方的遠(yuǎn)程監(jiān)控平臺。此外,根據(jù)各個應(yīng)用的不同需求,系統(tǒng)將簡單加工過的數(shù)據(jù)(加密、解密等處理)傳遞到不同的應(yīng)用服務(wù)。除了車機端上傳的數(shù)據(jù),用戶在數(shù)字化觸點,如APP、小程序、Web應(yīng)用等產(chǎn)生的數(shù)據(jù),會通過相應(yīng)的系統(tǒng)后臺傳遞到統(tǒng)一的大數(shù)據(jù)平臺。這個過程中還有1個關(guān)鍵步驟,即“用戶數(shù)據(jù)打通”。通過統(tǒng)一數(shù)據(jù)抽?。∣neID)機制,將不同渠道獲取的數(shù)據(jù),通過不同密鑰標(biāo)識符(keyID)進(jìn)行關(guān)聯(lián),最終完善多場景下的用戶標(biāo)簽,為后續(xù)“數(shù)字孿生”奠定基礎(chǔ)。除此之外,車輛遠(yuǎn)程控制、FOTA等下行數(shù)據(jù),也是通過云端平臺和網(wǎng)關(guān)分發(fā)到不同的車機終端的。
智能網(wǎng)聯(lián)除了實現(xiàn)基本的車聯(lián)網(wǎng)功能外,最為核心的價值就是實現(xiàn)移動出行相關(guān)的數(shù)據(jù)采集、傳輸、分析和應(yīng)用。通過對這些大數(shù)據(jù)的應(yīng)用,可以提升智能駕駛、產(chǎn)品功能,以及用戶體驗,被稱為“從業(yè)務(wù)數(shù)據(jù)化到數(shù)據(jù)業(yè)務(wù)化”的持續(xù)迭代。因此,智能網(wǎng)聯(lián)的數(shù)據(jù)平臺是整個車聯(lián)網(wǎng)平臺的非常關(guān)鍵的組成部分,而且該數(shù)據(jù)平臺并不僅僅屬于車聯(lián)網(wǎng)的數(shù)據(jù)平臺,更是整個企業(yè)級的數(shù)據(jù)平臺。通過智能網(wǎng)聯(lián)數(shù)據(jù)平臺,可以打通并整合企業(yè)的用戶數(shù)據(jù)和車輛數(shù)據(jù)(圖2)。目前,企業(yè)應(yīng)用的大數(shù)據(jù)平臺主要分為離線平臺和實時平臺2部分。其中,數(shù)據(jù)存儲主要存放于Hadoop集群中。Hadoop集群目前總共有3個管理節(jié)點和25個數(shù)據(jù)節(jié)點。
其中,OGG為Oracle Golden Gate軟件;DX為數(shù)據(jù)交換模塊;CDP為客戶數(shù)據(jù)平臺;Spark on Yarn為基于Yarn集群運行的Spark計算框架;RDBMS為關(guān)系數(shù)據(jù)庫管理系統(tǒng);SQDT為報表記錄集;SSO為單點登錄。
2.2 離線平臺
2.2.1 數(shù)據(jù)倉庫抽取技術(shù)(ETL)匯總數(shù)據(jù)源
為了避免對生產(chǎn)環(huán)境數(shù)據(jù)庫造成影響,所有的ETL任務(wù)數(shù)據(jù)源分為2種模式抽取數(shù)據(jù)。對于Oracle數(shù)據(jù)庫,采用Oracle GoldenGate軟件將數(shù)據(jù)實時抽取到1臺Oracle數(shù)據(jù)庫中,ETL統(tǒng)一從該數(shù)據(jù)庫抽取數(shù)據(jù);對于Mysql和SqlServer數(shù)據(jù)庫,統(tǒng)一使用只讀備庫來抽取數(shù)據(jù)。
2.2.2 ETL任務(wù)調(diào)度
智能網(wǎng)聯(lián)大數(shù)據(jù)使用自主開發(fā)的Kangaroo任務(wù)調(diào)度系統(tǒng)。該系統(tǒng)支持多租戶模式,可以將多個租戶納入同一系統(tǒng)進(jìn)行管理,同時又能使各租戶的業(yè)務(wù)在物理和邏輯層面進(jìn)行隔離,避免互相影響,保證數(shù)據(jù)安全。
2.2.3 Hive/Spark
Hive/Spark計算引擎提供了2種不同的引擎對離線數(shù)據(jù)進(jìn)行查詢功能,其中Hive的查詢時間較長,但占用系統(tǒng)資源相對較少,Spark引擎則相反。
2.2.4 Hbase
目前,Hbase數(shù)據(jù)庫主要用于存放車聯(lián)網(wǎng)數(shù)據(jù),分為生產(chǎn)集群和歸檔集群2部分。生產(chǎn)集群為生產(chǎn)業(yè)務(wù)提供服務(wù),歸檔數(shù)據(jù)則用于存放歷史數(shù)據(jù)。
2.3 實時平臺
2.3.1 Kafka
Kafka數(shù)據(jù)收發(fā)系統(tǒng)主要用于數(shù)據(jù)通道,實時獲取斑馬系統(tǒng)實時埋點、蜘蛛智聯(lián)系統(tǒng)實時埋點、車聯(lián)網(wǎng)系統(tǒng)埋點、車聯(lián)網(wǎng)系統(tǒng)警告、房車全球定位系統(tǒng)(GPS)信號等數(shù)據(jù)。后續(xù)需求還有車機埋點數(shù)據(jù),發(fā)動機信號數(shù)據(jù)接入等服務(wù)。
2.3.2 Spark/Flink
Spark/Flink數(shù)據(jù)處理引擎主要用于處理計算Kafka接收的數(shù)據(jù)。相比Spark計算引擎,F(xiàn)link計算引擎能夠更方便地控制小文件的生成,緩解車聯(lián)網(wǎng)集群的性能壓力。
3 平臺應(yīng)用情況
通過幾年的運行和迭代,上汽大通的智能網(wǎng)聯(lián)平臺逐步接入了上汽大通、躍進(jìn)、申沃、紅巖、上柴公司的EV69、EV79、FCV80、EV31、SV51、C500、D20等幾十款車型或發(fā)動機,共約30多萬臺終端,日均實時在線車輛約10 000臺以上。歷史總數(shù)據(jù)約為300太字節(jié),并以每月20太字節(jié)的速度增加。圖3為智能網(wǎng)聯(lián)平臺的應(yīng)用情況圖。
在離線平臺方面,目前車聯(lián)網(wǎng)集群的任務(wù)資源共分為3個隊列。其中,上汽商用車隊列運行大通所有的ETL和報表任務(wù);Azkaban任務(wù)調(diào)度系統(tǒng)的隊列負(fù)責(zé)運行數(shù)據(jù)管理平臺(DMP)相關(guān)業(yè)務(wù);Dev_user隊列為業(yè)務(wù)和數(shù)據(jù)分析人員提供臨時查詢服務(wù)。
實時平臺主要服務(wù)于需要實時數(shù)據(jù)接入的業(yè)務(wù)。其中,斑馬系統(tǒng)的實時數(shù)據(jù)增長量最大,每天的數(shù)據(jù)接入量接近14吉字節(jié);蜘蛛智聯(lián)系統(tǒng)的實時數(shù)據(jù)接入量每天在4吉字節(jié)左右;車聯(lián)網(wǎng)系統(tǒng)的實時接入業(yè)務(wù)也有顯著增長。
4 結(jié)論
基于自主開發(fā)的智能網(wǎng)聯(lián)平臺,技術(shù)人員統(tǒng)一了企業(yè)的車聯(lián)網(wǎng)終端數(shù)據(jù)格式。根據(jù)OTA協(xié)議,技術(shù)人員定義了智聯(lián)數(shù)據(jù)報文交互格式,通過Kafka數(shù)據(jù)收發(fā)系統(tǒng)對接入層和應(yīng)用層進(jìn)行了切割,可以讓研發(fā)團(tuán)隊實現(xiàn)分頭獨立開發(fā),同時也保證了系統(tǒng)數(shù)據(jù)流的統(tǒng)一性和延續(xù)性。在數(shù)據(jù)平臺架構(gòu)層面,技術(shù)人員設(shè)計了離線數(shù)據(jù)平臺和實時數(shù)據(jù)平臺相結(jié)合的框架,通過關(guān)系型數(shù)據(jù)庫、非關(guān)系型數(shù)據(jù)庫,以及Hadoop大數(shù)據(jù)等多種數(shù)據(jù)平臺,整合技術(shù)解決方案,既滿足了不同業(yè)務(wù)應(yīng)用對于數(shù)據(jù)的需求,又兼顧了系統(tǒng)的擴展性和兼容性,并考慮到了項目實施的成本因素。本文中提到的多個模塊已獲得了軟件著作權(quán)和發(fā)明專利。
[1]彭昭.智聯(lián)網(wǎng) 未來的未來[M].北京:電子工業(yè)出版社,1984.
[2]維克托 邁爾 舍恩 伯格,肯尼思 庫克耶.大數(shù)據(jù)時代[M].周濤,譯.杭州:浙江人民出版社.
[3]全面梳理SQL和NoSQL數(shù)據(jù)庫的技術(shù)差別[OL]. http://blog.csdn.net/alexdamiao/article/details/51457399.
[4]郝萌萌.互聯(lián)網(wǎng)內(nèi)容分析系統(tǒng)的設(shè)計與實現(xiàn)[D].北京交通大學(xué),2018.
[5]臧其事,謝立帆,李思宇.一種基于網(wǎng)絡(luò)旁路的應(yīng)用系統(tǒng)通用監(jiān)控與預(yù)警系統(tǒng)的設(shè)計和實現(xiàn)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2018(012):122-123.