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

替代 Elasticsearch,TDengine 助力四維圖新將存儲(chǔ)空間利用率提升 8 倍

四維圖新 曹志強(qiáng)

2022-04-26 /

小 T 導(dǎo)讀:面對海量的車載軌跡數(shù)據(jù),四維圖新數(shù)據(jù)存儲(chǔ)面對非常大的壓力——每分鐘的軌跡數(shù)據(jù)大概有 2000 萬條記錄,他們此前使用的 Elasticsearch 存儲(chǔ)方式不僅造成了嚴(yán)重的物理資源浪費(fèi),還存在查詢瓶頸,所以急需轉(zhuǎn)換數(shù)據(jù)存儲(chǔ)中間件。本文講述了四維圖新在數(shù)據(jù)庫選型測試、搭建與遷移等方面的相關(guān)實(shí)踐經(jīng)驗(yàn)。

企業(yè)簡介

四維圖新成立于 2002 年,是中國導(dǎo)航地圖產(chǎn)業(yè)的開拓者。經(jīng)十余年的創(chuàng)新發(fā)展,其已成為導(dǎo)航地圖、導(dǎo)航軟件、動(dòng)態(tài)交通信息、位置大數(shù)據(jù)以及乘用車和商用車定制化車聯(lián)網(wǎng)解決方案領(lǐng)域的領(lǐng)導(dǎo)者。如今,四維圖新以全面的技術(shù)發(fā)展戰(zhàn)略迎接汽車“新四化”時(shí)代的來臨,致力于以高精度地圖、高精度定位、云服務(wù)平臺(tái)以及應(yīng)用于 ADAS 和自動(dòng)駕駛的車規(guī)級芯片等核心業(yè)務(wù),打造“智能汽車大腦”,賦能智慧出行,助力美好生活,成為中國市場乃至全球更值得客戶信賴的智能出行科技公司。

項(xiàng)目介紹

在某車企項(xiàng)目中,面對車載軌跡數(shù)據(jù) 2000 萬/分鐘的寫入量,整體數(shù)據(jù)存儲(chǔ)的壓力非常之大。此前我們采用的是 Elasticsearch,共設(shè)置了 15 個(gè)節(jié)點(diǎn)( 32 核 / 48GB 內(nèi)存 / 2TB 磁盤空間),不到半個(gè)月磁盤占用量就已經(jīng)達(dá)到 80% 了,非常耗用物理資源。同時(shí)大量的 IO 操作不僅導(dǎo)致 PaaS 層不穩(wěn)定,也波及到了其他的依賴資源,如云主機(jī)、中間件等。在此背景下,轉(zhuǎn)換數(shù)據(jù)存儲(chǔ)中間件已經(jīng)迫在眉睫。

從數(shù)據(jù)特點(diǎn)和處理需求出發(fā),我們選擇了更加專業(yè)的時(shí)序數(shù)據(jù)庫。從數(shù)據(jù)插入、查詢、存儲(chǔ)性能提升,硬件或云服務(wù)成本降低、設(shè)計(jì)架構(gòu)簡化和集群版本開源這四個(gè)維度進(jìn)行選型考慮,最終我們初步選擇了 TDengine Database,隨即便著手進(jìn)行模擬測試。

一、選型測試

針對時(shí)序數(shù)據(jù)庫 TDengine 的寫入性能優(yōu)勢,我們選取了一些業(yè)務(wù)場景接入的軌跡數(shù)據(jù)進(jìn)行寫入測試,測試環(huán)境如下圖所示:

測試環(huán)境

我們以 40 萬記錄/天/輛車,共計(jì) 150 天、120 輛車的數(shù)據(jù)進(jìn)行寫入測試,寫入的記錄總數(shù)為 72 億,總線程數(shù)為 40,最終的寫入和存儲(chǔ)性能對比如下圖:

寫入和儲(chǔ)存對比

總結(jié):相比 Elasticsearch,TDengine 的存儲(chǔ)空間利用率提升8倍,寫入性能提升 2.5 倍。

因?yàn)橹?blocks 只有默認(rèn)的值,所以在后續(xù)測試中我們按照業(yè)務(wù)實(shí)際場景修改成了 100,將每 Vnode 寫入緩存塊數(shù)做了適當(dāng)?shù)膬?yōu)化。

vnode

之后我們從單日數(shù)據(jù)、單輛車數(shù)據(jù)、單日單車數(shù)據(jù)三個(gè)維度對 TDengine 進(jìn)行查詢測試,測試結(jié)果如下圖所示:

TDengine查詢測試結(jié)果

總結(jié):相比 Elasticsearch,TDengine 的“count(*)”查詢性能提升 4 倍,“select*”查詢性能提升 3-10 倍。

此外,TDengine 支持查詢單個(gè)設(shè)備一個(gè)時(shí)間段數(shù)據(jù)的需求,和我們的業(yè)務(wù)場景不謀而合;它的類 SQL 設(shè)計(jì)也非常便利,幾乎不需要學(xué)習(xí)成本,運(yùn)維管理成本也幾乎為零。同時(shí),它還是國產(chǎn)開源數(shù)據(jù)庫,相比其他開源軟件,能給中國的軟件工程師提供更好的本地服務(wù)。作為一款完全自主研發(fā)的時(shí)序數(shù)據(jù)庫,TDengine 的穩(wěn)定性和安全性也已經(jīng)被很多企業(yè)驗(yàn)證過,相對已經(jīng)比較成熟了。

