【摘抄总结】我们为什么需要一个时序数据库?

208 阅读2分钟

1.什么是时序数据?

统一表示系统、过程或行为随时间变化的数据

简述

按时间顺序存储的一连串随时间推移测量相同事物的数据点

举例

股票涨跌、温度变化、系统吞吐量变化、财务报表等

模型

一连串与时间戳配对的数值,由一个名称或者一组归类维度(或者“标签”)

特点

  1. 抵达的数据几乎总是作为新条目记录
  2. 数据通常按照时间顺序抵达
  3. 时间是一个主坐标轴(可是是规则的时间间隔,也可以是不规则的)

与直接在数据库中添加字段有什么区别?

区别在于:数据集如何跟踪变化?

更新当前条目,还是插入新的条目?

当为某个对象收集新的读数,是选择覆盖旧的读数,还是在新的一行创建新的读数?

前者是一般数据库的处理方式,后者则是时序数据库的处理方式

简而言之:时间序列数据集跟踪整个系统的改动并不断插入新数据,而不是更新原有数据。

2.为什么要使用时序数据库?

规模

时间序列数据累计速度非常快,数据量非常大,常规数据库并不是为处理这种数据规模而设计。

关系型数据库处理大数据表现非常糟糕,NoSQL可以处理这种规模,但是时序数据库把时间作为一等公民,对大规模数据的查询和数据压缩以及容纳率有着更好的考量。

可用性

TSDB 通常还包括一些共通的对时间序列数据分析的功能和操作:

数据保留策略、连续查询、灵活的时间聚合等。

即使当下不考虑规模(例如,您刚开始收集数据),这些功能仍可提供更好的用户体验,使用后更轻松。

3. 使用场景

  • 监控软件系统: 虚拟机、容器、服务、应用
  • 监控物理系统: 设备、机器、接入的设备、环境、我们的房屋、我们的身体
  • 资产跟踪应用: 汽车、卡车、物理容器、运货托盘(Pallets)
  • 金融交易系统: 传统证券、新兴的加密数字货币
  • 事件应用程序: 跟踪用户、客户的交互数据
  • 商业智能工具: 跟踪关键指标和业务的总体健康情况

参考文献

【1】我们为什么需要一个时序数据库?语言 & 开发Ajay Kulkarni_InfoQ精选文章