从 MQTT、InfluxDB 将数据无缝接入 TDengine,接入功能与 Logstash 类似

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS SQL Server,独享型 2核4GB
简介: 利用 TDengine Enterprise 和 TDengine Cloud 的数据接入功能,我们现在能够将 MQTT、InfluxDB 中的数据通过规则无缝转换至 TDengine 中,由于该功能在实现及使用上与 Logstash 类似,本文将结合 Logstash 为大家进行解读。

利用 TDengine Enterprise 和 TDengine Cloud 的数据接入功能,我们现在能够将 MQTT、InfluxDB 中的数据通过规则无缝转换至 TDengine 中,在降低成本的同时,也为用户的数据转换工作提供了极大的便捷性。由于该功能在实现及使用上与 Logstash 类似,本文将结合 Logstash 为大家进行解读。


偏向于日志收集整理的 Logstash

Logstash 是一个开源的实时数据收集处理引擎,通常作为 ETL 工具使用,它可以根据转换规则将数据从多种数据源中采集并转换数据,然后发送到指定的存储中。其通常与 ElasticSearch(ES)、Kibana、Beats 共同使用,形成免费开源工具组合 Elastic Stack(又称 ELK Stack),适用于数据的采集、扩充、存储、分析和可视化等工作。


Logstash 可以由 Beats、Kafka、DataSource 等数据源将数据转换写入 ES、MySQL 等数据库中进行存储:

数据流转总体分为三部分:Input、Filter、Output,这三部分的定义覆盖了数据整个的生命周期。Input 和 Output 支持编解码器,使用编解码器,可以在数据进入或退出管道时进行编码或解码,而不必使用单独的过滤器。原始数据在 Input 中被转换为 Event,在 Output 中 Event 被转换为目标式数据,在配置文件中可以对 Event 中的属性进行增删改查。

其中,Filter 是 Logstash 功能强大的主要原因,它可以对 Logstash Event 进行丰富的处理,比如解析数据、删除字段、类型转换等等,常见的有如以下几个:

  • date 日期解析
  • grok 正则匹配解析
  • 正则表达式:
  • Grok
  • dissect 分割符解析
  • mutate 可以对事件中的数据进行修改,包括 rename、update、replace、convert、split、gsub、uppercase、lowercase、strip、remove_field、join、merge 等功能。
  • json 按照 json 解析字段内容到指定字段中
  • geoip 增加地理位置数据
  • ruby 利用 ruby 代码来动态修改 Logstash Event
filter {
    grok => {
        match => {
            "message" => "%{SERVICE:service}"
        }
        pattern_definitions => {
            "SERVICE" => "[a-z0-9]{10,11}"
        }
    }
}

Logstash 在实时数据处理方面有一定的能力,也有一定的流行性,但并不是所有场景下都适用 Logstash。针对多种数据源的收集,TDengine 打造了自己的数据接入功能。


TDengine:针对多种数据源的收集

如果你使用 Elasticsearch 和 Kibana 来构建日志管理、数据分析和可视化解决方案,Logstash 可能是一个不错的选择,因为它与 Elasticsearch 的集成非常紧密。但 Logstash 并不适用于处理大规模时序数据,它在处理大量数据时会消耗大量的系统资源,包括内存和 CPU,在数据量很大的情况下甚至会导致出现性能问题,它的可扩展性在处理大规模数据时也可能受到限制。而且如果你最初接触 Logstash,那你会需要付出较高的学习成本,因为 Logstash 在处理数据的各个阶段(输入、过滤、输出)需要正确配置,错误的配置可能会导致数据丢失或格式错误。


这也是 TDengine 打造自己的数据接入功能的一些主要原因,如果你正在使用 TDengine,那这一功能一定能帮助你更便捷、更低成本地进行数据转换工作。


目前利用 TDengine 数据接入功能,你可以轻松从 MQTT、InfluxDB 等服务器获取数据,并高效地写入 TDengine 数据库中,实现数据的顺畅集成和分析。这一功能负责整个过程的自动化数据接入,最大限度地减少了手动操作的工作量。同时它还具备以下特点:


  • 支持 JSON 格式:充分利用 JSON 的灵活性,使用户能够以 JSON 格式进行数据摄取和存储。机构可以有效地构建和管理数据,从复杂数据结构中挖掘有价值的见解。
  • 支持 JSON path 提取字段:TDengine 支持 JSON path 提取,在处理 JSON 数据时更加轻松。通过精确选择和捕获所需的数据元素,用户可以专注于数据集的核心内容,最大化分析效率。
  • 简单配置:提供了易于使用的配置文件,您可以在其中指定 TDengine 的超级表、子表、列和标签,轻松定制数据接入流程以满足特定需求。


