日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

替代 Elasticsearch,TDengine 助力四维图新将存储空间利用率提升 8 倍

發布時間:2024/3/7 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 替代 Elasticsearch,TDengine 助力四维图新将存储空间利用率提升 8 倍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

企業簡介

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

項目介紹

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

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

一、選型測試

針對時序數據庫 TDengine 的寫入性能優勢,我們選取了一些業務場景接入的軌跡數據進行寫入測試,測試環境如下圖所示:

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

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

因為之前 blocks 只有默認的值,所以在后續測試中我們按照業務實際場景修改成了 100,將每 Vnode 寫入緩存塊數做了適當的優化。

之后我們從單日數據、單輛車數據、單日單車數據三個維度對 TDengine 進行查詢測試,測試結果如下圖所示:

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

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

經過多重測試和考量,最終我們選擇將 TDengine 接入到系統之中,以支撐當下的業務需求。

二、實際運行

在接入 TDengine 之后,業務上近實時的寫入大量軌跡數據的需求輕松實現,數據部門可以日更億級軌跡數據,在達成存儲要求的同時,查詢性能也能滿足下游的業務團隊使用。整體架構圖如下:

在表結構的搭建上,我們是按照設備和眾包車的編碼設置的 tag,建立了如下所示的索引關系。

而具體到實際業務中,TDengine 仍然表現出上述測試所展現出的優秀性能。以存儲性能為例,之前我們使用?ES集群時,15個節點只能支持3個月的數據存儲,在接入 TDengine 之后,7 個同樣配置的集群,已經支撐了 5 個月的數據存儲。

三、經驗分享

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

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

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

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

在優化之后,我們使用 Spark 程序動態去請求,通過經緯度獲取某類型車的軌跡點個數,通過劃取時間點的方式,達到了最終的效果:

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

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

四、寫在最后

基于 TDengine Database在當下業務中所表現出的優異成績,我們在未來考慮向 TDengine 中接入更大規模的軌跡數據以及其他業務中的時序數據。也希望未來我們能借力 TDengine,實現大量的軌跡計算及挖掘,將公司內部的數據實現快速變現,加速充電樁業務的發展,依賴 LBS 幫助客戶挖掘更多的潛在客戶,實現多邊共贏。

作者簡介

曹志強,四維圖新位置服務部門數據平臺負責人,主要負責解決整個集團的數據接入、存儲、查詢和使用,支撐公司內部自動駕駛和智慧城市的數據治理工作。


想了解更多TDengine的具體細節,歡迎大家在GitHub上查看相關源代碼。

總結

以上是生活随笔為你收集整理的替代 Elasticsearch,TDengine 助力四维图新将存储空间利用率提升 8 倍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。