时序数据库 TDengine 支持集成开源的物联网平台 ThingsBoard

简介: 本文介绍了如何结合 Thingsboard 和 TDengine 实现设备管理和数据存储。Thingsboard 中的“设备配置”与 TDengine 中的超级表相对应,每个设备对应一个子表。通过创建设备配置和设备,实现数据的自动存储和管理。具体操作包括创建设备配置、添加设备、写入数据,并展示了车辆实时定位追踪和车队维护预警两个应用场景。

Thingsboard 中“设备配置”和“设备”的关系是一对多的关系,通过设备配置为每个设备设置不同的配置,每个设备都会有一个与其关联的设备配置文件。等等,这不就是TDengine 中超级表的概念:

超级表是一种特殊的表结构,用于代表一类具有相同数据模式的数据采集点。一个超级表有多个子表,一个子表只能隶属于一个超级表。

因此,将两者有机结合起来:TDengine 中创建超级表作为“设备配置”,Thingsboard 中添加设备则自动在TDengine 中创建子表,伟大的设计殊途同归。
1.png

灵魂的碰撞

安装部署
安装过程可以直接参考官方安装教程:https://thingsboard.io/docs/user-guide/install/ubuntu/

但是有两点需要注意:

  • 请点击这里,联系我们获取适配版本。
  • 配置文件增加 TDengine 相关连接配置:

```# spring.tdengine
export TDENGINE_URL=jdbc:TAOS-RS://127.0.0.1:6041/thingsboard
export TDENGINE_USERNAME=root
export TDENGINE_PASSWORD=taosdata
export TDENGINE_STR_LEN=1024
export TDENGINE_STR_COL_MAX=65517
export TDENGINE_STR_TAG_MAX=16382

# 操作步骤
**1.创建“设备配置”**
以一个车辆管理系统为例,需要记录车辆的车牌号、数据上报时间、经度、纬度、车速这几个变量。因此,我们调用接口来创建一个新的“设备配置”。
```curl -X POST 'http://127.0.0.1:8080/api/deviceProfile' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $YOUR_JWT_TOKEN_HERE' \
--data-raw '{
    "name": "truck",
    "type": "DEFAULT",
    "image": null,
    "defaultQueueName": null,
    "transportType": "DEFAULT",
    "provisionType": "DISABLED",
    "description": "",
    "profileData": {
        "configuration": {
            "type": "DEFAULT"
        },
        "transportConfiguration": {
            "type": "DEFAULT"
        },
        "alarms": null,
        "provisionConfiguration": {
            "type": "DISABLED"
        }
    },
    "tableInfo": {
        "columns": [{"name":"longtitude","type":"double","len":10},{"name":"latitude","type":"double"},{"name":"speed","type":"float"}],
        "tags": [{"name":"license_plate_number","type":"nchar","len":8}]
    }
}'

Thingsboard 中成功创建名称为“profileStable” 的“设备配置”:

2.png

数据库中成功创建超级表:

3.png
2.添加新设备
选择已有配置“profileStable”,创建新的设备。
4.png
成功创建了一个名叫“测A88888″ 的设备,具体的子表名称可以通过“复制设备ID” 查看。

5.png
3.测试写入数据
直接通过访问令牌,调用接口发送数据
```curl -X POST 'http://127.0.0.1:8080/api/v1/$YOU_DEVICE_TOKEN/telemetry' \
--header 'Content-Type: application/json' \
--data-raw '{"license_plate_number":"京A88888","longtitude":108.938744,"latitude":34.368150,"speed":60}'

界面中更新数据

![6.png](https://ucc.alicdn.com/pic/developer-ecology/ci5kt6x5asnp4_da2904789d9b4a379516ffda679ca7c8.png)
数据库中也写入了最新的记录

![7.png](https://ucc.alicdn.com/pic/developer-ecology/ci5kt6x5asnp4_b95fa5542b1e4e008c420ecb1728c9ad.png)
# 业务展示
**场景一:车辆实时定位追踪**
- 数据采集:车辆GPS定位信息每秒传输到Thingsboar- d。

- 数据存储:在TDengine中创建表存储定位数据。


- 数据展示:在Thingsboard创建地理位置图表,展示车辆实时位置。

![8.png](https://ucc.alicdn.com/pic/developer-ecology/ci5kt6x5asnp4_3d64456ded044fb3bf4a1e87f2a30224.png)
# 场景二:车队维护预警
> 按日生成车辆每日超速次数。  

- 创建流计算:在TDengine 中创建流计算

```create stream high_speed fill_history 1 into high_speed subtable(concat('tb_', device_name)) as
select
  _wstart as 日期,
  count(speed) as 超速次数,
  device_name as 设备名称
from
  `1e169050-86e6-11ef-a5cf-2de52a1b0351`
where
  speed > 90 partition by device_name interval(1d);
  • 查看流计算结果

9.png

