时序数据库特点与对比

  1. 时序数据库的特点
  • 数据写入
    时序数据会按照指定的时间粒度持续写入,支持实时、高并发写入,无须更新或删除操作。
  • 数据读取
    写多读少,多时间粒度、指定维度读取,实时聚合。
  • 数据存储
    按列存储,通过查询特征发现时序数据更适合将一个指标放在一起存储,任何列都能作为存储,读取数据时只会读取所需要的维度所在的列;以不同时间粒度存储,将最近时间以一个比较细的粒度存储,可以将历史数据聚合成一个比较粗的粒度。
  1. 时序数据库的对比
时序数据库 优点 缺点
OpenTSDB - Metric+Tags
- 集群方案成熟(HBase)
- 写高效(LSM-Tress)
- 查询函数有限
- 依赖HBase
- 运维复杂
- 聚合分析能力较弱
Graphite - 提供丰富的函数支持
- 支持自动Downsample
- 对Grafana的支持最好
- 维护简单
- Whisper存储 引擎IOPS高
- Carbon组件CPU使用率高
- 聚合分析能力较弱
InfluxDB - Metrics+Tags
- 部署简单、无依赖
- 实时数据Downsample
- 高效存储
- 开源版本没有集群功能
- 存在前后版本兼容问题
- 存储引擎在变化
Prometheus - Metric + Tags
- 适用于容器监控
- 具有丰富的查询语言
- 维护简单
- 集成监控和报警功能
- 没有集群解决方案
- 聚合分析能力较弱
Druid - 支持嵌套数据的列式存储
- 具有强大的多维聚合分析能力
- 实时高性能数据摄取
- 具有分布式容错框架
- 支持类SQL查询
- 一般不能查询原始数据
- 不适合维度基数特别高的场景
- 时间窗口限制了数据完整性
- 运维较复杂
ElasticSearch - 支持嵌套数据的列式存储
- 支持全文检索
- 支持查询原始数据
- 灵活性高
- 社区活跃
- 扩展丰富
- 不支持分析字段的列式存储
- 对硬件资源要求高
- 集群维护较复杂
ClickHouse - 具有强大的多维聚合分析能力
- 实时高性能数据读写
- 支持类SQL查询
- 提供丰富的函数支持
- 具有分布式容错框架
- 支持原始数据查询
- 适用于基数大的维度存储分析
- 比较年轻,扩张不够丰富,社区还不够活跃
- 不支持数据更新和删除
- 集群功能较弱

推荐阅读更多精彩内容