node-red-node-tdengine
Version:
The official plugin developed by TDengine for Node-RED.
120 lines (107 loc) • 4.96 kB
HTML
<script type="text/html" data-help-name="tdengine-consumer">
<p><b>TDengine 订阅消费节点</b></p>
<p>此节点提供了自动连接到指定 TDengine 服务器并订阅给定主题功能。</p>
<h3>功能特性</h3>
<ul>
<li>支持 TDengine 本地部署或云服务数据源。</li>
<li>灵活配置订阅属性。</li>
<li>支持同时订阅多个 TOPIC。</li>
<li>消费进度自动提交保存。</li>
<li>服务器断开后自动重连。</li>
</ul>
<h3>节点状态</h3>
<ul>
<li>灰色:连接中</li>
<li>绿色:工作正常</li>
<li>红色:工作异常</li>
</ul>
<h3>配置说明:</h3>
<ul>
<li><b>名称:</b> 流程编辑器中该节点的可选名称。</li>
<li><b>订阅服务器:</b> 订阅服务器的 WebSocket 地址。
<p>本地部署连接串格式:<code>ws://host:port</code>。</p>
<ul>
<li>host:TDengine 服务器名或 IP。</li>
<li>port:端口号,默认 <code>6041</code>。</li>
</ul>
<p>云服务连接串格式:<code>wss://gw.cloud.taosdata.com?token=0df909...</code><p>
<ul>
<li>host:gw.cloud.taosdata.com</li>
<li>token:请登录 <a href="https://cloud.taosdata.com/">云服务网站</a> 获取。</li>
</ul>
</li>
<li><b>用户名:</b> 连接订阅服务器用户名(注:云服务授权含在 TOKEN 中,无需填写)。</li>
<li><b>密码:</b> 连接订阅服务器密码(注:云服务授权含在 TOKEN 中,无需填写)。</li>
<li><b>订阅主题组:</b> 订阅 topic 名称,多个 topic 使用逗号分隔。</li>
<li><b>消费组 ID:</b> 消费者组 ID,默认值为 <code>group1</code>。</li>
<li><b>客户端 ID:</b> 此消费者的客户端 ID,默认值为唯一标识符。</li>
<li><b>消费开始位置:</b>
<ul>
<li><code>earliest</code>:从头开始订阅。</li>
<li><code>latest</code>:仅从最新数据开始订阅。</li>
</ul>
</li>
<li><b>Poll 超时时间(毫秒):</b> 每次提交等待消费数据达到的等待时间,默认 <code>5000</code>。</li>
<li><b>自动提交:</b> 是否启用消费位点自动提交,默认 <code>true</code>。</li>
<li><b>提交间隔(毫秒):</b> 自动提交间隔,默认 <code>5000</code>。</li>
</ul>
<h3>输入格式</h3>
<p>Input 节点,无输入。</p>
<h3>输出格式</h3>
<p> payload 输出对象数组,对象属性名与查询返回列名一致,属性类型与数据库类型映射关系参考:</p>
<p>
<a href="https://docs.taosdata.com/reference/connector/node/#%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E6%98%A0%E5%B0%84" target="_blank">
TDengine NodeJS 连接器类型映射表
</a>
</p>
<pre><code class="json">{
topic: 订阅主题,
database: 数据库,
vgroup_id: 数据所在分区,
precision: 数据库精度
payload: [{
订阅列名1: 列值1,
订阅列名2: 列值2,
...
},
...
],
}</code></pre>
<h3>错误处理</h3>
<ul>
<li>操作失败时自动抛出异常(不向下游传递 msg)。</li>
<li>使用 catch 节点捕获处理错误。</li>
<li>错误日志包含完整错误对象及 TDengine 原生错误码。</li>
<li>发生错误时节点状态变更为 <code>工作异常</code>。</li>
</ul>
<h3>日志配置</h3>
日志级别,遵循 node-red 日志级别开启不同 Level 日志。
<pre><code class="json">// settings.js
logging: {
level: "info"
}</code></pre>
<ul>
<li>日志格式: [时间] [节点名] [日志内容]。</li>
<li>日志内容:首字母大写日志表示一个阶段性的开始。</li>
<li>支持级别: error, warn, info, debug</li>
</ul>
<h3>使用示例</h3>
<div class="node-help-examples">
<p><b>订阅 topic1 输出对象:</b></p>
<pre><code class="json">{
topic: 'topic1',
payload: [{
ts: 1749281716809,
current: 1,
voltage: 2,
phase: 4
} ],
database: 'test',
vgroup_id: 4,
precision: 0
}</code></pre>
</div>
<h3>关于 TDengine</h3>
<a href="https://www.taosdata.com">TDengine</a> 是一款高性能、集群开源、云原生的时序数据库(Time Series Database,TSDB),专为物联网IoT平台、工业互联网、电力、IT 运维等场景设计并优化,具有极强的弹性伸缩能力。同时它还带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少系统设计的复杂度,降低研发和运营成本,是一个高性能、分布式的物联网IoT、工业大数据平台。
<p> </p>
</script>