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

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

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

2022-04-26 /

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

企業(yè)簡(jiǎn)介

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

項(xiàng)目介紹

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

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

一、選型測(cè)試

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

測(cè)試環(huán)境

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

寫(xiě)入和儲(chǔ)存對(duì)比

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

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

vnode

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

TDengine查詢測(cè)試結(jié)果

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

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

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

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

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

整體架構(gòu)圖

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

索引關(guān)系圖

而具體到實(shí)際業(yè)務(wù)中,TDengine 仍然表現(xiàn)出上述測(cè)試所展現(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 的過(guò)程并不復(fù)雜。一是由于 TDengine 支持的編程語(yǔ)言非常多,且是采用與 MySQL 相似的 SQL 語(yǔ)言,這種特性極大地簡(jiǎn)化了遷移所需的資源成本和人力成本。此外,通過(guò)我們自研的傳輸工具,300T+ 數(shù)據(jù)的遷移工作在短時(shí)間內(nèi)就完成了 。

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

示例代碼圖

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

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

TDengine中的代碼示例1

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

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

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

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

四、寫(xiě)在最后

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

作者簡(jiǎn)介

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