注:本次适配没有修改原有前端页面,需要调用HTTP API 来创建设备配置。感兴趣的小伙伴可以完善一下,欢迎提交代码交流。

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
10月前
|
机器学习/深度学习 算法 物联网
面向能效和低延迟的语音控制智能家居:离线语音识别与物联网集成方案——论文阅读
本文提出一种面向能效与低延迟的离线语音控制智能家居方案,通过将关键词识别(KWS)集成至终端设备,结合去中心化Mesh网络与CoAP协议,实现本地化语音处理。相较云端方案,系统能耗降低98%,延迟减少75%以上,显著提升响应速度与能源效率,为绿色智能家居提供可行路径。(236字)
932 17
面向能效和低延迟的语音控制智能家居:离线语音识别与物联网集成方案——论文阅读
|
Rust 物联网 数据处理
Rust +时序数据库 TDengine:打造高性能时序数据处理利器
TDengine 是一款专为物联网、车联网、工业互联网等时序数据场景优化设计的开源时序数据库,支持高并发写入、高效查询及流式计算,通过“一个数据采集点一张表”与“超级表”的概念显著提升性能。 Rust 作为一门系统级编程语言,近年来在数据库、嵌入式系统、分布式服务等领域迅速崛起,以其内存安全、高性能著称,与 TDengine 的高效特性天然契合,适合构建高可靠、高性能的数据处理系统。
706 2
|
存储 运维 监控
百万指标,秒级查询,零宕机——时序数据库 TDengine 在 AIOps 中的硬核实战
本篇文章详细讲述了七云团队在运维平台中如何利用 TDengine 解决海量时序数据存储与查询的实际业务需求。内容涵盖了从数据库选型、方案落地到业务挑战及解决办法的完整过程,特别是分享了升级 TDengine 3.x 时的实战经验,给到有需要的小伙伴参考阅读。
789 1
|
存储 数据挖掘 数据处理
2600 万表流计算分析如何做到? 时序数据库 TDengine 助力数百家超市智能化转型
在生鲜超市的高效运营中,实时数据分析至关重要。万象云鼎的“云鲜生”通过智能秤+网关+软件系统的组合,实现了销售数据的精准管理与优化。而在数据处理方面,TDengine 的流计算能力成为了这一方案的核心支撑。本文详细分享了“云鲜生”如何利用 TDengine 高效存储和分析海量销售数据,在优化超市运营、提升用户体验的同时,解决高基数分组、高并发查询等技术挑战。
419 1
|
存储 Java 数据库连接
时序数据库TDengine 3.3.5.0 发布:高并发支持与增量备份功能引领新升级
TDengine 3.3.5.0 版本正式发布,带来多项更新与优化。新特性包括提升 MQTT 稳定性和高并发性能、新增 taosX 增量备份与恢复、支持 JDBC 和 Rust 连接器 STMT2 接口、灵活配置 Grafana Dashboard 等。性能优化涵盖查询内存管控、多级存储迁移、强密码策略等,全面提升时序数据管理的效率和可靠性。欢迎下载体验并提出宝贵意见。
508 5
|
存储 SQL 关系型数据库
从 MySQL 到时序数据库 TDengine:Zendure 如何实现高效储能数据管理?
TDengine 助力广州疆海科技有限公司高效完成储能业务的数据分析任务,轻松应对海量功率、电能及输入输出数据的实时统计与分析,并以接近 1 : 20 的数据文件压缩率大幅降低存储成本。此外,taosX 强大的 transform 功能帮助用户完成原始数据的清洗和结构优化,而其零代码迁移能力更实现了历史数据从 TDengine OSS 与 MySQL 到 TDengine 企业版的平滑迁移,全面提升了企业的数据管理效率。本文将详细解读这一实践案例。
582 0
|
存储 NoSQL MongoDB
从 MongoDB 到 时序数据库 TDengine,沃太能源实现 18 倍写入性能提升
沃太能源是国内领先储能设备生产厂商,数十万储能终端遍布世界各地。此前使用 MongoDB 存储时序数据,但随着设备测点增加,MongoDB 在存储效率、写入性能、查询性能等方面暴露出短板。经过对比,沃太能源选择了专业时序数据库 TDengine,生产效能显著提升:整体上,数据压缩率超 10 倍、写入性能提升 18 倍,查询在特定场景上也实现了数倍的提升。同时减少了技术架构复杂度,实现了零代码数据接入。本文将对 TDengine 在沃太能源的应用情况进行详解。
741 0
|
存储 监控 数据挖掘
消防行业如何借助时序数据库 TDengine 打造高效的数据监控与分析系统
本篇文章来自“2024,我想和 TDengine 谈谈”征文活动的优秀投稿,深入探讨了如何在消防行业中运用 TDengine 进行业务建模。文章重点介绍了如何通过 TDengine 的超级表、标签设计和高效查询功能,有效管理消防监控系统中的时序数据。作者详细阐述了实时监控、报警系统以及历史数据分析在消防行业中的应用,展示了 TDengine 在数据压缩、保留策略和分布式架构下的强大优势。
453 0
|
传感器 安全 物联网
时序数据库TDengine + MQTT :车联网时序数据库如何高效接入
现代新能源汽车配备大量传感器,产生海量数据需上报至车联网平台。TDengine作为时序大数据平台,支持MQTT协议,可轻松实现车辆状态、位置及用户行为数据的实时采集与分析,提升驾驶体验和安全保障。通过简单的Web界面配置,无需编写代码,即可完成从MQTT到TDengine的数据接入。整个过程包括注册TDengine Cloud、创建数据库、安装代理插件、新增数据源、配置解析规则等步骤,快速实现数据同步。
692 2
|
存储 安全 数据管理
时序数据库TDengine 与中移软件达成兼容性互认证,推动虚拟化云平台与时序数据库的深度融合
在数字化转型和智能化升级的浪潮下,企业对数据的需求日益增长,尤其是在物联网、大数据和实时分析等领域。随着设备数量的激增,时序数据的管理和处理变得愈发复杂,企业亟需高效、稳定的数据解决方案来应对这一挑战。时序数据库作为专门处理时间序列数据的工具,正逐渐成为各行业数字化转型的重要支撑。
357 4