車紛享:基於阿里雲HBase構建車聯網平臺實踐

摘要: 1. 業務介紹 車紛享是國內首家進行汽車共享開發和運營的公司。旗下共享汽車平臺採用新能源汽車做爲運營工具以B2C+C2C汽車共享做爲商業運營模式採用車聯網技術做爲運營管理技術目前已與國內多個城市創建合做。數據庫

1. 業務介紹服務器

車紛享是國內首家進行汽車共享開發和運營的公司。旗下共享汽車平臺採用新能源汽車做爲運營工具,以B2C+C2C汽車共享做爲商業運營模式,採用車聯網技術做爲運營管理技術,目前已與國內多個城市創建合做。網絡

公司打造會員制的分時自助租賃平臺「車紛享」與「衆車紛享」,以及純電動新能源汽車分時租賃平臺「彩虹車」,向會員提供以分鐘加里程爲計費單位的自助租車服務。經過公司自助租車系統,用戶能夠進行車輛預約、費用支付、自助取車、還車及自動結算等,無需人工干預,很是簡單,真正實現了家門口或公司門口的自助租車,便捷、時尚、經濟。 公司汽車共享(分時自助、智能租車)系統爲自主研發,具備徹底自主知識產權,可以根據需求進行改進和定製,是國內第一個成功商業運營的汽車共享系統,處於國內領先。數據結構

2. 選型架構

對於車紛享這種初創公司來講,技術選型首要考慮的是:輕運維,業務快速落地。自建機房以及運維團隊意味着前期較大的投入以及高昂的運維成本,隨着業務規模的擴張,資源水平擴展以及垂直擴展也是將來沒法避免的痛點。併發

技術團隊進行了屢次內部討論,同時對相似行業公司的解決方案進行了詳細調研,新方案必須知足咱們如下的基本需求:運維

(1)支持大量IoT數據的不間斷寫入,至少能存放百T之內的數據,隨着數據規模的增加,可以方便的進行垂直和水平擴展。工具

(2)支持基於時間戳的歷史數據查詢,響應時間至少達到秒級,後期根據業務須要,支持對一些關鍵字段進行索引,以知足某些查詢場景性能

(3)與目前的大數據生態產品(MapReduce,Spark,Hive)能友好兼容,支持離線和準實時OLAP測試

(4)優先選擇有雄厚實力的商業公司支持的雲平臺,最大限度減小運維成本。

最終咱們技術團隊選擇的是阿里雲平臺,阿里是國內大數據領域技術最雄厚的公司,好比HBase,阿里擁有2 HBase PMC、3 Committer、數十位內核貢獻者,貢獻200+ Patch,同時阿里雲平臺提供了多種方便易上手的數據產品工具。

3. 車紛享數據中心

車紛享的數據來自於車載終端上傳的數據報文,首先通過系統平臺的網關,而後藉助規則引擎對數據報文進行解析拆分紅有意義的數據項,以數據記錄的方式放入消息隊列,消息隊列採用了阿里的MQ,消息隊列的消費程序,會將消費到的數據分別存入Redis以及HBase,其中Redis是用來提供車輛實時狀態的查詢,HBase提供車輛歷史數據的查詢,爲了對歷史數據進行災備處理,使用了阿里雲的OSS存儲,將備份數據日誌文件按照時間分區存儲至OSS。

圖片描述

3.1 項目背景

車聯網符合併發量大,數據上傳頻率高,寫多讀少的高吞吐型業務場景,對查詢要求也接近準實時;原有的關係數據庫已經不能知足咱們的業務須要,尤爲數億量級下的分頁查詢和車輛歷史軌跡查詢的場景下,關係數據庫的讀取相應延遲已經達到了數分鐘級,徹底不能知足客戶的須要。阿里雲HBase爲咱們提供了HBase+Phoenix的組合方案。

HBase是基於磁盤的NoSql數據庫,由於採用了LSM的數據結構,隨機寫效率較高,特別適合車聯網的數據上傳特色,在基於Rowkey方面的查詢延時接近準實時。可是由於原生HBase的查詢方式比較底層,沒有SQL查詢接口,對於使用者要求較高,並且沒有二級索引,若是不是基於Rowkey查詢,查詢效率會急劇降低,爲了減小客戶的使用難度,阿里雲HBase團隊在HBase集羣裏集成了Phoenix的交互引擎,簡單的嵌入架構以下:

