1.?長(zhǎng)安汽車業(yè)務(wù)場(chǎng)景
重慶長(zhǎng)安汽車股份有限公司是中國(guó)汽車四大集團(tuán)陣營(yíng)企業(yè),是一家開發(fā)、制造、銷售全系列乘用車和商用車的汽車公司,其主要產(chǎn)品有全系列乘用車、小型商用車、輕型卡車、微型面包車和大中型客車,全系列發(fā)動(dòng)機(jī)等。長(zhǎng)安汽車始終以“引領(lǐng)汽車文明,造福人類生活”為使命,以客戶為中心,以產(chǎn)品為主線,持續(xù)提供高品質(zhì)的產(chǎn)品和服務(wù),奮力推進(jìn)第三次創(chuàng)業(yè)——?jiǎng)?chuàng)新創(chuàng)業(yè)計(jì)劃,向智能低碳出行科技公司轉(zhuǎn)型,為實(shí)現(xiàn)世界知名汽車企業(yè)努力奮斗。
目前,數(shù)字化技術(shù)對(duì)于汽車進(jìn)行了深度的重構(gòu),汽車從一個(gè)配備電子功能的機(jī)械產(chǎn)品逐漸演變?yōu)橐粋€(gè)配備機(jī)械功能的電子產(chǎn)品,云數(shù)據(jù)及 AI 技術(shù)的融合逐漸將汽車變?yōu)橐粋€(gè)大型的智能移動(dòng)終端、數(shù)據(jù)采集載體、能源儲(chǔ)能單元和一個(gè)移動(dòng)的多功能空間??偟膩碚f現(xiàn)在的智能汽車已經(jīng)逐漸轉(zhuǎn)變?yōu)橐粋€(gè)具備多功能空間的輪式移動(dòng)機(jī)器人。在這樣的背景下,國(guó)家政策大力鼓勵(lì)發(fā)展智能化汽車和自動(dòng)駕駛的產(chǎn)學(xué)研帶動(dòng),國(guó)內(nèi)頭部和新勢(shì)力主機(jī)廠也逐漸將智能網(wǎng)聯(lián)車或自動(dòng)駕駛方向作為核心業(yè)務(wù)開展。
長(zhǎng)安汽車著力發(fā)展智能化汽車方向,應(yīng)用全景包括智能車控(遠(yuǎn)程控制分析)、智能座艙(車機(jī)埋點(diǎn)、車機(jī)用戶行為分析)、IoT 數(shù)據(jù)接入(準(zhǔn)入檢測(cè)、車機(jī)激活監(jiān)控)和 IoT 的車況管理(車況監(jiān)控、動(dòng)力研究、車聯(lián)網(wǎng)大屏),實(shí)現(xiàn)業(yè)務(wù)展現(xiàn)包括慧眼系統(tǒng)、車輛遠(yuǎn)程診斷和遠(yuǎn)程預(yù)警系統(tǒng)、遠(yuǎn)程調(diào)試系統(tǒng)等。
為實(shí)現(xiàn)智能化汽車建設(shè),長(zhǎng)安汽車構(gòu)建了長(zhǎng)安智能汽車數(shù)據(jù)平臺(tái),此大數(shù)據(jù)處理平臺(tái)一共分為五層:數(shù)據(jù)接入層、數(shù)據(jù)存儲(chǔ)層、資源調(diào)度層、計(jì)算引擎層、業(yè)務(wù)展現(xiàn)層。目前 IoTDB 主要用于數(shù)據(jù)存儲(chǔ)層,以應(yīng)對(duì)車聯(lián)網(wǎng)海量時(shí)序數(shù)據(jù)的管理。
實(shí)現(xiàn)智能化汽車方向的工業(yè)場(chǎng)景涉及到車輛設(shè)備和傳感器層大量的時(shí)序數(shù)據(jù)采集,這就對(duì)于時(shí)序數(shù)據(jù)解決方案的完善性和效率提出了巨大挑戰(zhàn)。長(zhǎng)安汽車目前的時(shí)序數(shù)據(jù)解決方案存在明顯局限性,因此希望尋求對(duì)于智能化汽車領(lǐng)域的時(shí)序數(shù)據(jù)更優(yōu)的寫入、存儲(chǔ)、查詢、分析方案。
基于 IoTDB 時(shí)序數(shù)據(jù)庫(kù)的特點(diǎn)和優(yōu)勢(shì),長(zhǎng)安汽車選擇使用 IoTDB 作為海量智能網(wǎng)聯(lián)車輛的車況時(shí)序數(shù)據(jù)處理方案,實(shí)現(xiàn)了大體量數(shù)據(jù)寫入與存儲(chǔ)靈活擴(kuò)容,并有效提高查詢性能,降低設(shè)備與運(yùn)維成本。
2.?業(yè)務(wù)需求痛點(diǎn)
2.1億級(jí)數(shù)據(jù)測(cè)點(diǎn),每秒超千萬條新增數(shù)據(jù)點(diǎn)
長(zhǎng)安汽車作為中國(guó)四大汽車集團(tuán)之一,業(yè)務(wù)體量龐大,需處理車輛多、數(shù)據(jù)量大。目前長(zhǎng)安汽車的網(wǎng)聯(lián)車海量車況時(shí)序數(shù)據(jù)管理系統(tǒng)共采集網(wǎng)約車約?57 萬輛,總計(jì)數(shù)據(jù)測(cè)點(diǎn)達(dá)到?1.5 億,數(shù)據(jù)點(diǎn)每秒新增超千萬。因此,長(zhǎng)安汽車對(duì)于此數(shù)據(jù)量下時(shí)序數(shù)據(jù)庫(kù)的實(shí)時(shí)寫入、壓縮與存儲(chǔ)能力均要求較高。
2.2?高速信號(hào)采集頻率高
長(zhǎng)安汽車的車輛采集信號(hào)分為高速信號(hào)和常規(guī)信號(hào)兩種。高速信號(hào)需達(dá)成毫秒級(jí)采集,常規(guī)信號(hào) 3-4 秒級(jí)采集。長(zhǎng)安汽車的時(shí)序數(shù)據(jù)解決方案需能夠同時(shí)支持此兩類不同的采集頻次,并保證高速信號(hào)的實(shí)時(shí)低延遲采集的持續(xù)運(yùn)行。
2.3?低延遲數(shù)據(jù)查詢
長(zhǎng)安汽車的車輛數(shù)據(jù)查詢場(chǎng)景主要包括單車多時(shí)間序列的有效查詢和單車全時(shí)間序列的最 新點(diǎn)的查詢,也就是車聯(lián)網(wǎng)場(chǎng)景中很經(jīng)典的實(shí)時(shí)車況和離線車況/歷史車況的查詢場(chǎng)景。長(zhǎng)安汽車的時(shí)序數(shù)據(jù)解決方案需在低延遲的情況下有效支持即時(shí)的實(shí)時(shí)查詢,與大體量已存儲(chǔ)的歷史數(shù)據(jù)查詢。
基于之前長(zhǎng)安汽車的時(shí)序數(shù)據(jù)解決方案,一份車況數(shù)據(jù)進(jìn)入 HBase 后如果要做分析,需要從 HBase 里把增量的數(shù)據(jù)完全卸載出來,而這個(gè)批量的范圍讀取過程耗時(shí)很長(zhǎng)。例如 HBase 如果要做昨天數(shù)據(jù)的離線處理,今天凌晨就需要把操作性數(shù)據(jù)卸載出來放入 Hadoop 做分析。另外,隨著業(yè)務(wù)量增大,使用 HBase 進(jìn)行批量讀取的耗時(shí)也越來越長(zhǎng),不適應(yīng)快速擴(kuò)張的數(shù)據(jù)量場(chǎng)景。
2.4?成本、維護(hù)難度高
長(zhǎng)安汽車最開始對(duì)時(shí)序數(shù)據(jù)管理的解決方案采用 HBase,但面對(duì)每秒千萬的數(shù)據(jù)測(cè)點(diǎn),HBase 的集群數(shù)據(jù)寫入用了?25 個(gè)數(shù)據(jù)節(jié)點(diǎn)承擔(dān),如此多的數(shù)據(jù)節(jié)點(diǎn)直接導(dǎo)致系統(tǒng)的維護(hù)難度和成本較高。
3.?選型IoTDB原因
3.1?數(shù)據(jù)結(jié)構(gòu)保證高擴(kuò)展性、低成本、高穩(wěn)定性
針對(duì)長(zhǎng)安汽車龐大的已有數(shù)據(jù)體量及新增數(shù)據(jù)體量處理需求,IoTDB 專屬的物聯(lián)網(wǎng)原生時(shí)序模型以設(shè)備、測(cè)點(diǎn)/傳感器為層級(jí)存儲(chǔ)時(shí)間序列數(shù)據(jù),隨著數(shù)據(jù)量的不斷增加,只需直接擴(kuò)展查詢節(jié)點(diǎn)的硬件設(shè)備,無需中斷系統(tǒng)的正常運(yùn)行,可達(dá)成秒級(jí)擴(kuò)容,有效降低管理與運(yùn)維成本。
3.2?實(shí)現(xiàn)千萬寫入速度
針對(duì)長(zhǎng)安汽車對(duì)于時(shí)序數(shù)據(jù)頻密寫入的需求,IoTDB 能夠?qū)崿F(xiàn)每秒千萬數(shù)據(jù)點(diǎn)寫入、處理多設(shè)備億級(jí)點(diǎn)位的能力,且寫入速率不隨數(shù)據(jù)量增長(zhǎng)而下降,維持穩(wěn)定高速水平。
3.3?支持有效明細(xì)、最 新值查詢
長(zhǎng)安汽車在車輛故障報(bào)警場(chǎng)景下,會(huì)使用 IoTDB 進(jìn)行海量網(wǎng)聯(lián)車車況數(shù)據(jù)的明細(xì)查詢。IoTDB 采用從根節(jié)點(diǎn)以下,以數(shù)據(jù)點(diǎn)自帶的時(shí)間戳,與多層級(jí)存儲(chǔ)的路徑結(jié)合的存儲(chǔ)架構(gòu),使得不同維度的時(shí)序數(shù)據(jù)可以被有效分類存儲(chǔ),繼而在查詢時(shí)可較快唯 一確定 IoTDB 中的時(shí)序數(shù)據(jù),從而在使用明細(xì)查詢的情況下,依然保持查詢有效率。
3.4?提升批量讀取速率,達(dá)成實(shí)時(shí)分析
針對(duì)長(zhǎng)安汽車在數(shù)據(jù)分析前對(duì)于數(shù)據(jù)的快速批量讀取需求,IoTDB 因存在時(shí)間索引,可直接同步 IoTDB 底層數(shù)據(jù)文件,并運(yùn)用?IoTDB 與其他大數(shù)據(jù)系統(tǒng)的無縫集成,用 Spark 引擎直接對(duì)存儲(chǔ)文件 TsFile 進(jìn)行實(shí)時(shí)分析,相比原先的方案減少分析數(shù)據(jù)所需的導(dǎo)出份數(shù),提高分析計(jì)算效率。
3.5?及時(shí)運(yùn)維,積極驗(yàn)證
長(zhǎng)安汽車項(xiàng)目方認(rèn)為,當(dāng)業(yè)務(wù)場(chǎng)景給時(shí)序數(shù)據(jù)解決方案帶來新的挑戰(zhàn)時(shí),處理問題的效率和思路是很重要的,一個(gè)優(yōu) 秀的時(shí)序數(shù)據(jù)解決方案背后的團(tuán)隊(duì)需要能夠快速解決問題,使數(shù)據(jù)庫(kù)涵蓋業(yè)務(wù)場(chǎng)景所需的性能提升與豐富功能。長(zhǎng)安汽車在生產(chǎn)環(huán)境上遇到的問題,IoTDB 的研發(fā)團(tuán)隊(duì)總會(huì)很快協(xié)調(diào)到相關(guān)的研發(fā)資源進(jìn)行幫助。作為匯集了一批數(shù)據(jù)庫(kù)核心技術(shù)專家和工業(yè)資 深專家、擁有十幾年研究和服務(wù)工業(yè)用戶的經(jīng)驗(yàn)的團(tuán)隊(duì),團(tuán)隊(duì)成員也特別愿意用 IoTDB 在工業(yè)互聯(lián)網(wǎng)場(chǎng)景去做生態(tài)環(huán)境的驗(yàn)證,使得項(xiàng)目的成功與產(chǎn)品的成熟可以實(shí)現(xiàn)互利共贏。長(zhǎng)安汽車項(xiàng)目方表示了對(duì) IoTDB 開發(fā)團(tuán)隊(duì)的感謝。
可以看到,IoTDB 的技術(shù)優(yōu)勢(shì)能夠有效的解決長(zhǎng)安汽車目前管理時(shí)序數(shù)據(jù)的業(yè)務(wù)痛點(diǎn),因此長(zhǎng)安汽車選擇 IoTDB 構(gòu)建長(zhǎng)安智能汽車數(shù)據(jù)平臺(tái)的數(shù)據(jù)存儲(chǔ)層。下面就長(zhǎng)安汽車基于 IoTDB 構(gòu)建的大規(guī)模時(shí)序數(shù)據(jù)管理的解決方案架構(gòu)、時(shí)序模型結(jié)構(gòu)設(shè)置與查詢性能效果展開介紹與分析。
4.?解決方案架構(gòu)
車聯(lián)網(wǎng)是一個(gè)典型的物聯(lián)網(wǎng)場(chǎng)景。物聯(lián)網(wǎng)場(chǎng)景的數(shù)據(jù)主體是時(shí)序數(shù)據(jù),整個(gè)時(shí)序數(shù)據(jù)的生命周期分為采集、緩存、處理、存儲(chǔ)、查詢分析和可視化應(yīng)用六大階段。
在長(zhǎng)安汽車車聯(lián)網(wǎng)場(chǎng)景中,使用 Tbox 和 THU 等設(shè)備和傳感器做車聯(lián)網(wǎng)數(shù)據(jù)(例如發(fā)動(dòng)機(jī)的電噴數(shù)據(jù)、轉(zhuǎn)速、車輛的車速等)的采集。數(shù)據(jù)上云之后,基于長(zhǎng)安汽車私有的 TCP 協(xié)議和基于 Netty 編寫的網(wǎng)關(guān)進(jìn)行報(bào)文的攝取。通過 CLB 進(jìn)入 K8s 的 TU-GW 應(yīng)用后,對(duì)報(bào)文進(jìn)行解析。報(bào)文解析后發(fā)送到消息隊(duì)列,并把不同業(yè)務(wù)所需要的時(shí)序消息分發(fā)到不同的存儲(chǔ)端上。寫入至存儲(chǔ)引擎后,長(zhǎng)安汽車 TSP 業(yè)務(wù)系統(tǒng)和 APP 將針對(duì)車輛的最 新數(shù)據(jù)和歷史車況,對(duì)時(shí)序數(shù)據(jù)進(jìn)行查詢操作。
目前長(zhǎng)安汽車的大規(guī)模時(shí)序數(shù)據(jù)管理的架構(gòu),分為 1.0 和 2.0 版本。1.0 版本針對(duì)車況場(chǎng)景主要使用的時(shí)序存儲(chǔ)引擎為 HBase,實(shí)現(xiàn)歷史車況數(shù)據(jù)寫入。因歷史數(shù)據(jù)體量龐大,需 25 個(gè) HBase 數(shù)據(jù)節(jié)點(diǎn)寫入集群數(shù)據(jù)。同時(shí),1.0 版本的 HBase 集群配置 10 個(gè) Region Server。由于 HBase 的存儲(chǔ)架構(gòu)無法獨(dú)立支持最 新車況查詢,最 新車況查詢需基于 Redis 實(shí)現(xiàn)。
2.0 版本的架構(gòu)采用通過?Kafka 將數(shù)據(jù)寫入 IoTDB?的架構(gòu)。測(cè)試場(chǎng)景采用單機(jī)高 IO 的機(jī)型,即大內(nèi)存(約 384 G)+全 SSD(約 50 T)的集群配置。經(jīng)過 IoTDB 良好的數(shù)據(jù) schema 設(shè)計(jì)后,一臺(tái) IoTDB 的機(jī)器即代替了 25 個(gè) HBase 節(jié)點(diǎn)的寫入功能,并成功維持超過一年的高穩(wěn)定度。目前測(cè)試數(shù)據(jù)體量約?150 萬條數(shù)據(jù)/秒,一條時(shí)序數(shù)據(jù)平均涉及 16-17 個(gè)測(cè)點(diǎn),穩(wěn)定支持整體寫入數(shù)據(jù)體量約萬級(jí)。
同時(shí),IoTDB 的強(qiáng)大數(shù)據(jù)查詢能力,使基于 IoTDB 的 2.0 版本實(shí)現(xiàn)了一套引擎支持單車時(shí)間范圍查詢(實(shí)時(shí)查詢)和單車全時(shí)間序列最 新點(diǎn)的查詢(最 新車況查詢)場(chǎng)景,并能穩(wěn)定達(dá)成兩種查詢類型結(jié)果的毫秒級(jí)返回。
寫入與查詢能力的提升,讓基于 IoTDB 的時(shí)序數(shù)據(jù)管理架構(gòu)大幅降低了原有 HBase+Redis 方案的復(fù)雜度,并使 IoTDB 可接入設(shè)備和數(shù)據(jù)的體量得以不斷增加。目前,長(zhǎng)安汽車使用 IoTDB 單機(jī)接入設(shè)備約 57 萬,托管時(shí)間序列約1. 5 億。
5.?時(shí)序模型和查詢應(yīng)用
目前,在 IoTDB 的根節(jié)點(diǎn)、業(yè)務(wù)名稱、設(shè)備層、傳感器層的四級(jí)節(jié)點(diǎn)時(shí)序模型設(shè)計(jì)上,長(zhǎng)安汽車的設(shè)備層采用 TBOX 的 TUID,即設(shè)備 ID 作為第三級(jí)節(jié)點(diǎn);在傳感器/測(cè)點(diǎn)層,除涵蓋信號(hào)名,使用下劃線連接 CANID 作為第四級(jí)節(jié)點(diǎn)。此存儲(chǔ)結(jié)構(gòu)的設(shè)計(jì)原因是可以方便的使用 IoTDB 支持的 select last * from root.CANID 命令查詢,以便查詢單車在某 CANID 下所有的數(shù)據(jù)值,進(jìn)而讓 IoTDB 同時(shí)實(shí)現(xiàn)長(zhǎng)安汽車的主要查詢場(chǎng)景:實(shí)時(shí)車況和歷史車況的組合查詢。
在這樣的數(shù)據(jù)結(jié)構(gòu)支持下,長(zhǎng)安汽車使用如下語句運(yùn)行常用查詢場(chǎng)景:
1.單設(shè)備的時(shí)間范圍查詢
SQL語句如下:
select CANID_SIGNAL from root.can_condition.tuid where time > t1 and time 6.?未來展望
自 2020 年,長(zhǎng)安汽車與 IoTDB 已穩(wěn)定合作 2 年,并已構(gòu)建了穩(wěn)定有效的智能網(wǎng)聯(lián)車輛遠(yuǎn)程監(jiān)控系統(tǒng)。因智能網(wǎng)聯(lián)汽車業(yè)務(wù)已處于爆發(fā)初期,可預(yù)見車聯(lián)網(wǎng)場(chǎng)景的采集車輛數(shù)及車輛的采集密度在未來會(huì)大幅擴(kuò)張,時(shí)序數(shù)據(jù)量也會(huì)呈指數(shù)級(jí)增長(zhǎng),大源數(shù)據(jù)依然是車聯(lián)網(wǎng)系統(tǒng)將面對(duì)的主要難題。
`未來,長(zhǎng)安汽車與 IoTDB 將通力合作,進(jìn)一步擴(kuò)大車輛數(shù)據(jù)接入體量的同時(shí),豐富 IoTDB 在車聯(lián)網(wǎng)場(chǎng)景的相關(guān)應(yīng)用和功能,實(shí)現(xiàn)對(duì)更多車聯(lián)網(wǎng)業(yè)務(wù)時(shí)序數(shù)據(jù)的有效管理。
(推廣)