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

这篇具有很好参考价值的文章主要介绍了三种常用时序数据库对比调研-InfluxDB、Prometheus、IotDB。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、引言

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

工业企业在生产经营过程中,会运用物联网技术,采集大量的数据并进行实时处理,这些数据都是时序的,而且具有显著的特点,比如带有时间戳、结构化、没有更新、数据源唯一等。

时序数据处理应用于智慧城市、物联网、车联网、工业互联网领域的过程数据采集、过程控制,并与过程管理建立一个数据链路,属于工业数据治理的新兴领域。

时序数据库的应用场景在物联网和互联网APM等场景应用比较多,下面是列举了一些时序数据库的应用场景,但不是全部:

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

2、概述

2.1时序数据库的定义

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

其主要数据属性如下:

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

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

2.2时序数据库的概念

时序数据库是专门处理时序数据的数据库,因此其相关概念是和时序数据紧密联系的,下面是时序数据库的一些基本概念。

  • 度量 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等)、插值等都基于时间线维度进行;

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提供的编辑信息

名字

InfluxDBX

Prometheus

Apache IoTDBX

描述

用于存储时间序列、事件和指标的 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的强一致性

外键

交易概念

并发

耐久性

内存中功能

用户概念

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

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

名字

InfluxDBX

Prometheus

Apache IoTDBX

具体特性

  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总结

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

指标

InfluxDBX

Prometheus

Apache IoTDBX

优点

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

缺点文章来源地址https://www.toymoban.com/news/detail-834969.html

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

到了这里,关于三种常用时序数据库对比调研-InfluxDB、Prometheus、IotDB的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows下 influxdb 数据库安装和简单使用

    你可以从 InfluxDB 的 InfluxDB官网winndows二进制安装包下载适用于不同操作系统的 InfluxDB 安装包。在本教程中,我们将介绍在 Windows上安装 InfluxDB 的步骤。 如果所示,可以点击下载windows版本的安卓版,右上角还可以切换其他版本的安装包。 下载后解压,里面有个influxd.e

    2024年02月08日
    浏览(36)
  • 数据库信息速递: Apache Arrow 如何加速 InfluxDB (翻译)

    开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内,可以解决你的问题。加群请联系 liuaustin3 ,(共1760人左右 1 + 2 + 3 + 4 +5) 4群(260+),另欢迎 OpenGauss 的技术人员加入。 最近是百业萧条,本地前十的新能源

    2024年02月03日
    浏览(53)
  • 服务攻防-数据库安全-Influxdb&H2database&CouchDB&ElasticSearch数据库漏洞复现

    目录 一、Influxdb-未授权访问-Jwt 验证不当 1、Infuxdb简介 2、安全问题 3、漏洞复现  二、H2database-未授权访问-配置不当 1、H2database简介 2、安全问题 3、漏洞复现  三、CouchDB-权限绕过配合RCE-漏洞 1、CouchDB简介 2、安全问题 3、漏洞复现  四 、ElasticSearch-文件写入RCE-漏洞 1、Ela

    2024年02月16日
    浏览(47)
  • 数据库安全-H2 database&Elasticsearch&CouchDB&Influxdb漏洞复现

    参考:influxdb CVE-2019-20933 靶场环境:vulhub 打开靶场进入环境: 访问: 端口扫描: 默认端口: 8086:用于客户端和服务端交互的HTTP API 8088 :用于提供备份和恢复的RPC服务 influxdb 是一款著名的时序数据库,其使用 jwt 作为鉴权方式。在用户开启了认证, 但未设置参数 shared-s

    2024年02月06日
    浏览(40)
  • RisingWave分布式SQL流处理数据库调研

    RisingWave是一款 分布式SQL流处理数据库 ,旨在帮助用户降低实时应用的的开发成本。作为专为云上分布式流处理而设计的系统,RisingWave为用户提供了与PostgreSQL类似的使用体验,官方宣称具备比Flink高出10倍的性能(指throughput)以及更低的成本。RisingWave开发只需要关注SQL开发

    2024年02月21日
    浏览(47)
  • 分布式数据库(DorisDB、Clickhouse、TiDB)调研

    B站视频:DorisDB VS ClickHouse OLAP PK 1.1 DorisDB 场量:线上数据应用 访问官方网站 DorisDB企业版文档 单表/多表查询,DorisDB总体时间最短 单表查询:DorisDB最快次数最多,ClickHouse次之 多表查询:DorisDB所有执行均最快 DorisDB多表关联效率好 支持各种主流分布式Join,不仅支持大宽表模

    2024年02月06日
    浏览(45)
  • 小迪安全 第56天 服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb 复现

    1.端口扫描 2.报错回显 时序数据库是近几年一个新的概念,与传统的Mysql关系型数据库相比,它的最大的特点是:数据按照时间顺序存储。 举例来说,日志数据,是以时间顺序存储的,所以用时序数据库存储是一种很好的选择。使用Mysql在存储的过程中,不是对这种基于时间

    2024年02月03日
    浏览(47)
  • 弹性数据库连接池探活策略调研(一)——HikariCP

    数据库连接建立是比较昂贵的操作(至少对于 OLTP),不仅要建立 TCP 连接外还需要进行连接鉴权操作,所以客户端通常会把数据库连接保存到连接池中进行复用。连接池维护到弹性数据库(JED)的长连接,弹性数据库默认不会主动关闭客户端连接(除非报错),但一般客户端

    2024年02月10日
    浏览(45)
  • 网络安全全栈培训笔记(56-服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb复现)

    知识点: 1、服务攻防数据库类型安全 2、influxdb,.未授权访问wt验证 3、H2 database-未授权访问-配置不当 4、CouchDB-权限绕过配合RCE-漏洞 5、ElasticSearch-文件写入RCE-漏洞 #章节内容: 常见服务应用的安全测试: 1、配置不当-未授权访问 2、安全机制特定安全漏洞 3、安全机制弱口令

    2024年01月23日
    浏览(51)
  • 时序数据库

    在时间序列数据库TDengine中, FILL 函数与 GROUP BY 子句结合使用,提供了对于在指定间隔内可能存在的数据空缺的填充策略。 FILL(PREV) 和 FILL(linear) 是 FILL 函数的不同选项,它们填充数据缺失值的方式有所区别: FILL(PREV) :当数据序列中存在时间间隔内没有数据的情况时, FIL

    2024年01月22日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包