KaiwuDB 多模資料庫-時序效能最佳化

KaiwuDB發表於2023-11-30

隨著物聯網領域的快速發展,時序資料的產生和處理需求不斷增長。為了滿足實時性、高效性和準確性的要求,資料庫需要進行時序效能最佳化,以提供快速的資料寫入、實時查詢和高效的資料儲存與處理能力。

本期直播介紹了時序資料和時序資料庫特徵以及基於 TSBS 時序測試標準分析,並基於此解析了 KaiwuDB 的時序模型架構和最佳化設計。

一、時序基礎概念

1. 時序基礎概念

時間序列資料是指帶時間標籤的資料,主要由電力、化工、氣象、地理資訊等行業的各類實時監測、檢查與分析裝置所採集、產生的資料。

為了便於解釋基本概念,以微電網的太陽能發電板作為典型時序資料場景。假設每個發電板採集電流、電壓、溫度三個量,有多個太陽能板。

  • Measurement:一類裝置的集合;

  • Data source:一個具體的裝置;

  • Tags:一個裝置的描述標籤;

  • Timestamp:本條時序資料的採集時間。

2. 時序資料庫的特點

時序資料庫全稱為時間序列資料庫。時間序列資料庫指主要用於處理帶時間標籤(按照時間的順序變化,即時間序列化)的資料。

基本特點:

  • 大資料量的處理;

  • 高壓縮比;

  • 冗餘重複資料的一份儲存;

  • 間序列分割槽處理;

  • 一般沒有事務相關處理。

二、TSBS 測試標準說明

1. TSBS 測試標準

TimeScale 開源專案:

  • 時序資料的生成和寫入;

  • 時序場景的典型查詢。

兩個典型的應用場景:

  • DevOps – 伺服器 CPU 監控場景有序的時間序列資料;

  • IoT – 物聯網路卡車車隊場景存在無序和缺失的時間序列資料。

2. DevOps 場景(CPU-only)

CPU-only 場景特點:

  • 資料間隔均為 10 秒;

  • 場景五資料量最大 1.8 億條記錄,場景四資料量最小 1800 萬條記錄;

  • 場景四和場景五裝置數量較多,僅覆蓋 3 分鐘時間跨度。

3. 不同分類的 TSBS 語句分析

三、KaiwuDB 多模資料庫時序引擎

1. 基本執行架構

  • 應用層;

  • SQL Engine;

  • 分散式層;

  • Storage Engine。

一般沒有事務相關處理。

2. 時序最佳化改造

2.1 儲存結構最佳化

針對時序資料的量大、遞增、且部分資料為靜態值的特點,儲存結構做了如下演進:

  • 大表,所有裝置寫入到一張表;

  • 分表,一個裝置一張表;

  • 分割槽,按照時間劃分資料區域;

  • 合表,部分裝置一組,靜態屬性合併儲存,同時時間分割槽

2.2 KaiwuDB 執行計算架構最佳化

針對時序模型,KaiwuDB 做了一系列執行架構調整:

  • 執行器下放;

  • 採用 mmap 技術,減少資料複製;

  • 分割槽並行;

  • 資料裁剪;

  • 定製執行計劃;

  • Timebucket 等特殊時序運算元;

  • 多級動態並行。

2.3 KaiwuDB 時序統計資訊

KaiwuDB 的針對時序查詢的特徵,定製和實現了一套時序預計算統計資訊。其特點如下:

  • 時序表是一種特殊的複合表;

  • 模板表對應 tag 表;

  • 例項表只是對應 tag 表中的一條索引,而非完整表;

  • 資料寫入時可以動態建立 tag 項並寫入資料;

  • tag 表支援基本的統計資訊,例如包含 TSBS;

  • 查詢支援通用資料讀取;

  • 特殊查詢能夠下推,例如多 tag 查詢下推,單個 tag 特定聚合資料;

  • 資料塊按照時間分割槽,增加塊的統計資訊。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027415/viewspace-2998343/,如需轉載,請註明出處,否則將追究法律責任。

相關文章