pinusdb簡(jiǎn)單易用的時(shí)序數(shù)據(jù)庫(kù)
松果時(shí)序數(shù)據(jù)庫(kù)(pinusdb)
松果時(shí)序數(shù)據(jù)庫(kù)是一個(gè)開源的時(shí)間序列數(shù)據(jù)庫(kù)。以簡(jiǎn)單、易用、高性能為目標(biāo),解決中小規(guī)模物聯(lián)網(wǎng)場(chǎng)景設(shè)備數(shù)據(jù)存儲(chǔ),查詢。 松果時(shí)序數(shù)據(jù)庫(kù)服務(wù)僅包含大約3萬(wàn)行C++代碼,雖然代碼量少但也提供了豐富的功能、較高的性能。
性能
在i3-7100, 8G 內(nèi)存,1TB HDD windows server 2016 環(huán)境下,每條數(shù)據(jù)8個(gè)字段,達(dá)到每秒20萬(wàn)條數(shù)據(jù)寫入。 內(nèi)存中數(shù)據(jù)掃描達(dá)到1500萬(wàn)條。 歷史數(shù)據(jù)整理后壓縮,每個(gè)設(shè)備的數(shù)據(jù)順序存放,極大提供數(shù)據(jù)查詢性能。
壓縮
松果時(shí)序數(shù)據(jù)庫(kù)先將整數(shù)、浮點(diǎn)數(shù)按照差值壓縮,然后將數(shù)據(jù)塊以zlib壓縮,極大提高壓縮率。 不僅如此,我們還提供將浮點(diǎn)數(shù)按倍數(shù)放大后存儲(chǔ)為整數(shù),從而提高浮點(diǎn)數(shù)的壓縮率。用戶使用時(shí)以浮點(diǎn)數(shù)使用即可。 real2 -> 倍數(shù)100, 取值范圍[-999,999,999.99 ~ +999,999,999.99] real3 -> 倍數(shù)1000, 取值范圍[-999,999,999.999 ~ +999,999,999.999] real4 -> 倍數(shù)10000, 取值范圍[-999,999,999.9999 ~ +999,999,999.9999] real6 -> 倍數(shù)1000000, 取值范圍[-999,999,999.999999 ~ +999,999,999.999999]
容量
在松果時(shí)序數(shù)據(jù)庫(kù)中,每個(gè)表每天的數(shù)據(jù)存儲(chǔ)為一個(gè)文件,超過寫入時(shí)間窗口的文件會(huì)被壓縮。 所以,數(shù)據(jù)容量?jī)H限于服務(wù)器存儲(chǔ)的容量,并且在大容量下還能保持極高的數(shù)據(jù)讀取性能。
數(shù)據(jù)安全性
數(shù)據(jù)寫入松果時(shí)序數(shù)據(jù)庫(kù)中,首先會(huì)寫commit日志,commit日志每3秒或?qū)憹M1MB會(huì)刷一次磁盤,所以意外宕機(jī),或服務(wù)器斷電后只會(huì)丟失較少的數(shù)據(jù)。 松果時(shí)序數(shù)據(jù)庫(kù)寫數(shù)據(jù)文件時(shí)使用doublewrite,保證寫入數(shù)據(jù)頁(yè)時(shí)發(fā)送斷電數(shù)據(jù)文件和數(shù)據(jù)頁(yè)也不會(huì)損壞。
編譯
松果時(shí)序數(shù)據(jù)庫(kù)支持Windows以及Linux,代碼中包含CMake文件,下載后需要配置boost庫(kù)的包含目錄和庫(kù)目錄、zlib的庫(kù)目錄即可編譯成功。 若您需要已編譯好的程序,請(qǐng)?jiān)?nbsp;http://www.pinusdb.cn 網(wǎng)站相應(yīng)的鏈接下載。
運(yùn)行
運(yùn)行前請(qǐng)先配置好服務(wù)配置文件config.ini 具體運(yùn)行配置細(xì)節(jié)請(qǐng)參考文檔: http://www.pinusdb.cn/doc/v1.3/doc_pdb_windows_install.html
二次開發(fā)
提供c/c++ SDK, .Net SDK, jdbc 驅(qū)動(dòng),未來(lái)還會(huì)支持restful及更多的二次開發(fā)接口,具體使用細(xì)節(jié)請(qǐng)參考:http://www.pinusdb.cn
交流
若您需要幫助或希望給我們反饋信息,請(qǐng)?zhí)峤籌ssue、給我們發(fā)郵件:[email protected]