另外 TDengine 的数据接入后还可以进行数据清洗和转换,用户可以根据业务需要设计相应的数据清洗和转换规则,实现完整的数据 ETL 流程。借助上述创新功能,实时数据可以实现与高性能的 TDengine 数据库的无缝结合,实时分析、预防性维护和数据驱动决策也拥有了无限可能。


配置方法很简单,你只需要登录到 TDengine 企业版或 TDengine Cloud 的 Web 管理界面,选择 Data in 并添加 MQTT 作为数据源,简单配置一下 InfluxDB/MQTT 数据对应到 TDengine 库、超级表、子表的解析规则即可。具体配置方案可见《TDengine 推出重磅功能,让 MQTT 无缝数据接入更加简单》《TDengine 数据接入功能支持 InfluxDB 啦!》


TDengine 3.0 企业版和 TDengine Cloud 凭借简洁易用的命令行操作,为用户提供了高效、可靠的数据接入方法。无论你是想要从 InfluxDB/MQTT 迁移数据,还是想将多个数据源的数据集中到 TDengine 中,TDengine 3.0 企业版和 TDengine Cloud 都能够满足你的需求。

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
8天前
|
机器学习/深度学习 开发工具
DP活动:HMI-Board以太网数据监视器(二)MQTT和LVGL
DP活动:HMI-Board以太网数据监视器(二)MQTT和LVGL
16 1
|
13天前
|
消息中间件 Web App开发 监控
mqtt数据问题之如何实现webRTC 协议的监控视频压测
MQTT协议是一个轻量级的消息传输协议,设计用于物联网(IoT)环境中设备间的通信;本合集将详细阐述MQTT协议的基本原理、特性以及各种实际应用场景,供用户学习和参考。
34 0
|
2月前
|
消息中间件 Shell Docker
百度搜索:蓝易云【docker rabbitmq-清空queue队列数据】
通过以上步骤,您可以使用Docker清空RabbitMQ队列的数据。这将帮助您重置队列并清除旧数据,以进行新的测试或使用。
26 0
|
3月前
|
消息中间件 算法 关系型数据库
RocketMQ中,对一个包含200万条数据的表进行新建索引时,通常会需要锁定该
RocketMQ中,对一个包含200万条数据的表进行新建索引时,通常会需要锁定该
21 2
|
3月前
|
消息中间件 Java Spring
Spring Boot使用RabbitMq消费数据较慢解决
Spring Boot使用RabbitMq消费数据较慢解决
|
4月前
|
数据采集 JSON 移动开发
【MQTT】Esp32数据上传采集:最新mqtt插件(支持掉线、真机调试错误等问题)
【MQTT】Esp32数据上传采集:最新mqtt插件(支持掉线、真机调试错误等问题)
|
5月前
|
NoSQL 关系型数据库 MySQL
同步 MySQL 数据至 ES/Redis/MQ 等的五种方式
同步 MySQL 数据至 ES/Redis/MQ 等的五种方式
250 0
EMQ
|
6月前
|
存储 监控 网络协议
工业物联网数据桥接教程:Modbus 桥接到 MQTT
通过将 Modbus RTU 或 TCP 转换为 MQTT 消息,可以轻松地将设备数据发送到云端,并在需要时进行远程控制和监控。
EMQ
427 0
工业物联网数据桥接教程:Modbus 桥接到 MQTT
|
7月前
|
消息中间件
RabbitMQ 如果数据提交不成功怎么办?
RabbitMQ 如果数据提交不成功怎么办?
36 0
EMQ
|
7月前
|
SQL 存储 边缘计算
使用 eKuiper 按需桥接 CAN Bus 数据至 MQTT
本文将通过使用开源边缘流式 SQL 引擎 eKuiper ,灵活地从 CAN Bus 提取有意义的数据和所需的信号,实现从 CAN Bus 到 MQTT 的无缝桥接。
EMQ
90 0
使用 eKuiper 按需桥接 CAN Bus 数据至 MQTT

相关产品

  • 云数据库 Redis 版
  • 云数据库 RDS MySQL 版
  • 云原生数据库 PolarDB