加载中...
时序数据库(TSDB)专门优化存储和查询按时间戳组织的数据,如服务器监控指标、IoT 传感器读数、金融交易记录等。相比通用数据库,时序数据库在时间范围查询、降采样聚合、数据自动过期等操作上有数量级的性能优势。

| 典型产品 | InfluxDB、Prometheus、TimescaleDB、OpenTSDB |
| 核心优化 | 时间分区、差值压缩、自动降采样 |
| 主要应用 | DevOps 监控、IoT、金融行情 |
时序数据有几个典型特征:写入量巨大且几乎只追加(一台服务器每秒可产生数百个指标点);查询几乎总是基于时间范围;历史数据价值递减,旧数据可以降精度保留(降采样);相邻时间点的值往往相近,压缩率极高。
通用数据库处理这类数据时问题明显:按时间戳建索引后写入仍有随机 IO;没有原生的降采样和 TTL 机制;时间范围聚合查询(如「每5分钟的平均 CPU 使用率」)要扫描大量行,效率低下。[1]
InfluxDB 是最知名的开源时序数据库,有独立的 InfluxQL 和 Flux 查询语言,内置降采样策略和数据保留策略(Retention Policy),Prometheus 生态中经常用它长期存储监控数据。
Prometheus 本身也内置了时序存储,但设计上只适合短期存储和高频查询,生产中通常配合 Thanos 或 Cortex 做长期持久化。
TimescaleDB 是 PostgreSQL 的扩展,把时序优化叠加在 PostgreSQL 之上,核心机制是将数据按时间自动分块(Chunk),每个块对应一个小的 PostgreSQL 表,同时保留完整的 SQL 支持,对有 PostgreSQL 经验的团队非常友好。

| 典型产品 | InfluxDB、Prometheus、TimescaleDB、OpenTSDB |
| 核心优化 | 时间分区、差值压缩、自动降采样 |
| 主要应用 | DevOps 监控、IoT、金融行情 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