松果時序資料庫(pinusdb)是一款以簡單、易用、高效能為目標的開源時序資料庫。本篇簡單介紹松果時序資料庫寫入測試。要獲取其他資訊請參考官方**或開源倉庫,當然,若有好的意見或建議也可以在開源倉庫給我們提交issue或給我們發郵件:
官方**:
碼雲倉庫:
為了幫助使用者了解松果時序資料庫的效能指標,簡單測試松果時序資料庫的寫入效能。通過調研選擇了上海市計程車定位資料作為本次測試的資料集。
這個資料集中包含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...