资讯详情

三种常用时序数据库对比调研-InfluxDB、Prometheus、IotDB

1、引言

时序数据治理是数据治理领域的核心IT与OT域数据链路是工业物联网基石、大数据价值创造、企业管理改进发动机、数字化转型的重要支撑。

在生产经营过程中,工业企业将利用物联网技术收集大量数据并实时处理。这些数据是时间顺序,具有时间戳、结构化、未更新、唯一数据源等显著特点。

过程数据采集和过程控制应用于智能城市、物联网、汽车互联网和工业互联网,并与过程管理建立数据链接,属于工业数据管理的新兴领域。

物联网和互联网中时序数据库的应用场景APM有下是一些时序数据库的应用场景,但并非全部:

  • 公共安全:网络记录、电话记录、个人跟踪、区间筛选;
  • 电力行业:智能电表、电网、发电设备集中监控;
  • 互联网:服务器/应用监控、用户访问日志、广告点击日志;
  • 物联网:电梯、锅炉、机械、水表等各种联网设备;
  • 交通行业:实时路况、交叉口流量监测、交叉口数据;
  • 金融业:交易记录、访问记录、ATM、POS机监测。

2、概述

2.定义1时序数据库

时序数据是随时间不断生成的一系列数据,简单来说就是带时间戳的数据。时序数据库 (Time Series Database,TSDB) 它是一个优化数据库,用于访问、处理和存储时间戳数据。这些数据可能包括服务器和应用程序的指标、物联网传感器的读数、网站或应用程序上的用户互动或金融市场上的交易活动。

其主要数据属性如下:

  • 每个数据点都包含用于索引、聚合和采样的时间戳。这些数据也可以是多维和相关的;
  • 写多读少,需要支持秒、毫秒甚至纳秒高频写入;查询通常是多维聚合查询,对查询延迟要求较高
  • 数据汇总视图(如下采样或聚合视图和趋势线)可能比单个数据点提供更多的洞察力。例如,考虑到网络不可靠性或传感器读数异常,我们可以在一段时间内设置报警,而不是在单个数据点上;
  • 分析数据通常需要在一段时间内访问(例如,给我过去一周的点击率数据);

虽然其他数据库也可以在一定程度上处理数据规模较小的时间序列数据,但是 TSDB数据摄入、压缩和聚合可以随着时间的推移更有效地处理。简而言之,时序数据库是一个专门用于存储和处理时序数据的数据库,支持时序数据的高效读写、高压缩存储、插值和聚合。

2.2时序数据库的概念

时序数据库是专门处理时序数据的数据库,因此其相关概念与时序数据密切相关,以下是时序数据库的一些基本概念。

  • :Metric 类似关系数据库中的表(Table),例如,为空气质量传感器建立一系列同类时序数据集 Table,存储所有传感器的监控数据。
  • 标签 Tag:Tag 描述数据源的特征通常不会随着时间的推移而改变,如传感器设备,包括设备 DeviceId、设备所在的 Region 等 Tag 信息将在数据库中自动进行 Tag 建立索引,支持基础 Tag 多维检索查询;Tag 由 Tag Key、Tag Value 成分,两者都是 String 类型。
  • :Timestamp可以写入时指定代表数据生成的时间点,也可以由系统自动生成;
  • :Field描述数据源的量测指标,通常随着时间不断变化,例如传感器设备包含温度、湿度等Field;
  • 数据源在一定时间内产生的测量指标值(Field Value)称为数据点,数据库查询、写入时以数据点为统计指标;
  • :数据源的某一指标随时间变化,形成时间线,Metric Tags Field 组合确定时间线;时序数据的计算包括降采样和聚合(sum、count、max、min等)、插值等都基于时间线维度进行;

2.3时序数据库的趋势

从DB-engines(Knowledge Base of Relational and NoSQL Database Management Systems)获取获取,下图为DB-engines数据库近24个月的发展趋势,其中时序数据库活跃度最高,随着时间的推移,趋势越来越活跃。

3.常用时序数据库测试

3.1读写测试

写入测试

指标

InfluxDB

Prometheus

IoTDB

10000

185ms

192ms

183ms

10000

186ms

195ms

120ms

20000

252ms

268ms

236ms

20000

264ms

273ms

219ms

30000

385ms

401ms

274ms

查询测试

指标

InfluxDB

Prometheus

IoTDB

10000

14ms

18ms

16ms

20000

31ms

32ms

35ms

40000

56ms

58ms

54ms

60000

75ms

82ms

78ms

90000

96ms

99ms

97ms

3.2 功能对比

DB-Engines提供的编辑信息

描述

用于存储时间序列、事件和指标的 DBMS

