时序数据库特点与对比
原文地址:https://www.jianshu.com/p/5da398ae4017
- 时序数据库的特点
- 数据写入
时序数据会按照指定的时间粒度持续写入,支持实时、高并发写入,无须更新或删除操作。 - 数据读取
写多读少,多时间粒度、指定维度读取,实时聚合。 - 数据存储
按列存储,通过查询特征发现时序数据更适合将一个指标放在一起存储,任何列都能作为存储,读取数据时只会读取所需要的维度所在的列;以不同时间粒度存储,将最近时间以一个比较细的粒度存储,可以将历史数据聚合成一个比较粗的粒度。
- 时序数据库的对比
时序数据库 | 优点 | 缺点 |
---|---|---|
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查询 - 提供丰富的函数支持 - 具有分布式容错框架 - 支持原始数据查询 - 适用于基数大的维度存储分析 |
- 比较年轻,扩张不够丰富,社区还不够活跃 - 不支持数据更新和删除 - 集群功能较弱 |
作者:reco171
链接:https://www.jianshu.com/p/5da398ae4017
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。