监控系统如何选择合适的时序数据库?

1.可以按照以下需求自行选择合适的存储:

  • 小而精,性能高,数据量较小(亿级): InfluxDB

  • 简单,数据量不大(千万级),有联合查询、关系型数据库基础:timescales

  • 数据量较大,大数据服务基础,分布式集群需求: opentsdb、KairosDB

  • 分布式集群需求,olap实时在线分析,资源较充足:druid

  • 性能极致追求,数据冷热差异大:Beringei

  • 兼顾检索加载,分布式聚合计算: elsaticsearch

  • 如果你兼具索引和时间序列的需求。那么Druid和Elasticsearch是最好的选择。其性能都不差,同时满足检索和时间序列的特性,并且都是高可用容错架构。

2.时序数据具有以下特点:

  • 周期性采集设备的时序数据,对插入性能和稳定性要求高,可能发生乱序或者丢失数据的情况;更新和删除频次低;

  • 时序数据量大,对存储压缩比敏感,希望冷热数据分级存储;

  • 为了节省存储,通常会对高频时序数据降采样;

  • 设备属性信息重复度高,修改频次低;

  • 指标数据量大而变化小;

  • 查询需求多样,如单设备最新值、单设备明细、单设备过滤聚集、多设备查询、多维查询、降采样、滑动窗口查询、设备状态演变图、特定模式识别、趋势预测、根因分析、阈值修正等。

3.时序数据库种类

3.1Timescale

这个数据库其实就是一个基于传统关系型数据库postgresql改造的时间序列数据库。了解postgresql的同学都知道,postgresql是一个强大的,开源的,可扩展性特别强的一个数据库系统。

于是timescale.inc开发了Timescale,一款兼容sql的时序数据库, 底层存储架构在postgresql上。 作为一个postgresql的扩展提供服务。其特点如下:

基础:

  • PostgreSQL原生支持的所有SQL,包含完整SQL接口(包括辅助索引,非时间聚合,子查询,JOIN,窗口函数)

  • 用PostgreSQL的客户端或工具,可以直接应用到该数据库,不需要更改。

  • 时间为导向的特性,API功能和相应的优化。

  • 可靠的数据存储。

扩展:

  • 透明时间/空间分区,用于放大(单个节点)和扩展

  • 高数据写入速率(包括批量提交,内存中索引,事务支持,数据备份支持)

  • 单个节点上的大小合适的块(二维数据分区),以确保即使在大数据量时即可快速读取。

  • 块之间和服务器之间的并行操作

劣势:

  • 因为TimescaleDB没有使用列存技术,它对时序数据的压缩效果不太好,压缩比最高在4X左右

  • 目前暂时不完全支持分布式的扩展(正在开发相关功能),所以会对服务器单机性能要求较高

其实大家都可以去深入了解一下这个数据库。对RDBMS我们都很熟悉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lxw1844912514

你的打赏就是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值