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