NodeRed 搭建web服务器--⑤通过MQTT.fx向TDengine写入数据

本文档介绍了如何使用MQTT.fx软件将数据推送到TDengine数据库,并通过TDengineGUI展示数据。主要问题包括:NCHAR字段需用单引号括起,SQL语句不区分大小写。示例代码展示了数据提取、转换和写入的过程,涉及时间戳、字符串和数值类型的处理。

前面第四篇已经提取到HTTP数据推送的数据,本篇将把获取的数据写入到TDengine中。

需要MQTT.fx软件和TDengineGUI软件。MQTT.fx负责制造上传数据,TDengineGUI用于展现数据库收到的数据。

TDengineGUI下载链接

先上流图:

 由于前面4篇文章已经对相关技术要点进行了讲解,本篇只讲解写入数据库遇到的问题。

问题1:TDengine 写入NCHAR字段时字符串两端必须用单引号,双引号不可以。否者无法写入数据。

var time=msg.payload.time;
var deviceId=msg.payload.deviceId;
var deviceName="'"+msg.payload.deviceName+"'";  // 字符串两端使用单引号引用,详细说明见链接   
var Power="'"+msg.payload.Power+"'";//https://www.taosdata.com/docs/cn/v2.0/taos-sql#-4
var Temp=msg.payload.Temp;
const table='armxu_onenet_db.onenet_test'
msg.payload='insert into '+ table+' values ('+time +','+deviceId+','+deviceName+','+Power+','+Temp+');';
return msg;

 问题2:TDengine 对 SQL 语句中的英文字符不区分大小写,自动转化为小写执行。

# 类型 Bytes 说明
1 TIMESTAMP 8 时间戳。缺省精度毫秒,可支持微秒和纳秒。从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始,计时不能早于该时间。(从 2.0.18.0 版本开始,已经去除了这一时间范围限制)(从 2.1.5.0 版本开始支持纳秒精度)
2 INT 4 整型,范围 [-2^31+1, 2^31-1], -2^31 用作 NULL
3 BIGINT 8 长整型,范围 [-2^63+1, 2^63-1], -2^63 用于 NULL
4 FLOAT 4 浮点型,有效位数 6-7,范围 [-3.4E38, 3.4E38]
5 DOUBLE 8 双精度浮点型,有效位数 15-16,范围 [-1.7E308, 1.7E308]
6 BINARY 自定义 记录单字节字符串,建议只用于处理 ASCII 可见字符,中文等多字节字符需使用 nchar。理论上,最长可以有 16374 字节。binary 仅支持字符串输入,字符串两端需使用单引号引用。使用时须指定大小,如 binary(20) 定义了最长为 20 个单字节字符的字符串,每个字符占 1 byte 的存储空间,总共固定占用 20 bytes 的空间,此时如果用户字符串超出 20 字节将会报错。对于字符串内的单引号,可以用转义字符反斜线加单引号来表示,即 \’
7 SMALLINT 2 短整型, 范围 [-32767, 32767], -32768 用于 NULL
8 TINYINT 1 单字节整型,范围 [-127, 127], -128 用于 NULL
9 BOOL 1 布尔型,{true, false}
10 NCHAR 自定义 记录包含多字节字符在内的字符串,如中文字符。每个 nchar 字符占用 4 bytes 的存储空间。字符串两端使用单引号引用,字符串内的单引号需用转义字符 \’。nchar 使用时须指定字符串大小,类型为 nchar(10) 的列表示此列的字符串最多存储 10 个 nchar 字符,会固定占用 40 bytes 的空间。如果用户字符串长度超出声明长度,将会报错。
11 JSON json数据类型, 只有tag类型可以是json格式

 数据库常用语句,请根据自己需求更改名称。

create database atestdb;
show databases;
use atestdb;
show tables;
create table t (ts timestamp, counter int);
create table onenet_test (ts timestamp, deviceId int,deviceName NCHAR(20),Power NCHAR(20),Temp FLOAT);

发送数据用 MQTT.fx,下划横线分别代表2个不同的设备

上传数据格式

{
    "id": "123",
    "version": "1.0",
    "params": {
        "Power": {
            "value": "2435"           
        },
        "temp": {
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

armcsdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值