时序数据库的订阅对比:TDengine vs InfluxDB 谁更强?

news2025/1/14 19:37:19

     

目录

1. 架构:内置 vs 依赖外部

TDengine:

InfluxDB:

2. 灵活性:动态订阅 vs 静态订阅

TDengine:

InfluxDB:

3. 消费机制、API 兼容性与易用性对比

4. 结语


    在时序数据应用场景中,数据实时消费和处理能力成为衡量数据库性能和可用性的重要指标。TDengine 和 InfluxDB 作为 时序数据库(Time Series Database)中的佼佼者,在数据订阅方面各有特点,他俩谁更强呢?

    下文将从多个维度进行深入对比,详细剖析。

1. 架构:内置 vs 依赖外部

TDengine:

      TDengine 内置了类似 Kafka 消息队列功能,并与数据库存储和查询系统深度集成。这意味着用户无需部署另外的消息队列,即可实现数据实时传输和消费。

  • 预写日志 (WAL) 支撑消息存储:WAL 文件索引机制使订阅数据存取更加高效,减少延迟。
  • 多消费组的并行处理:支持多消费者组的分布式消费,确保数据消费速度最大化。

     这种集成架构好处是极大简化了系统设计,用户无需再集成额外的消息队列组件(如 Kafka 或 RabbitMQ),大幅降低运维成本和系统复杂性。

InfluxDB:

     相较而言,InfluxDB 在其 2.0 版本中已不再支持数据订阅功能。

     取而代之,用户需要使用 Telegraf 等工具将数据写入多个实例,或通过 Flux 查询处理特定数据集,实现类似需求。

     可以看出,严格意义上 InfluxDB 已不具备数据订阅功能,只是依赖其他组件实现的数据复制功能。

      这种依赖外部的设计,无法与内部引擎模块高效协作,调用功能链路长,性能低下。同时增加了系统复杂性,并且在数据量大、实时性要求高等复杂场景中,有着明显的局限性。

2. 灵活性:动态订阅 vs 静态订阅

TDengine:

     TDengine 数据订阅功能支持用户通过 SQL 查询灵活定义订阅主题。

     用户可以创建查询主题,基于 SQL 查询过滤条件实时订阅数据,从而精准控制所需数据及消费模式,SQL 主题还支持标量函数和 UDF(用户自定义函数),能够在订阅前对数据进行过滤与预处理。

      同时,TDengine 还支持订阅超级表,能够动态跟踪超级表结构变化,并灵活订阅不同子表数据,确保数据消费与表结构变更无缝衔接。

      此外,TDengine 还支持订阅数据库,实现对整个数据库所有数据流全面订阅。这些特性让 TDengine 在数据订阅上具备了极高灵活性与适应性,满足不同业务场景的实时数据处理需求。

示例:

  1. CREATE TOPIC power_topic AS SELECT ts, current, voltage FROM power.meters WHERE voltage > 200;
  2. CREATE TOPIC topic_name [with meta] AS STABLE stb_name [where_condition]
  3. CREATE TOPIC topic_name [with meta] AS DATABASE db_name;

      第一个例子是查询主题,只有电压大于 200 的数据会被订阅,仅仅返回时间戳、电流、电压 3 个采集量(不返回相位),减少了传输的数据量和客户端处理负担。

      第二个例子是超级表主题,订阅整个超级表的数据,并且可以控制是否订阅 meta 数据,也可以加上子表的过滤条件,只订阅超级表下的部分子表。

      第三个例子是数据库主题,订阅整个数据库的数据,同样可以控制是否订阅 meta 数据。

     超级表订阅和数据库订阅在有新增子表的情况下也可以动态订阅到新增加的数据。

InfluxDB:

     再看下 InfluxDB,其订阅模型则依赖于 Telegraf 和 Flux 查询,只能订阅固定规则数据,无法获取到 meta 数据以及新增表数据。

      对于复杂数据订阅场景,用户需要在应用端增加处理代码,开发和维护成本高。

