时序数据库InfluxDB和关系型数据库MySQL的区别及适用场景

article/2025/8/18 15:08:55

        数据库主要分为关系型数据库和非关系型数据库,大家所熟悉的数据库中,属Oracle、MySQL和Microsoft SQL Server最出名,使用人数最多,这三种都属于关系型数据库,之所以使用人数这么多,是因为关系型数据库符合大部分应用场景,但有些特定的场景就未必适用,需要根据情况选择不同的数据库,比如在物联网(IoT)领域就需要用到非关系型数据库中的时序数据库,全称时间序列数据库,时间序列数据库指主要用于处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。而时序数据库中排第一的要属InfluxDB,有着使用人数多、开源等特点,从这方面看身份地位在时序数据库中类似关系型数据库中的MySQL。

1.InfluxDB时序数据库的起源与特点

        InfluxDB是开源数据库,发布于2013年,但时序数据库真正发展是2015年开始,各种时序数据库争奇斗艳的出现,有Kdb+、Graphite、TimescaleDB、OpenTSDB等,而在人气上InfluxDB远远的把他们甩在了后面,从那时到现在都是排名第一,且人气还在增长。

        有了MySQL等关系型数据库,为什么还要用时序数据库呢?对比MySQL,InfluxDB时序数据库有以下特点:

优点:

  1. 同MySQL一样开源免费,单体存储超过10亿级别的时间序列数据,TB或者PB级,在如今大数据背景下起到重要作用。
  2. 插入性能高,飞一般的聚合查询速度,这是MySQL远远不能企及的。
  3. 数据压缩存储,减少服务器存储压力,同样数量的数据,比MySQL的存储小了数倍。
  4. 提供了保存策略,使数据存放具有时效性
  5. 内置持续查询功能,定时计算指定时间段的数据,插入到指定表中,可以理解为定时归集数据。
  6. 1.0版本支持类似SQL的查询语法(2.0版本以后不再支持,改为了flux语法)。
  7. 基于 Go 语言编写的无环境依赖,提供了Http Api直接访问。
  8. 水平扩展,支持集群模式(收费)。

缺点:

  1. 不支持事务。
  2. 不支持多表关联查询。
  3. 不支持直接删除和修改数据功能,删除只能用数据保存策略。
  4. 2.0版本不支持SQL语法,而是用flux语法,增加了学习难度。
  5. 国内用户少,资料也少,需要查阅英文文档。

2.InfluxDB时序数据库的技术及应用现状

        时序数据,就是以时间排序的一系列数据,每一条数据都有唯一的时间作为主键,时间精度到纳秒级别,数据增长比较快,基本不会去修改。比如某地的温度测量仪,每隔几秒就要测量一次温度,而且有很多个这样的测量仪,在不停的测量上传数据,这么多数据要放到MySQL压力是非常大的,由于MySQL的存储机制,不说能不能存储下这么多数据,数据量一旦大了查询速度就会非常慢,严重影响使用体验,而InfluxDB在存储时自动为数据以时间分片压缩存储,在有时间范围条件下,即使数据量很大,查询速度依然很快。

        InfluxDB还有着优秀的插入性能,没有像MySQL那样的索引存在,在写入的同时不会对查询造成影响,这在物联网领域是迫切需要的。但是时序数据库弱化了关系,所以通常不作为项目中唯一的数据库,需要配合MySQL这样的关系型数据库一起使用,MySQL存储一些需要关联查询并且数据量不会增长到很大的数据,InfluxDB存储有时间序列的大数据。

        从以上这些特点可以看出,时序数据库就是为了解决关系型数据库在大数据处理和存储上不能有效解决的问题,关系型数据库因为天生的劣势,导致其无法进行高效的存储和数据的查询,时序数据库采用了特殊的存储方式,以达到高效存储和快速处理海量时序大数据,是解决海量数据处理的一项重要技术。该技术采用特殊数据存储方式,极大提高了时间相关数据的处理能力,相对于关系型数据库它的存储空间减半,查询速度极大的提高,时间序列函数优越的查询性能远超过关系型数据库。

        近年来,时序数据库发展十分迅猛,各大互联网企业包括 Google、阿里、Amazon 都推出自己的时序数据库,DB-Engines从2014年起也把时序数据库作为独立的目录进行分类统计。

