六月婷婷AV,国产偷窥猎奇福利二区,日韩三级片。,好吊色网站,日韩成人中文在线视频,国产亚洲午夜啪啪,亚洲欧美另类国产精品,国产成人av1,任你艹在线观看

TDengine在星諾好管車的應(yīng)用實踐

星諾信息 焦海波

2019-11-29 / ,

作者 | 焦海波,星諾信息研發(fā)總監(jiān)

小 T 導(dǎo)讀:江蘇星諾信息是一家基于智能車載定位終端提供車輛定位、車隊管理服務(wù)的物聯(lián)網(wǎng)科技公司,在行業(yè)中有著十多年的服務(wù)和運營經(jīng)驗,軟硬件開發(fā)經(jīng)驗豐富。好管車,是星諾信息最新研發(fā)的一套基于大數(shù)據(jù)人工智能 + 云服務(wù)的車隊管理SaaS工具。好管車致力于打造一個智能化管車工具,基于獨有的精準硬件設(shè)備+智能大數(shù)據(jù)算法平臺,提供給政企車隊及物流企業(yè)客戶一套綜合管理與服務(wù)解決方案,覆蓋車輛精準里程、定位回放、能耗管理、行程合并、賬單結(jié)算、安全監(jiān)控、智能裝備和統(tǒng)計分析等車隊運營全流程,賦能車隊及物流企業(yè)、提升行業(yè)整體效率。

選擇TDengine Database的幾個考慮

2018年12月份在InfoQ舉辦的全球架構(gòu)師峰會上有幸結(jié)識了TDengine的創(chuàng)始人陶建輝先生,當(dāng)時陶建輝先生演講的主題是《快速搭建一超高性能的時序空間大數(shù)據(jù)處理平臺》,作為正處于初期研發(fā)階段的好管車系統(tǒng)來說,TDengine Database里很多先進的概念和設(shè)計思路都非常符合一個車聯(lián)網(wǎng)項目的需求,不論是從業(yè)務(wù)場景還是從車聯(lián)網(wǎng)相關(guān)數(shù)據(jù)特點出發(fā),當(dāng)時就感覺和我們的好管車項目非常的契合,并且還有一個很重要的原因,在新項目研發(fā)初期TDengine對于系統(tǒng)開發(fā)成本和運維成本都能做到一部分的降低,畢竟對于一個初創(chuàng)項目來說,驗證和實驗產(chǎn)品是最主要的目標(biāo),能快則快,在數(shù)據(jù)庫和未來后期的大數(shù)據(jù)處理平臺這塊能有一個比較堅實的基礎(chǔ)肯定是最好的選擇。

之后便開始與濤思數(shù)據(jù)深入溝通合作,在1個月內(nèi)開始了私有部署版本測試,經(jīng)過初期本地部署版本的調(diào)試和對接之后,在2019年3月初我們開始了云服務(wù)版本的打通與測試。

摒棄繁雜,擁抱致簡

在這個階段我們當(dāng)然也嘗試過其他類型的數(shù)據(jù)庫解決方案,因為研發(fā)團隊精力人力有限我們幾乎沒有去考慮自己搭建一套大數(shù)據(jù)處理平臺,畢竟要充分整合Kafka、HBase、Hadoop、Spark這一系列開源框架不僅意味要花費大量人力,還需要更多的時間去調(diào)試開源框架本身的問題,融合及聯(lián)調(diào)不同框架,還存在著很多數(shù)據(jù)一致性的問題,同時也意味著后期運維成本的大幅度增加,穩(wěn)定性也是個不小的未知數(shù)。

之后我們也嘗試了云服務(wù),比如阿里云的幾個解決方案,表格存儲、時序時空數(shù)據(jù)庫TSDB版和InfluxDB版,但因為當(dāng)時本身阿里云所提供的時序數(shù)據(jù)庫方面的服務(wù)也是一個初期版本和方案,在很多方面其實還不是很成熟,甚至很多服務(wù)都是處于一個內(nèi)測和公測的階段,加上在接入和實際使用上的一些問題,比如沒有剛開始沒有類SQL的操作及查詢語言,數(shù)據(jù)聚合函數(shù)方面的欠缺,最終都不是最合適的選擇。還有一點,類似的云服務(wù)器在整體產(chǎn)品不是那么成熟的情況下,云服務(wù)廠商能提供的實際相關(guān)支持也不那么方便,畢竟通過工單打字溝通交流還是存在一定障礙的。

最終我們還是堅持了一開始的選擇,選擇了TDengine的云服務(wù)版本,利用阿里云的高速通道服務(wù),打通了TDengine和我們阿里云ECS的連接,利用其高速、高效的存儲和便捷的查詢支持接入好管車平臺。

場景契合,數(shù)據(jù)增值

在對TDengine進行一定的研究后,我們意識到TDengine是一個專門面對時序結(jié)構(gòu)化數(shù)據(jù)存儲分析的大數(shù)據(jù)處理軟件。對于車聯(lián)網(wǎng)的數(shù)據(jù),絕大部分是TBox定位終端上報的數(shù)據(jù)。這些數(shù)據(jù)包括GPS坐標(biāo)、油耗、里程數(shù)、加速度、起停信息等,是完全結(jié)構(gòu)化的時序數(shù)據(jù)流,非常適合寫入TDengine。星諾好管車的系統(tǒng)搭建思路如下:

