pinusdb 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
pinusdb 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
pinusdb 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 GPL-3.0
开发语言 C/C++
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 xplanet
适用人群 未知
收录时间 2019-09-04

软件简介

松果时序数据库(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

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(26)
2020/09/17 10:02

松果时序数据库 PinusDB 3.0 Beta 发布

松果时序数据库是一款针对中小规模(设备数少于10万台,每天产生的数据量少于10亿条)场景设计、实现的时序数据库。以简单、易用、高性能为设计目标。使用SQL语句进行交互,具备较低学习、使用成本。 新发布功能: 调整数据格式,新数据格式拥有更高的查询性能,相比于旧版本提升几倍到几十倍的查询性能。新增 tinyint, smallint, int, float 数据类型(旧版本只提供bigint和double)。旧版本bigint采用varint编码,新版本采用固定...

3
10
2020/08/10 12:09

松果时序数据库 PinusDB 2.0 发布

本次更新内容: 新增条件聚合函数countif, avgif, maxif, minif, firstif, lastif, sumif,方便在一次查询中对多个不同条件进行统计。例如:可以在一次查询中统计多个条件的总数 SELECT countif(filed1 < 100), countif(field1 >= 100 and field1 < 200) countif(field1 >= 200) FROM tab01 新增写缓存大小配置,可以将数据库缓存分成读缓存和写缓存,便于根据实际情况对内存进行配置。 修改数据日志刷盘逻辑,数据日志写满...

12
11
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
26 评论
87 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部