开源时间系列DBMS和监控系统

具有高性能数据管理和分析的物联网原生数据库,可部署在边缘和云端,并与Hadoop,Spark和Flink集成

主数据库模型

时间序列数据库管理系统

时间序列数据库管理系统

时间序列数据库管理系统

辅助数据库模型

空间数据库管理系统

数据库引擎排名

得分       29.86

排    #29    整体

#1     时间序列数据库管理系统

得分       6.32

排    #67    整体

#3     时间序列数据库管理系统

得分       0.43

排    #255         整体

#20    时间序列数据库管理系统

网站

InfluxDB: Open Source Time Series Database | InfluxData

prometheus.io

iotdb.apache.org

技术文档

docs.influxdata.com/influxdb

prometheus.io/docs

开发人员

Apache Software Foundation

初始版本

2013

2015

2018

当前版本

2.0.8, 八月 2021

许可证信息

开源信息

开源信息

开源信息

仅基于云的信息

DBaaS 产品/服务信息

实现语言

Go

Go

Java

服务器操作系统

Linux

OS X

Linux

Windows

具有 Java 虚拟机的操作系统(>= 1.8)

数据方案

无架构

类型

数值数据和字符串

仅数字数据

XML支持

二级索引

断续器信息

类似 SQL 的查询语言

类似 SQL 的查询语言

API 和其他访问方法

HTTP API

JSON over UDP

RESTful HTTP/JSON API

JDBC

Native API

支持的编程语言

.Net

Clojure

Erlang

Go

Haskell

Java

JavaScript

JavaScript (Node.js)

Lisp

Perl

PHP

Python

R

Ruby

Rust

Scala

.Net

C++

Go

Haskell

Java

JavaScript (Node.js)

Python

Ruby

服务器端脚本

触发器

分布方法

分片

分片

复制方法

可选复制因子

地图共享资源

与Hadoop和Spark集成

一致性概念

没有

最终一致性

与Raft的强一致性

外键

交易概念

并发

耐久性

内存中功能

用户概念

通过用户账户进行简单的权限管理

系统供应商提供的详细信息

具体特性

  1. InfluxData是开源时间序列数据库InfluxDB的创建者。 它专门用于处理物联网设备和传感器、应用程序、容器、VM 和网络生成的大量带时间戳的数据。借助 InfluxDB,开发人员可以快速、大规模地为物联网、分析和云原生服务构建实时应用程序。
  2. InfluxData专注于开发人员的幸福感和在开发人员所在的地方与他们会面 - 使用他们喜欢的工具以及无论他们在哪里构建应用程序:在云中,本地还是本地。InfluxData还致力于帮助开发人员更快地启动和运行,以便他们可以专注于其他事情。
  3. InfluxDB的客户范围从初创公司到财富500强企业,其用例跨越了每个垂直行业,例如消费者和工业物联网,安全,金融科技,可再生能源等。目前,全球有超过600,000个InfluxDB OSS的每日活动实例和超过50,000个注册开发人员使用InfluxDB Cloud;社区每年都在迅速发展。

\

  1. Apache IoTDB(物联网数据库)是一个时间序列数据管理系统,在物联网中集成了数据收集,数据存储,数据管理和数据分析。
  2. Apache IoTDB旨在解决物联网的痛点,即海量数据生成,高频采样,无序数据,特定分析要求,高存储和运维成本,物联网设备的低计算能力等。
  3. 它支持高频数据写入,低成本数据存储,低延迟查询,复杂分析等。
  4. “TsFile”是一种列存储文件格式,用于在Apache IoTDB中访问,压缩和存储时序数据。其结构基于LSM-Tree,减少了计算资源,优化了Apache IoTDB的性能。

竞争优势

  1. 价值实现时间
  • InfluxDB提供所有流行的语言和框架,使开发人员能够在几分钟内启动并运行,而不是几天或几周。借助易于使用的快速入门和文档,开发人员可以构建开放、可扩展且易于部署的应用程序。
  1. 社区与生态系统
  • InfluxDB拥有最大的云和开源开发人员社区,用于时序数据库解决方案。通过使社区能够为其他生态系统做出贡献并与其他生态系统集成,InfluxDB在所有用例中都具有更高的弹性,质量,使用和可配置性。Telegraf是InfluxDB的开源收集代理,目前拥有300多个插件,使开发人员不仅可以在数百个数据源中读取和写入指标,还可以转换和过滤这些指标。
  1. 实时实际操作
  • InfluxDB 通过实时分析提供可见性,以便开发人员可以快速对其数据采取行动,例如识别模式、预测未来结果以及将见解转化为行动。