3.InfluxDB时序数据库的发展趋势

        InfluxDB 1.0版本是类SQL语法,上手很快,但至2.0版本开始,InfluxDB不再支持类SQL语法,而是推出了自己创立的新Flux语法,InfluxDB 之所以创造 Flux 语法,而不使用 SQL,主要有两个原因:更强的查询功能,SQL 无法轻松完成时序查询;时间序列的查询需要基于流的函数模型,而不是 SQL 的代数模型。对于国内用户来说,这种改变对1.0版本支持SQL建立起来的优势有一定冲击,用户需要更多学习成本,而且由于国内用户少,新版的资料非常少,需要自己查阅官方英文文档。

        2.0版本还对一些概念做了更改,比如:Organization (组织),简称org,跟1.0版本中的database概念一致(在关系型数据库中也是database);Bucket (桶),融合了1.0版本中存储策略和库的概念;Measurement相当于表;token(令牌),在1.0版本中是用账号密码作为凭证跟InfluxDB进行连接交互,2.0版本改为用令牌。如此大的改动,就算是从1.0版本升级到2.0版本,学习成本也接近一种新的数据库,实属劝退之举啊,当然对于大部分开发者来说这点难度不算什么。建议1.0版本的用户不是刚需而且时间充足的话,不用急着升级,等市场稳定有较多资料后再做升级,初次使用者可以直接用2.0版本,也可以用别的优秀数据库代替。

        经过了这些年,现在国内已经有些很优秀的时序数据库了,比如浙江智臾科技的DolphinDB和北京涛思数据科技的TDengine。

        TDengine:性能远超InfluxDB,写入性能比InfluxDB快约为5倍,读取性能约为35倍,聚合函数性能约为140倍,按标签分组查询性能约为250倍,按时间分组查询性能约为12倍,压缩比约为1.8倍,数据存储压缩比可以降到4%,大大减少服务器存储压力,开源(包括集群),目前只支持linux系统,采用类SQL语法,目前时序数据库排行榜第9位(截至2023年6月),请参考:DB-Engines Ranking - popularity ranking of time Series DBMS。

        DolphinDB:性能优于InfluxDB 1至2个数量级(10-100倍),导出速度为InfluxDB的2倍,写入速度约为12倍,性能还要优于TDengine,但是不开源,需要收费,国内更多的是应用在金融领域,同样是采用类SQL语法,目前时序数据库排行榜第6位(截至2023年6月),请参考:DB-Engines Ranking - popularity ranking of time Series DBMS。

 

        虽然从测试数据上看都比InfluxDB性能要好,但使用人数不是很多,都发布于2018年,发布时间不长,稳定性仍欠缺,在实际生产环境中表现怎么样还需要市场长期验证。当然DolphinDB和TDengine对于国内用户会更加友好,而且目前还是用的类SQL语法,从关系型数据库切换过来学习成本要低一些,有问题也可以随时联系开发公司解决。

        时序数据库正处于高速发展阶段,时序数据技术逐步走向成熟,但是这绝不是终点,时序数据技术还面临各种新的需求和挑战。各大厂商在提高时序数据库性能的同时,针对新需求正在提出更多解决方案:

        1.云服务,除了单机版本,许多厂商还发布了分布式版本、云服务版本,特别是云服务,已经成为必不可挡的发展趋势。

        2.可视化服务,随着万物互联的到来,用户对信息的全面掌握的需求在增长,时序数据的可视化展示成为一大趋势,这就对时序数据库的查询能力提出更高的要求。

        3.边缘计算服务,在万物互联的时代,更多的传感器带来的庞大数据量是集中化处理方式难以负荷的,这就使得数据计算向边缘化发展,设备将数据通过边缘设备进行实时处理分析反馈后再集中存储,能够提高设备的实时响应能力,提升时效性数据的价值,因此,时序数据库对边缘计算的支持将成为其一个重要的功能。

        面对这些挑战与机遇,相信时序数据库将会有更深的发展,未来可期,而InfluxDB是否还能保持其霸主的地位,让我们拭目以待。

