node-red-node-tdengine
Version:
The official plugin developed by TDengine for Node-RED.
149 lines (133 loc) • 5.54 kB
HTML
<script type="text/html" data-help-name="TDengineServer">
<p><b>数据库连接设置</b></p>
<ul>
<li>连接 TDengine 数据库使用 WEBSOCKET 协议。</li>
<p>本地部署连接串格式:<code>ws://user:password@host:port</code>。</p>
<ul>
<li>host:TDengine 服务器名或 IP。</li>
<li>port:端口号,默认 <code>6041</code>。</li>
<li>user:用户名,默认 <code>root</code>。</li>
<li>password:密码,默认 <code>taosdata</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>
<li>连接各属性详细参考:
<a href="https://docs.taosdata.com/reference/connector/node/#url-%E8%A7%84%E8%8C%83" target="_blank">
URL 规范
</a>
</li>
</ul>
</script>
<script type="text/html" data-help-name="tdengine-operator">
<p><b>TDengine 数据库操作节点</b></p>
<p>此节点提供 SQL 执行接口,支持 TDengine 数据写入/查询操作。</p>
<h3>功能特性</h3>
<ul>
<li>支持 TDengine 本地部署或云服务数据源。</li>
<li>支持 TDengine 所有 SQL 操作(SELECT/INSERT/CREATE/ALTER/SHOW 等)。</li>
<li>统一接口处理读写操作(<code>msg.topic</code> 传递 SQL 语句)。</li>
</ul>
<h3>节点状态</h3>
<ul>
<li>灰色:连接中</li>
<li>绿色:工作正常</li>
<li>红色:工作异常</li>
</ul>
<h3>输入格式</h3>
<p>topic 传递 SQL 语句:</p>
<code class="javascript">
msg = {
topic: "SQL 语句"
}
</code>
<p>SQL 特殊字符与转义符需遵循 JSON 字符串规范。</p>
<h3>输出格式</h3>
自动识别查询类(SELECT/SHOW/DESC/EXPLAIN)与写入类操作,输出不同格式内容。
<h4>写入类</h4>
<code>payload</code> 存放写入结果,topic 透传写入 SQL,输出格式:
<pre><code class="javascript">msg = {
topic: "insert into ...",
isQuery: false, // 查询类为 true, 否则 false
payload: {
affectRows: 2, // 影响行数
totalTime: 3, // 写入总耗时(毫秒)
timing: 1683311 // 写入在服务器上执行时间(纳秒)
}
}
</code></pre>
<h4>查询类</h4>
<p> <code>payload</code> 存放查询结果,topic 透传查询 SQL,输出格式:</p>
<pre><code class="javascript">{
topic: "select * from ...",
isQuery: true, // 查询类为 true, 否则 false
payload: [
{ ts: 1749609744000, current: 20, voltage: 200, phase: 5 },
{ ts: 1749609200001, current: 31, voltage: 210, phase: 4 },
...
]}
</code></pre>
<p>查询结果为行数据对象,其属性为列名,属性与列数据类型映射关系参考:</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>
<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>写入数据:</b></p>
输入 <code>msg:</code>
<pre><code class="javascript">{
topic:"insert into test.d0 value (NOW, 10, 219, 0.32)"
}</code></pre>
输出 <code>msg:</code>
<pre><code class="javascript">{
topic:"insert into test.d0 value (NOW, 10, 219, 0.32)",
isQuery: false,
payload: {
affectRows: 1,
totalTime: 8,
timing: 3682352
}
}
</code></pre>
<p><b>查询数据:</b></p>
输入 <code>msg:</code>
<pre><code class="javascript">{
topic:"select * from test.d0"
}</code></pre>
输出 <code>msg:</code>
<pre><code class="javascript">{
topic:"select * from test.d0",
isQuery: true,
payload: [
{ ts: 1749609744000, current: 10, voltage: 219, phase: 0.32 },
{ ts: 1749609200001, current: 31, voltage: 210, phase: 4 },
...
]}</code></pre>
</div>
<h3>关于 TDengine</h3>
<a href="https://www.taosdata.com">TDengine</a> 是一款高性能、集群开源、云原生的时序数据库(Time Series Database,TSDB),专为物联网IoT平台、工业互联网、电力、IT 运维等场景设计并优化,具有极强的弹性伸缩能力。同时它还带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少系统设计的复杂度,降低研发和运营成本,是一个高性能、分布式的物联网IoT、工业大数据平台。
<p> </p>
</script>