pinusdb

简单易用的时序数据库
授权协议 GPL-3.0
开发语言 C/C++
所属分类 数据库相关、 时序数据库
软件类型 开源软件
地区 国产
投 递 者 黄俊智
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

松果时序数据库(pinusdb)

松果时序数据库是一个开源的时间序列数据库。以简单、易用、高性能为目标,解决中小规模物联网场景设备数据存储,查询。 松果时序数据库服务仅包含大约3万行C++代码,虽然代码量少但也提供了丰富的功能、较高的性能。

性能

在i3-7100, 8G 内存,1TB HDD windows server 2016 环境下,每条数据8个字段,达到每秒20万条数据写入。 内存中数据扫描达到1500万条。 历史数据整理后压缩,每个设备的数据顺序存放,极大提供数据查询性能。

压缩

松果时序数据库先将整数、浮点数按照差值压缩,然后将数据块以zlib压缩,极大提高压缩率。 不仅如此,我们还提供将浮点数按倍数放大后存储为整数,从而提高浮点数的压缩率。用户使用时以浮点数使用即可。 real2 -> 倍数100, 取值范围[-999,999,999.99 ~ +999,999,999.99] real3 -> 倍数1000, 取值范围[-999,999,999.999 ~ +999,999,999.999] real4 -> 倍数10000, 取值范围[-999,999,999.9999 ~ +999,999,999.9999] real6 -> 倍数1000000, 取值范围[-999,999,999.999999 ~ +999,999,999.999999]

容量

在松果时序数据库中,每个表每天的数据存储为一个文件,超过写入时间窗口的文件会被压缩。 所以,数据容量仅限于服务器存储的容量,并且在大容量下还能保持极高的数据读取性能。

数据安全性

数据写入松果时序数据库中,首先会写commit日志,commit日志每3秒或写满1MB会刷一次磁盘,所以意外宕机,或服务器断电后只会丢失较少的数据。 松果时序数据库写数据文件时使用doublewrite,保证写入数据页时发送断电数据文件和数据页也不会损坏。

编译

松果时序数据库支持Windows以及Linux,代码中包含CMake文件,下载后需要配置boost库的包含目录和库目录、zlib的库目录即可编译成功。 若您需要已编译好的程序,请在 http://www.pinusdb.cn 网站相应的链接下载。

运行

运行前请先配置好服务配置文件config.ini 具体运行配置细节请参考文档: http://www.pinusdb.cn/doc/v1.3/doc_pdb_windows_install.html

二次开发

提供c/c++ SDK, .Net SDK, jdbc 驱动,未来还会支持restful及更多的二次开发接口,具体使用细节请参考:http://www.pinusdb.cn

交流

若您需要帮助或希望给我们反馈信息,请提交Issue、给我们发邮件:zhangquan@pinusdb.cn

  • 松果时序数据库(PinusDB)是一款以简单、易用、高性能为目标的开源时序数据库。本篇介绍如何让松果时序数据库以最佳的性能运行。要获取其他信息请参考官方网站或开源仓库,当然,若有好的意见或建议也可以在开源仓库给我们提交Issue或给我们发邮件: 官方网站:http://www.pinusdb.cn 码云仓库:https://gitee.com/pinusdb/pinusdb 邮 件:service

 相关资料
  • 本文向大家介绍简单易用的倒计时js代码,包括了简单易用的倒计时js代码的使用技巧和注意事项,需要的朋友参考一下

  • 本文向大家介绍最简单易懂的java数组排序方法整理,包括了最简单易懂的java数组排序方法整理的使用技巧和注意事项,需要的朋友参考一下 前言 JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。本文就给大家介绍了关于最简单易懂的java数组排序方法,下面话不多说了,来一起看看详细的介绍吧 方法如下: 1、快速排序:首先是最简单的Array.sort,直接

  • 问题内容: 我知道实现起来很简单,但是我想重用已经存在的东西。 我要解决的问题是,我为不同的页面,角色加载了配置(从XML,所以我想缓存它们),因此输入的组合可以增长很多(但99%的增长)。为了处理这一1%,我想在缓存中设置一些最大项目… 直到我在apache commons中找到了org.apache.commons.collections.map.LRUMap,它看起来还不错,但还想检查一下其

  • 通过输入起始点位置的GPS和终点位置的GPS,能够快速地在WebView中显示的谷歌地图上上画出轨迹路线(自驾、徒步、公交等)。并可获取到地理信息。 [Code4App.com]

  • 问题内容: 我熟悉该界面,但是使用起来很笨拙。例如,为了找出表名,您必须使用众所周知的文字作为列名来调用并循环返回。 有没有更简单的方法来获取数据库元数据? 问题答案: 使用DdlUtils很容易做到:

  • 我需要一个简单的方法来阻止任何人将下面的代码复制到他们的inspector工具中,从而添加错误的分数。没有用户,我只想限制浏览器的写入权限。Firebase实时数据库中的安全规则有没有办法做到这一点?现在我只有“.read”:true“.write”:true和验证。