TDengine在星諾好管車的應(yīng)用實踐 - TDengine Database 時序數(shù)據(jù)庫
圖 1 星諾好管車的系統(tǒng)搭建思路

星諾好管車SaaS服務(wù)平臺基于終端上報的車輛運行狀態(tài)數(shù)據(jù),進行一系列實時及離線數(shù)據(jù)分析,針對每個TBox上報的數(shù)據(jù),經(jīng)過負載均衡平均分配到后端實時解析服務(wù)器,數(shù)據(jù)經(jīng)過初步解析后直接通過TDengine提供的接口寫入數(shù)據(jù)庫,TDengine中我們建立了一個超級表來存儲基礎(chǔ)GPS數(shù)據(jù),并為每輛車建立一個子表,超級表gpsinfo的tag用來存放車輛子表的靜態(tài)信息,比如車輛編號、車牌號、所屬用戶、所屬分組,這些不常變更的信息,子表則用于存放車輛的即時狀態(tài)信息,包括行駛和停駛信息,例如速度、方向、經(jīng)緯度、報警狀態(tài)碼、信號強度等十幾種。

關(guān)于數(shù)據(jù)的實時分析,除了針對上報數(shù)據(jù)的即時分析,另外對于車輛異常狀態(tài)的報警數(shù)據(jù),考慮到核心解析應(yīng)用的穩(wěn)定性,我們利用了TDengine的消息訂閱服務(wù)功能,將數(shù)據(jù)庫收到并插入的新記錄以消息隊列的形式發(fā)出通知,由后端的幾臺報警信息解析服務(wù)器專門負責(zé)訂閱接收通知進行進一步的業(yè)務(wù)報警分析處理。針對后期的歷史數(shù)據(jù)分析,則定期執(zhí)行計劃任務(wù),按時間或車輛行程規(guī)律進行日常的數(shù)據(jù)統(tǒng)計分析。

使用體驗

TDengine Database使用標(biāo)準的 SQL 語法,與MySQL相似。在項目上手成本幾乎為零。針對其特點,我們對每個數(shù)據(jù)采集點單獨建表,通過超級表維護公共數(shù)據(jù)字段,及其提供的聚合選擇等多種查詢函數(shù),使得在多維度數(shù)據(jù)整合查詢方面非常便利。根據(jù)TDengine和我公司業(yè)務(wù),主要實現(xiàn)車輛信息的采集處理。

1、創(chuàng)建車輛信息超級表 gpsinfo, 通過超級表提取車輛信息公共字段[gps_time 、lngitude 。。] ,及車輛對應(yīng)標(biāo)簽,車輛編號 vid 等信息,區(qū)分子表信息

--- 車輛信息表
 create table gpsinfo (
   gps_time TIMESTAMP,
   lngitude DOUBLE,
   latitude DOUBLE,
   altitude INT,
   ...
 )
 tags
(
  vid BINARY(9),
  pno_64 BINARY(40)
);

-- 根據(jù)其對表的數(shù)量沒有限制,對所有車輛進行單獨建表
create table  db_gps_info.vid(..) tags(...)

2、業(yè)務(wù)使用,通過超級表的查詢來,聚合數(shù)據(jù)實現(xiàn)相應(yīng)業(yè)務(wù)。

// 查詢一段時間內(nèi), 終端狀態(tài)信息
select first(gps_time) from gpsinfo
where tbname in (vid) and gps_time >= "xxxx-xx-xx xx:xx:xx" and  gps_time <= "xxxx-xx-xx xx:xx:xx"
group by vid

遇到的問題及解決方案

補發(fā)數(shù)據(jù)的亂序?qū)懭?/strong>

在實際場景中,由于TBox使用4G網(wǎng)絡(luò)發(fā)送采集的數(shù)據(jù),經(jīng)常出現(xiàn)車輛進入信號差的區(qū)域,TBox沒有信號而無法實時上報數(shù)據(jù),只能先緩存在終端本地緩存中。等到網(wǎng)絡(luò)信號恢復(fù)后,TBox終端會先上報最新狀態(tài),然后補發(fā)緩存的數(shù)據(jù)。最開始我們發(fā)現(xiàn)補發(fā)的歷史數(shù)據(jù)很多無法直接insert到TDengine,這是由于補發(fā)的數(shù)據(jù)時間戳往往已經(jīng)不是表中最大的時間戳,此時TDengine不允許insert這些記錄。改用import后,解決了補發(fā)歷史數(shù)據(jù)的寫入問題。

未來的展望

未來針對數(shù)據(jù)庫中存儲的數(shù)據(jù)我們將更多的嘗試利用TDengine Database的實時流式計算特性,針對單輛車或同一客戶下的多輛車的數(shù)據(jù)流進行實時聚合、統(tǒng)計等計算,并將計算出的衍生數(shù)據(jù)作為新的分析結(jié)果保存進TDengine,以便后期進一步的操作、統(tǒng)計和展示。