3. 消费机制、API 兼容性与易用性对比

    TDengine 消费者组机制允许多个消费者组成组,共享消费同一主题,极大地提高了消费效率

  • 分布式并行消费:多个消费者节点可以并发处理同一主题数据,适合高吞吐量应用场景。
  • 消费确认(ACK)机制:确保每条消息至少被处理一次,即使在网络中断或系统重启后仍然能保证数据完整性。

     InfluxDB 依赖其他插件实现类似数据订阅功能,无法提供消费者组和消费进度控制。对于分布式处理场景,无法并行提高消费速度,并且在系统故障时无法自动存储消费进度, 很致命缺点。

     在 API 兼容性上,TDengine 订阅 API 与 Kafka 订阅模型高度兼容,熟悉 Kafka 的开发者可以无需学习直接上手。

     此外,TDengine 提供了多种语言的 SDK(如 C、Java、Go、Python、Rust 等),支持用户在多种环境中进行开发和集成。

     相比之下,InfluxDB 需要编写相应脚本处理数据,速度上明显会受到影响,还需要熟悉相应脚本语言。

4. 结语

     TDengine 在构架、灵活性及消费机制、API 及易用性等方面全面碾压 InfluxDB,  TDengine 的订阅高效、灵活、易用,深受开发者喜欢。

     如果你希望深入了解更多 TDengine 订阅功能,访问 TDengine 官方文档,提供了全面技术说明,包括订阅主题创建、配置示例、API 使用方法以及最佳实践,帮助你更高效搭建 TDengine 数据订阅场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2276617.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Oracle专栏】group by 和distinct 效率

Oracle相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 1.背景 查阅资料: 1)有索引情况下,group by和distinct都能使用索引,效率相同。 2)无索引情况下,distinct…

linux:文件的创建/删除/复制/移动/查看/查找/权限/类型/压缩/打包,文本处理sed,awk

关于文件的关键词 创建 touch 删除 rm 复制 cp 权限 chmod 移动 mv 查看内容 cat(全部); head(前10行); tail(末尾10行); more,less,grep 查找 find 压缩 gzip ; bzip 打包 tar 编辑 sed 文本处理 awk 创建文件 格式: touch 文件名 删除文件 复制文…

day01-HTML-CSS——基础标签样式表格标签表单标签

目录 此篇为简写笔记下端1-3为之前笔记(强迫症、保证文章连续性)完整版笔记代码模仿新浪新闻首页完成审核不通过发不出去HTMLCSS1 HTML1.1 介绍1.1.1 WebStrom中基本配置 1.2 快速入门1.3 基础标签1.3.1 标题标签1.3.2 hr标签1.3.3 字体标签1.3.4 换行标…

哥大开发AI模型助力癌症和遗传病研究,近屿智能专注培养AI人才

近日,哥伦比亚大学瓦格洛斯医学院的研究团队在《自然》杂志上发表了一项重大研究成果。他们开发出一种名为“通用表达转换器”(GET)的新型AI模型,能够准确预测任何人类细胞中的基因活性,从而揭示细胞的内部工作机制。 …

9.4 visualStudio 2022 配置 cuda 和 torch (c++)

一、配置torch 1.Libtorch下载 该内容看了【Libtorch 一】libtorchwin10环境配置_vsixtorch-CSDN博客的博客,作为笔记用。我自己搭建后可以正常运行。 下载地址为windows系统下各种LibTorch下载地址_libtorch 百度云-CSDN博客 下载解压后的目录为: 2.vs…

基于spingbott+html+Thymeleaf的24小时智能服务器监控平台设计与实现

博主介绍:硕士研究生,专注于信息化技术领域开发与管理,会使用java、标准c/c等开发语言,以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年,拥有近12年的管理工作经验,拥有较丰富的技术架…

MySQL社区版下载及其环境配置(msi)

MySQL官网:https://www.mysql.com/ 1、进入官网 点击Downloads 找到MySQL Community (GPL) Downloads   然后点击MySQL Installer for Windows(MySQL Community Server非向导式安装,而MySQL Installer for Windows有向导式安装&#x…

Linux-----进程通讯(消息队列)

目录 相关API 1.相关数据类型 mqd_t struct mq_attr struct timespec 2.相关系统调用接口 mq_open() mq_timedsend() && mq_send() mq_timedreceive() && mq_receive() mq_unlink() clock_gettime() 父子进程使用消息队列通讯 平行进程使用消息队列…

YOLOv8从菜鸟到精通(二):YOLOv8数据标注以及模型训练