圖片描述
Phoenix的架構

Phoenix主要給HBase增長了SQL查詢以及二級索引支持,大大下降了咱們的二次開發難度,也進一步豐富了咱們對多種查詢場景的支持。

3.2 性能指標

一、系統狀況

目前測試集羣上有6臺服務器,都是16Core 32G的配置

二、查詢測試

歷史數據表(保密須要,字段適當裁剪):

create table if not exists 車輛歷史數據表 (
車輛標識 varchar not null,
上傳時間 bigint not null,
行駛里程 float,
發動機溫度 float,
車速 float,
發動機轉速 float,
油耗 float,
續航里程 float,
電量 float,
充電狀態 integer,
衛星數量 integer,
衛星信號強度 integer,
衛星信號 integer,
網絡信號強度 integer,
經度 double,
緯度 double,
方向角度 float,
循環模式 integer,
風扇模式 integer,
省電模式 integer,
開關門狀態 integer,
發動機狀態 integer,
鑰匙狀態 integer,
燈光狀態 integer,
門鎖狀態 integer,
網絡狀態 varchar,
檔位 integer
CONSTRAINT my_pk PRIMARY KEY (車輛標識,上傳時間 ROW_TIMESTAMP))
COMPRESSION='SNAPPY',DATA_BLOCK_ENCODING='FAST_DIFF',SALT_BUCKETS=20;

三、創建索引表

create index 車輛歷史狀態索引表 on 車輛歷史狀態表(車輛標識,上傳時間,行駛里程,車速,電量) include (發動機溫度,發送機轉速,油耗,衛星數量,衛星信號強度,......)

車輛狀態歷史表中目前有記錄12億條左右,Region有52個

基於rowkey查詢

圖片描述

基於索引字段查詢

圖片描述

經過HBase+Phoenix,豐富了咱們的歷史查詢手段,原先的車輛1個月軌跡歷史數據回放查詢須要5-10分鐘,如今2秒內就能返回所需數據。上面的數據都是咱們實際的業務場景數據測試的結果,提高了150倍,大大超出咱們的指望。

圖片描述

四、集羣情況

目前接入的車輛大約爲3萬輛,其中比較重要的考察指標就是OPS(operation per second 每秒操做次數),主要針對車輛數據的實時不間斷寫入,目前HBase集羣中,平均在1.5K OPS,峯值能夠到達2K OPS,目前的集羣配置能夠支撐最大約400K的OPS,至少能夠知足將來2年左右的業務增加須要。阿里雲HBase同時支持資源節點水平,垂直擴展和滾動重啓,基本能夠作到用戶無感知下完成升級,這種能力對適應業務的敏捷變化很是有幫助。

圖片描述

3.3 數據處理

圖片描述

場景實例

以網約車管理平臺爲例,主要數據來源爲車況數據和訂單數據,進入Kafka後,拉出兩個分支,分別存儲進HBase數據庫和進入Spark Streaming流式計算引擎,主要用來爲運營部門優化網點,車輛分流,監控部門的風控管理和商業BI相關的離線分析提供數據支撐。

圖片描述

3.4 使用感覺

如今車紛享的車聯網數據平臺已遷入阿里雲HBase團隊已經半年多了,平均日寫入數據幾十G,到如今還沒出現數據服務器的嚴重故障問題,整體比較穩定,大大下降了我司的運營管理成本。阿里雲HBase團隊也給咱們的開發團隊提供了有力的技術支撐,碰到技術問題,咱們能夠很是及時獲得響應,幫助咱們排除了業務開發中的許多問題。再次證實咱們的當初選擇是正確的。

同時也但願阿里雲HBase團隊將來能夠在產品易用性上更上一層樓。展望將來,隨着業務的擴展,咱們的數據會有一個指數級的增加。

圖片描述

但願新的一年繼續和阿里雲加大合做,同時將運營中的問題反饋到阿里雲技術社區,協助阿里雲技術團隊將數據產品作得愈來愈好。

原文連接

閱讀更多幹貨好文,請關注掃描如下二維碼:
圖片描述

相關文章
相關標籤/搜索