4.总结

        在如今处处都是大数据的时代,传统关系型数据库已经满足不了多元的市场需求了,更多的是要结合项目,选用合适的数据库,像我工作中碰到的需求就是要采集生产过程中每个环节的一系列数据,以便进行追溯,在经过层层筛选后,选用了InfluxDB为主,MySQL为辅,各司其职,相辅相成,以建立稳健的系统。

        在挑选时序数据库时,追求开源和稳定性的话,InfluxDB仍是首选,毕竟经历了众多生产环境的验证,同时因为2.0版本采用了新的flux语法,需要考虑团队的学习成本;业务更偏向金融的大公司,可以考虑DolphinDB,它有完善的中文技术文档,而且是在国内,有专业的技术团队提供服务,解决问题速度会比较快;喜欢尝试的也可以用TDengine,它除了时序数据库功能外,还提供缓存、数据订阅、流式计算等功能,可以省去比如Redis、RabbitMQ这样的一些中间件,并且对于用惯了MySQL、Oracle等sql语法数据库的程序员,相较InfluxDB来说更容易上手。


http://chatgpt.dhexx.cn/article/EqirPTeL.shtml

相关文章

vm时序数据库-导入数据

时间序列数据可以通过任何支持的摄取协议导入: Prometheus remote_write API. See these docs for details.DataDog submit metrics API. See these docs for details.InfluxDB line protocol. See these docs for details.Graphite plaintext protocol. See these …

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

1、引言 时序数据治理是数据治理领域核心、打通IT与OT域数据链路,是工业物联网基石、大数据价值创造的关键、企业管理提升的发动机、是数字化转型的重要支撑。 工业企业在生产经营过程中,会运用物联网技术,采集大量的数据并进行实时处理&am…

时序数据 mysql存储_【时序数据库】时序数据库介绍

1.基本概念 时序数据库(Time Series Database)是用于存储和管理时间序列数据的专业化数据库。时序数据库特别适用于物联网设备监控和互联网业务监控场景。 下面介绍下时序数据库的一些基本概念(不同的时序数据库称呼略有不同)。 1.1 度量(metric) 监测数据的指标,例如风力和温…

mysql 时序数据库_时序数据库介绍和使用(转)

1.基础 1.1 时序数据的定义 什么是时间序列数据(Time Series Data,TSD,以下简称时序)从定义上来说,就是一串按时间维度索引的数据。用描述性的语言来解释什么是时序数据,简单的说,就是这类数据描述了某个被测量的主体在一个时间范围内的每个时间点上的测量值。它普遍存在于…

关于时序数据库

https://blog.csdn.net/ransom0512/article/details/78114167 看了一些时序数据库,没有太深入,有一些大概认识,记录下来。 1. 核心 数据存储分为行存储或者列存储,由于列存储的高压缩比,现在使用列存储的比较多一…

时序数据库Machbase

Background 最近偶然接触到Machbase,发现相关信息很少,于是自己做了一些简单的了解,这里记录下,方便有兴趣的童靴参考哈。 1、官方介绍 Machbase是韩国的一家公司开发的一款类似InfluxDB、DolphinDB、TDengine等时序数据库产品&am…

用友:时序数据库要更懂业务场景

本文来自IT168 作者卢敏 时序数据库是针对时间戳或时间序列数据优化的数据库。比如工业企业为了管好工业设备,需要用传感器收集一些带有时间标签的数据,这些数据既要求“超大规模数据瞬时写入”,又要求实现乱序管理。 用友网络助理总裁何冠…

InfluxDB时序数据库

InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。 InfluxDB有三大特性: Time Series (时间序列&#xff…

【技术选型】时序数据库选型

文章目录 1、前言2、概述2.1 时序数据库的定义2.2 时序数据库的概念2.3 时序数据库的趋势 3、时序数据库对比3.1 influxdb3.2 Prometheus3.3 TDengine3.4 DolphinDB 4、选型结论 1、前言 时序数据治理是数据治理领域核心、打通IT与OT域数据链路,是工业物联网基石、…

mysql时序性数据库_时序数据库入门

数据库的模型包含关系型、key-value 型、Document 型等很多种,那么为什么新型的时序数据库成为监控数据存储的新宠呢? 下面就会从 为什么需要时序数据库? 时序数据库的数据结构 两个方面来介绍一下时序数据库。 1. 为什么需要时序数据库 1.1 …

时序数据库详解和使用

1.基础 1.1 时序数据的定义 什么是时间序列数据(Time Series Data,TSD,以下简称时序)从定义上来说,就是一串按时间维度索引的数据。用描述性的语言来解释什么是时序数据,简单的说,就是这类数据描…

时序数据库 InfluxDB

目录 一、介绍 二、安装 三、inflxudb保留字 四、基本语法 1、客户端操作 1. 数据库操作 2. 数据表和数据操作 3. series 操作 4.Shard 5. 用户操作 2、API操作 状态码 3、Java操作 五、常用函数 六、存储策略 1.查看策略 2.创建策略 3、修改策略 4. 删除…

时序数据库介绍

目录 1 .什么是InfluxDB 2.那么时序数据有什么特点呢? 3.对于时序数据,我们总结了以下特点: 4.业务方常见需求 5.时序数据库为了解决什么问题? 6.InfluxDB的优势 1 .什么是InfluxDB InfluxDB是一个开源的、高性能的时序型数…

4款堪称神器的电脑黑科技软件,让人相见恨晚

Syncthing https://syncthing.net/ 一款免费的开源跨平台文件同步客户端、服务器工具。支持Linux、Windows、OSX、FreeBSD以及Solaris等系统,具有一个强大的响应式的网页管理界面,能够帮助用户简便地添加、删除和管理通过网络进行同步的文件夹。支持用…

4个超级实用的黑科技软件神器,让你爱不释手!

EyeLoveU 一款免费的眼睛保护工具,主要功能分为两种提醒模式:定时提醒、智慧提醒,用户可以设定不同的提醒时间,或者工作持续多久后进入休息模式。 Rolan 一款轻量级系统启动器管理工具。支持添加一些常用系统功能,如…

目前最值得推荐的几款黑科技APP,快来收藏吧!

说到黑科技APP,每个人都有自己喜欢的,但是都有一个共同特性,那就是装逼神器、时尚大气、实用性强等等。那么今天我就来给大家推荐几款瞬间提高逼格的黑科技APP我们来一起看看吧! 一、魔音音乐 音乐是缓解学习和工作压力的最有效…

学计算机必备软件,电脑必备6个黑科技软件,每个都是顶尖,学习、工作必不可少!...

原标题:电脑必备6个黑科技软件,每个都是顶尖,学习、工作必不可少! 现在基本上已经是信息的时代,我们生活中几乎很难离开两样东西:一个是电脑、一个手机。我们经常会在电脑和手机上边下载或者是安装好多个软…

5款用得最爽的黑科技软件神器,每一款都好用到你无以伦比

闲话少扯,直接切入正题,5款软件件,值得你高调的收藏的! 1、一粒云盘软件 一款专注于企业数据管理的操作软件,每一个精细的权限下都是一次小小的改革,主要用于大型企业的数据资产保护,一个规模…

盘点那些功能强大的黑科技软件:竟然可以如此简单?

随着移动互联网的全球话普及,越来越多黑科技软件渗透到我们的日常生活和工作中,方便着人们的衣食住行。 今天就给大家分享几款比较小众但是却很神器的黑科技软件,用了他们你才知道,原来生活可以如此便捷! 1、拍手寻手机clap 据研究表明,80%的手机用户每年至少有3次找不…

EasyRecovery15专业电脑数据恢复黑科技软件

EasyRecovery数据恢复专家是一款专业数据恢复软件,软件支持文件、照片、视频等600多种文件格式恢复。支持的设备类型包括:电脑/笔记本、回收站、U盘、硬盘、移动硬盘、内存卡、数码设备等各类。先预览再恢复、免费扫描、一键恢复。免费试用!重…