經(jīng)過多重測試和考量,最終我們選擇將 TDengine 接入到系統(tǒng)之中,以支撐當(dāng)下的業(yè)務(wù)需求。

二、實(shí)際運(yùn)行

在接入 TDengine 之后,業(yè)務(wù)上近實(shí)時(shí)的寫入大量軌跡數(shù)據(jù)的需求輕松實(shí)現(xiàn),數(shù)據(jù)部門可以日更億級軌跡數(shù)據(jù),在達(dá)成存儲(chǔ)要求的同時(shí),查詢性能也能滿足下游的業(yè)務(wù)團(tuán)隊(duì)使用。整體架構(gòu)圖如下:

整體架構(gòu)圖

在表結(jié)構(gòu)的搭建上,我們是按照設(shè)備和眾包車的編碼設(shè)置的 tag,建立了如下所示的索引關(guān)系。

索引關(guān)系圖

而具體到實(shí)際業(yè)務(wù)中,TDengine 仍然表現(xiàn)出上述測試所展現(xiàn)出的優(yōu)秀性能。以存儲(chǔ)性能為例,之前我們使用 ES集群時(shí),15個(gè)節(jié)點(diǎn)只能支持3個(gè)月的數(shù)據(jù)存儲(chǔ),在接入 TDengine 之后,7 個(gè)同樣配置的集群,已經(jīng)支撐了 5 個(gè)月的數(shù)據(jù)存儲(chǔ)。

三、經(jīng)驗(yàn)分享

實(shí)際上,在數(shù)據(jù)遷移工作中,我們的本地業(yè)務(wù)從 Elasticsearch 遷移到 TDengine 的過程并不復(fù)雜。一是由于 TDengine 支持的編程語言非常多,且是采用與 MySQL 相似的 SQL 語言,這種特性極大地簡化了遷移所需的資源成本和人力成本。此外,通過我們自研的傳輸工具,300T+ 數(shù)據(jù)的遷移工作在短時(shí)間內(nèi)就完成了 。

在具體實(shí)現(xiàn)上,傳輸工具是采用多線程方式將數(shù)據(jù)讀取到 CSV,然后再批量寫入到新的集群中,示例代碼如下圖所示:

示例代碼圖

除此之外,在 TDengine 的應(yīng)用上,我們也遇到了一些小問題,在濤思數(shù)據(jù)伙伴們的通力合作下,最終問題也都得到了解決。借此機(jī)會(huì)將這些經(jīng)驗(yàn)分享出來,給大家一些參考。

我們有一個(gè)場景是“在頁面上畫一個(gè)矩形框”,剛開始我們是直接使用經(jīng)緯度進(jìn)行軌跡點(diǎn)數(shù)據(jù)的獲取,所需的時(shí)間非常長,基本沒法使用,代碼如下所示:

TDengine中的代碼示例1

在優(yōu)化之后,我們使用 Spark 程序動(dòng)態(tài)去請求,通過經(jīng)緯度獲取某類型車的軌跡點(diǎn)個(gè)數(shù),通過劃取時(shí)間點(diǎn)的方式,達(dá)到了最終的效果:

TDengine優(yōu)化后的代碼示例

在后期使用 TDengine 進(jìn)行多維度、大數(shù)據(jù)量查詢的時(shí)候,出現(xiàn)了查詢性能線性下降的問題,后面我們通過查詢官網(wǎng)資料,再對比本地的集群配置參數(shù)以及數(shù)據(jù)建模方式,最終找到了性能問題的原因,而后結(jié)合本地應(yīng)用場景以及未來業(yè)務(wù)規(guī)模進(jìn)行了重新配置和數(shù)據(jù)建模,成功解決了查詢性能的問題。

所以,如果大家在應(yīng)用 TDengine 的過程中出現(xiàn)了一些問題,建議可以先去官網(wǎng)查找資料,官網(wǎng)文檔非常全面,可以稱得上是 TDengine 使用的“百科全書”了,一些小問題都可以在這里找到解決辦法。

四、寫在最后

基于 TDengine 在當(dāng)下業(yè)務(wù)中所表現(xiàn)出的優(yōu)異成績,我們在未來考慮向 TDengine 中接入更大規(guī)模的軌跡數(shù)據(jù)以及其他業(yè)務(wù)中的時(shí)序數(shù)據(jù)。也希望未來我們能借力 TDengine,實(shí)現(xiàn)大量的軌跡計(jì)算及挖掘,將公司內(nèi)部的數(shù)據(jù)實(shí)現(xiàn)快速變現(xiàn),加速充電樁業(yè)務(wù)的發(fā)展,依賴 LBS 幫助客戶挖掘更多的潛在客戶,實(shí)現(xiàn)多邊共贏。

作者簡介

曹志強(qiáng),四維圖新位置服務(wù)部門數(shù)據(jù)平臺(tái)負(fù)責(zé)人,主要負(fù)責(zé)解決整個(gè)集團(tuán)的數(shù)據(jù)接入、存儲(chǔ)、查詢和使用,支撐公司內(nèi)部自動(dòng)駕駛和智慧城市的數(shù)據(jù)治理工作。