数据标注 前期准备 先打开Anaconda Navigator,点击Environment,再点击new(new是我下载anaconda的文件夹名称),然后点击创建 点击绿色按钮,并点击Open Terminal 输入labelimg便可打开它,labelimg是图像标注工具,在上篇…

mac homebrew配置使用

本文介绍mac上homebrew工具的安装、配置过程。homebrew功能类似于centos的yum,用于软件包的管理,使用上有命令的差异。 本次配置过程使用mac,看官方文档,在linux上也可以用,但我没试过,有兴趣的同学可以试试…

《使用 YOLOV8 和 KerasCV 进行高效目标检测》

《使用 YOLOV8 和 KerasCV 进行高效目标检测》 作者:Gitesh Chawda创建日期:2023/06/26最后修改时间:2023/06/26描述:使用 KerasCV 训练自定义 YOLOV8 对象检测模型。 (i) 此示例使用 Keras 2 在 Colab 中…

【Uniapp-Vue3】onShow和onHide钩子的对比和执行顺序

页面生命周期函数的执行顺序是onLoad>onShow>onReady,其中只有onReady中才能获取到DOM节点。 一、onShow函数 每一次的页面切入都会触发onShow函数。 import {onShow} from "dcloudio/uni-app"; onShow(()>{...}) 如果我点击“跳转页面1”再返…

GPT 系列论文精读:从 GPT-1 到 GPT-4

学习 & 参考资料 前置文章 Transformer 论文精读 机器学习 —— 李宏毅老师的 B 站搬运视频 自监督式学习(四) - GPT的野望[DLHLP 2020] 來自猎人暗黑大陆的模型 GPT-3 论文逐段精读 —— 沐神的论文精读合集 GPT,GPT-2,GPT-3 论文精读【论文精读】…

(STM32笔记)十二、DMA的基础知识与用法 第二部分

我用的是正点的STM32F103来进行学习,板子和教程是野火的指南者。 之后的这个系列笔记开头未标明的话,用的也是这个板子和教程。 DMA的基础知识与用法 二、DMA传输设置1、数据来源与数据去向外设到存储器存储器到外设存储器到存储器 2、每次传输大小3、传…

2024年11月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(一)

软考高级系统架构设计师考试包含三个科目:信息系统综合知识、系统架构设计案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午综合知识科目的选择题,同时附带参考答案、解析和所涉知识点。 由于机…

AI浪潮下的IT变革之路:机遇、挑战与重塑未来

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 AI浪…

【RTSP】使用webrtc播放rtsp视频流

一、简介 rtsp流一般是监控、摄像机的实时视频流,现在的主流浏览器是不支持播放rtsp流文件的,所以需要借助其他方案来播放实时视频,下面介绍下我采用的webrtc方案,实测可行。 二、webrtc-streamer是什么? webrtc-streamer是一个使用简单机制通过 WebRTC 流式传输视频捕获…

【芯片设计- RTL 数字逻辑设计入门 9.2 -- flip flop 与 寄存器的关系详细介绍】

请阅读【嵌入式开发学习必备专栏 Cache | MMU | AMBA BUS | CoreSight | Trace32 | CoreLink | ARM GCC | CSH】 文章目录 Overview硬件角度的 Flip-Flop软件角度的寄存器举例说明硬件设计角度软件开发角度D Flip-Flop 实现基本原理:Verilog 代码:UT 示例JK Flip-Flop 实现基…

Harry技术添加存储(minio、aliyun oss)、短信sms(aliyun、模拟)、邮件发送等功能

Harry技术添加存储(minio、aliyun oss)、短信sms(aliyun、模拟)、邮件发送等功能 基于SpringBoot3Vue3前后端分离的Java快速开发框架 项目简介:基于 JDK 17、Spring Boot 3、Spring Security 6、JWT、Redis、Mybatis-P…

深度学习中的卷积和反卷积(三)——卷积和反卷积的计算

1 Stride和Padding的介绍 计算卷积和反卷积绕不开stride和padding的讨论。卷积和反卷积里都有stride和padding参数,但是同一个参数在卷积和反卷积里的作用不一样,非常容易使人困惑,本文试图理清他们的关系,并用实际数值例子演示计…