\

  1. 低成本、高性能
  • 数千万点写入吞吐量
  • 压缩比高(优于1:10无损压缩),可大大节省服务器硬件成本。
  1. 易用性
  • 跨平台部署,仅依靠 JDK/JRE
  • 开箱即用
  • 独立于第三方系统和外部组件,降低运维成本。
  1. 多样化的数据处理和分析方法
  • 与Apache PLC4X、Apache Pulsar、Apache Flink、Apache Spark、Apache Zeppelin、Grafana等集成,构建完整的开源软件生态
  • 丰富的数据分析功能,如触发器、用户定义功能 (UDF)、选择进入、连续查询等。
  1. 物联网原生数据模型
  • 树状结构
  • 在单个节点中处理数百万台设备/数千万个时间序列
  • 自动创建模型。
  1. 通过“TsFile”的终端边缘云协同解决方案
  • 可部署为数据文件(“TsFile”,一种针对时序数据优化的列存储文件格式)、数据库或数据仓库
  • 在终端(例如现场设备),边缘(例如IPC)和云(内部或云服务器)之间同步“TsFile”,这可以避免重复计算和ETL成本。
  1. 低成本迁移
  • 通过适配器与各种TSDB(InfluxDB,Prometheus,KairosDB等)兼容

典型用户场景

  1. 物联网和传感器监控
  • 开发人员正在见证材料世界中每个可用表面的仪器化 - 从机器到人类。这些设备和传感器正在产生前所未有的数据量,软件需要扩展以满足这一需求。使用InfluxDB的开发人员可以利用数据在时间背景下提供的见解,使他们能够识别和预测随时间推移的趋势,确保任务关键型流程更加一致,高效和可靠。
  1. DevOps Monitoring & Tools for Developers
  • 微服务、容器化、弹性存储、软件定义网络、API 性能、身份验证故障、混合云等新兴趋势,都在不断推动 DevOps 监控和开发人员工具的边界。端点的数量和需要监控的指标的多样性迫使人们重新考虑“一刀切”的心态。现代 DevOps 监控和 DevTools 需要足够灵活,以便在通用框架上处理独特的应用程序和基础架构指标。
  1. 实时分析
  • 指标和事件的数量超出了任何人能够现实地解释和采取行动的能力。具有实时分析功能的机器学习对于从噪声中查找信号至关重要。组织是否需要实时分析来买卖股票,在机器发生故障之前对机器进行预测性维护,根据客户行为调整价格:实时处理,分析和处理时间序列数据是要解决的问题。

\

  1. 物联网/物联网
  2. 终端-边端-云协作
  3. 实时和历史时间序列分析

主要客户

  1. InfluxData拥有超过1,300名付费客户,其中客户包括MuleSoft,IBM,PayPal,Siemens,Tesla。

\

  1. 全球客户超过200家,包括博世、西门子、Komat'su、阿里巴巴等。

市场指标

  1. 增长最快的数据库可驱动 23,500 颗 GitHub 星
  2. 每天超过 600,000 个活动实例

\

  1. GitHub 上有 185 多个贡献者和 10,000 多次每月克隆
  2. 在2021年所有351个Apache项目中排名第7。
  3. 在国际会议/峰会上发表,如ICDE,VLDB,ApacheCon,构建物联网等。
  4. 在澳大利亚、巴西、中国、德国、日本、新西兰、美国等地实施。

许可和定价模式

  1. 具有闭源群集的开源核心,可在本地或云上作为托管服务使用。所有产品均可通过订阅获得。

\

  1. 开源:Apache License v2.0
  2. 商业/云/边缘版的定价由Timecho提供,并可根据要求提供。

3.3总结

系统供应商提供的详细信息

优点

  1. Metrics+Tags
  2. 部署简单、无依赖
  3. 实时数据Downsample
  4. 高效存储
  1. Metrics+Tags
  2. 适用于容器监控
  3. 具有丰富的查询语言
  4. 维护简单
  5. 集成监控和报警功能
  1. 国产数据库
  2. 灵活部署策略
  3. 学习成本低
  4. 硬件成本低

缺点

  1. 开源版本没有集群功能
  2. 存在前后版本兼容问题
  3. 存储引擎在变化
  1. 没有集群解决方案
  2. 聚合分析能力较弱
  3. 它并不是为了解决大容量存储问题,TB级以上数据建议保存到远端TSDB中;
  4. 它是为运行时正确的监控数据准备的,无法做到100%精准,存在由内核故障、刮擦故障等因素造成的微小误差。
  1. 暂时不支持集群
  2. TSFile结构版本单一
  3. 计算层薄弱

标签: id压缩型传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台