时序数据库 – InfluxDB
Time series database (TSDB) 时序数据库
- 时序数据库是一种随着时代演化,数据量大量增加的情况出现的数据库,时序数据库更像是之前的关系型数据库和非关系型数据库的结合体,时序数据库不需要严格的数据结构,时序数据库的一种 — influxDB使用的是类似于SQL 语句的操纵方式,且时序数据库与非关系型数据库都有很强的高并发能力。
- 时序数据库是基于时间进行存储的一种数据库,每一条数据中都有一个时间戳,因而这种数据库特别适合存储那些随着时间变化的数据,通过一些工具处理后,能够分析出数据随时间变化的趋势。
- 时序数据库相较关系型数据库的变化,底层的存储结构不同,关系型数据库使用的是B+ 树存储结构,而时序数据库使用的是LSM存储结构,能够带来很多好处,一大好处就是支持比关系型数据库甚至比NoSQL大得多的并发量,如下图
- 说了这么多,到底时序数据库的用处在哪里呢
- 时序数据库最开始应用的地方 – 工业制造,为了高效存储传感器传来的测量数据,监测各项环境变量
- IoT – 物联网,也就是每个设备都会有一个传感器,搭配上IPv6,每个设备都能传输数据到数据库
- 自动驾驶,与5G搭配,将自动驾驶的海量数据存储到时序数据库
- 监控,运维中对计算机基础设施的监控数据非常多,从网络,数据中心,集群,主机,虚拟机,存储等
- 金融,华尔街还专门开发时序数据库(DolphinDB)存储金融数据,为量化金融的分析统计助力
- 参考资料
- 时序数据库排名
- DB-engine 时序数据库排名
- 2019.7 月排名
- 时序数据库排名
- 数据来自 时序数据库特点与对比
时序数据库 | 优点 | 缺点 |
---|---|---|
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查询 提供丰富的函数支持 具有分布式容错框架 支持原始数据查询 适用于基数大的维度存储分析 |
比较年轻,扩张不够丰富,社区还不够活跃 不支持数据更新和删除 集群功能较弱 |