松果時序資料庫 PinusDB 資料寫入測試報告

2021-09-26 23:20:12 字數 2669 閱讀 8708

松果時序資料庫(pinusdb)是一款以簡單、易用、高效能為目標的開源時序資料庫。本篇簡單介紹松果時序資料庫寫入測試。要獲取其他資訊請參考官方**或開源倉庫,當然,若有好的意見或建議也可以在開源倉庫給我們提交issue或給我們發郵件:

官方**:

碼雲倉庫:

郵    件:[email protected]

[email protected]

為了幫助使用者了解松果時序資料庫的效能指標,簡單測試松果時序資料庫的寫入效能。通過調研選擇了上海市計程車定位資料作為本次測試的資料集。

這個資料集中包含4316輛計程車在2023年2月20日的定位資料,包括:車輛編號,時間,經度,緯度,速度,航向,狀態。由於松果時序資料庫有寫入時間視窗的限制,為了簡單將資料中時間的日期修改為當前日期

測試環境:

伺服器

作業系統:windows server 2016

cpu:intel core i3-370

記憶體:8gb

網絡卡:千兆網絡卡

磁碟:c盤:120gb ssd 安裝作業系統。

d盤:1tb hdd  儲存compressdatapath、 commitlogpath及syslogpath。

e盤:120gb ssd 儲存normaldatapath及tabpath。

注意:本測試並不涉及到壓縮檔案。

客戶端

作業系統:windows 10

cpu:intel core i5-6200u

記憶體:8gb

網絡卡:千兆網絡卡

伺服器與客戶段機器通過一台千兆交換機連線。

準備環境

建立資料表

在松果資料庫上建立計程車資料表 taxi 表,建表語句如下:

create table taxi

( devid bigint,

tstamp datetime,

logitude real6,

latitude real6,

speed bigint,

angle bigint,

status bigint

)

測試程式本次測試程式使用c#編寫,單執行緒執行每次插入1000條資料,松果時序資料庫提供兩種協議的資料寫入:sql語句的文字協議以及二進位制協議;其中二進位制協議效能較高,這裡使用二進位制協議進行測試,使用者直接構建好datatable寫入即可,既方便效能又高,也是我們推薦使用的方式。

測試程式將所有資料讀取到記憶體,並按照時間排序,盡量多個裝置同時寫入,而不是寫完乙個裝置的資料再寫下乙個裝置的資料。

測試原始碼在本篇部落格最後,只需修改資料庫連線串及資料集的路徑即可:

測試結果

經過多次測試,基本上寫入效能在10萬條/秒左右,執行過程中伺服器松果時序資料庫程序cpu占用在10%左右。寫入結果如下圖所示:

本篇部落格只是簡單的測試了單執行緒批量寫入的場景,基本上效能可以滿足大多數物聯網場景的寫入資料要求。後面我們會測試更多的場景。

測試原始碼

using system;

using system.collections.generic;

using pdb.dotnetsdk;

using system.data;

using system.io;

using system.diagnostics;

using system.linq;

namespace proformacetest

static listreaddataforfile()

}sreader.close();

}reclist.sort(delegate (taxirec a, taxirec b) );

return reclist;

}static bool adddev()

dtdev.rows.clear();}}

if (dtdev.rows.count != 0)}}

return true;

}static void insertdata(listreclist)

dtrec.rows.clear();}}

if (dtrec.rows.count != 0)

}sw.stop();

console.writeline("插入條資料耗時:毫秒, 平均每秒插入:條", reclist.count, sw.elapsedmilliseconds, (reclist.count / (sw.elapsedmilliseconds / 1000)));}}

static void main(string args)

console.writeline("輸入回車退出...");

console.readline();}}}

時序資料庫

看到這類資料處理基本是要對乙個時間範圍的資料,根據時間段,維度進行歸類,做一些聚合運算。時序資料庫要解決的問題就是如何能在海量資料中,快速響應使用者的此類查詢。序資料庫的一些基本概念 不同的時序資料庫稱呼略有不同 metric 度量,相當於關係型資料庫中的table。data point 資料點,相...

時序資料庫介紹

什麼是時序資料庫 先來介紹什麼是時序資料。時序資料是基於時間的一系列的資料。在有時間的座標中將這些資料點連成線,往過去看可以做成多緯度報表,揭示其趨勢性 規律性 異常性 往未來看可以做大資料分析,機器學習,實現 和預警。時序資料庫就是存放時序資料的資料庫,並且需要支援時序資料的快速寫入 持久化 多維...

Influxdb 時序資料庫 windows 安裝

influxdb 是一款比較火爆的時序資料庫,本文介紹如何在 windows 平台下安裝。1.場景 windows 平台的 influxdb 似乎只支援單機非windows 服務的安裝方式 適用於測試環境或者想體驗什麼是時序資料庫。2.準備安裝包 截止到 2018 07 05,最新版本是 1.5.4...