时序数据库(TSDB)
接下来就到了,自己所适应行业的数据库了,时许数据库,这类对物联网传感器数据有着很好的支持。
https://blog.csdn.net/firewater23/article/details/125697248
时序数据是随时间不断产生的一系列数据,简单来说,就是带时间戳的数据。
虽然其他数据库也可以在数据规模较小时一定程度上处理时间序列数据,但 TSDB可以更有效地处理随时间推移的数据摄取、压缩和聚合。以车联网场景为例,20000辆车,每个车60个指标,假设每秒采集一次,那么每秒将上报20000 * 60 = 1200000指标值,即120W数据指标值每秒,每个指标值为16字节(假设仅包括8字节时间戳和8字节的浮点数),则每小时将产生64G左右的数据。而实际上每个指标值还会附带标签等额外数据,实际需要存储空间会更大。
时序数据库相关概念
时序数据库是专门处理时序数据的数据库,因此其相关概念是和时序数据紧密联系的,下面是时序数据库的一些基本概念。
-
度量 Metric:Metric 类似关系型数据库里的表(Table),代表一系列同类时序数据的集合,例如为空气质量传感器建立一个 Table,存储所有传感器的监测数据。
-
标签 Tag:Tag 描述数据源的特征,通常不随时间变化,例如传感器设备,包含设备 DeviceId、设备所在的 Region 等 Tag 信息,数据库内部会自动为 Tag 建立索引,支持根据 Tag 来进行多维检索查询;Tag 由 Tag Key、Tag Value 组成,两者均为 String 类型。
-
时间戳 Timestamp:Timestamp代表数据产生的时间点,可以写入时指定,也可由系统自动生成;
-
量测值 Field:Field描述数据源的量测指标,通常随着时间不断变化,例如传感器设备包含温度、湿度等Field;
-
数据点Data Point: 数据源在某个时间产生的某个量测指标值(Field Value)称为一个数据点,数据库查询、写入时按数据点数来作为统计指标;
-
时间线 Time Series :数据源的某一个指标随时间变化,形成时间线,Metric + Tags + Field 组合确定一条时间线;针对时序数据的计算包括降采样、聚合(sum、count、max、min等)、插值等都基于时间线维度进行;
时序数据库应用场景
时序数据库的应用场景在物联网和互联网APM等场景应用比较多,下面是列举了一些时序数据库的应用场景,但不是全部:
-
公共安全:上网记录、通话记录、个体追踪、区间筛选;
-
电力行业:智能电表、电网、发电设备的集中监测;
-
互联网:服务器/应用监测、用户访问日志、广告点击日志;
-
物联网:电梯、锅炉、机械、水表等各种联网设备;
-
交通行业:实时路况、路口流量监测、卡口数据;
-
金融行业:交易记录、存取记录、ATM、POS机监测;
说不定除了这个空调,下次的电梯项目也是时序数据库
时序数据库的应用场景在物联网和互联网APM等场景应用比较多,下面是列举了一些时序数据库的应用场景,但不是全部:
-
公共安全:上网记录、通话记录、个体追踪、区间筛选;
-
电力行业:智能电表、电网、发电设备的集中监测;
-
互联网:服务器/应用监测、用户访问日志、广告点击日志;
-
物联网:电梯、锅炉、机械、水表等各种联网设备;
-
交通行业:实时路况、路口流量监测、卡口数据;
-
金融行业:交易记录、存取记录、ATM、POS机监测;
特点等等
时序数据库
https://worktile.com/blog/know-1514/
-
InfluxDB
InfluxDB是一款用Go语言编写的开源分布式时序、事件和指标数据库,无需外部依赖。该数据库现在主要用于存储涉及大量的时间戳数据,如DevOps监控数据,APP metrics,loT传感器数据和实时分析数据。
作为目前开源排名最高的时序数据库,InfluxDB支持数据存储策略(RP)和数据归档(CQ),能够实时查询,数据在写入时被索引后就能够被立即查出,内置HTTP接口,安装管理很简单,并且读写数据非常高效。 -
Kdb+
kdb+/q被官方称为世界上最快的时间序列数据库,它使用统一的数据库处理实时数据和历史数据,同时具备CEP(复杂事件处理)引擎、内存数据库、磁盘数据库等功能。列式存储的特性,使得对于某个列的统计分析操作异常方便。
与一般数据库或大数据平台相比,kdb+/q具有更快的速度和更低的总拥有成本,非常适合海量数据处理,主要被用于海量数据分析、高频交易、人工智能、物联网等领域。在延迟性上有着苛刻要求的金融领域,kdb+有着独特的优势。 -
Prometheus
kdb+/q被官方称为世界上最快的时间序列数据库,它使用统一的数据库处理实时数据和历史数据,同时具备CEP(复杂事件处理)引擎、内存数据库、磁盘数据库等功能。列式存储的特性,使得对于某个列的统计分析操作异常方便。
与一般数据库或大数据平台相比,kdb+/q具有更快的速度和更低的总拥有成本,非常适合海量数据处理,主要被用于海量数据分析、高频交易、人工智能、物联网等领域。在延迟性上有着苛刻要求的金融领域,kdb+有着独特的优势。 -
Graphite
Graphite是一个开源实时的、显示时间序列度量数据的图形系统。Graphite并不收集度量数据本身,而是像一个数据库,通过其后端接收度量数据,然后以实时方式查询、转换、组合这些度量数据。
Graphite支持内建的Web界面,它允许用户浏览度量数据和图。它由多个后端和前端组件组成。后端组件用于存储数值型的时间序列数据,前端组件则用于获取指标项数据并根据情况渲染图表。 -
TimescaleDB
TimescaleDB是唯一支持完整SQL的开放源代码时间序列数据库,已针对支持全面SQL的快速提取和复杂查询进行了优化。它基于PostgreSQL,并且为时间序列数据提供了最好的NoSQL和Relational世界。
TimescaleDB使开发人员和组织能够更多地利用其功能:分析过去,了解现在和预测未来。在查询层面统一时序数据和关系数据可消除数据孤岛,并使演示和原型更容易实现。可扩展性和完整的SQL接口的结合赋予员工提出数据问题。 -
阿里云TSDB
作为我国科技公司的代表,阿里云时序数据库也入围了DB-Engines榜单。TSDB是一种集时序数据高效读写,压缩存储,实时计算能力为一体的数据库服务,可广泛应用于物联网和互联网领域,实现对设备及业务服务的实时监控,预测告警。
TSDB具备秒级写入百万级时序数据的性能,提供高压缩比低成本存储、预降采样、插值、多维聚合计算、可视化查询结果等功能,解决由设备采集点数量巨大、数据采集频率高造成的存储成本高、写入和查询分析效率低的问题。