news 2026/9/10 13:53:12

ToolJet InfluxDB 数据源接入指南:连接配置与 11 种 Flux/Bucket 操作全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ToolJet InfluxDB 数据源接入指南:连接配置与 11 种 Flux/Bucket 操作全解析

ToolJet InfluxDB 数据源接入指南:连接配置与 11 种 Flux/Bucket 操作全解析

【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 🚀项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet

InfluxDB 是 ToolJet 内置支持的时间序列数据库数据源之一,开发者无需编写后端代码即可在低代码界面中完成"读数据、写数据、管理 bucket、分析 Flux 查询"等完整操作。本指南基于官方文档并结合仓库内 InfluxDB 插件源码(插件实现、数据源 schema、操作 schema),带你从零配置连接、逐项理解 11 种支持的操作及其背后的 HTTP API 调用逻辑,并给出可直接粘贴使用的示例。

数据源能力概述

ToolJet 通过官方维护的@tooljet-plugins/influxdb插件接入 InfluxDB,采用 InfluxDB 的Token 认证方案访问其 v2 API(连接配置本身与 InfluxDB v2.x 及启用 v2 兼容 API 的服务对齐)。连接建立后,你可以完成三类工作:

  • 读写时间序列数据:向 bucket 写入数据点(Write)、用 Flux 脚本查询数据(Query data);
  • 查询分析与辅助:生成 Flux 查询的 AST、检索查询建议、为分支建议取回建议、分析 Flux 查询;
  • bucket 生命周期管理:列出、创建、检索、更新、删除 bucket。

插件包位于 plugins/packages/influxdb,其中 lib/index.ts 实现了全部查询逻辑,lib/manifest.json 定义了连接表单,lib/operations.json 定义了每种操作的参数面板。

一、建立连接:配置项与表单字段

在 ToolJet 的数据源列表中选中InfluxDB,会打开连接配置表单。根据 manifest.json,表单共 4 个字段,其中端口与协议的默认值已被内置:

配置项类型默认值说明
API token密码框InfluxDB API Token,用于认证。该字段在 manifest.json 中标记为encrypted: true,保存后会在服务端加密存储
Host文本框InfluxDB 主机地址(不含协议,如localhostinflux.example.com
Port文本框8086InfluxDB HTTP 服务端口。InfluxDB 默认 API 端口即 8086
Protocol下拉框http可选http/https,按是否启用 TLS 选择

对 InfluxDB 平台(InfluxDB Cloud / 托管服务)也可直接使用其提供的 host 与 token。Token 的生成方法参见官方 InfluxDB 文档(Token 需具备目标 bucket 与 Org 的相应读写权限)。

提示:在 ToolJet 官方文档中,API Token 生成指引见 https://docs.influxdata.com/influxdb/cloud/security/tokens/create-token/ ,接入前请先创建具有足够权限范围的 Token。

连接面板背后,testConnection的实现位于 lib/index.ts:它会向${protocol}://${host}:${port}/ping发起带Authorization: Token <token>的 GET 请求,请求成功即判定连接可用,失败则抛出错误提示你检查主机、端口与 Token。

二、支持的查询操作一览

配置好数据源后,新建查询并选择数据源即可看到操作下拉框。依据 operations.json,共有 11 种操作:

  1. Write(写入数据)
  2. Query data(查询数据)
  3. Generate an Abstract Syntax Tree (AST) from a query(由查询生成抽象语法树)
  4. Retrieve query suggestions(获取查询建议)
  5. Retrieve query suggestions for a branching suggestion(获取分支建议的查询建议)
  6. Analyze a Flux query(分析 Flux 查询)
  7. List buckets(列出 bucket)
  8. Create a bucket(创建 bucket)
  9. Retrieve a bucket(检索 bucket)
  10. Update a bucket(更新 bucket)
  11. Delete a bucket(删除 bucket)

每种操作在 lib/index.ts 中都有一个case分支,本质是把表单参数映射为一次对 InfluxDB v2 API 的 HTTP 请求。下文按"表单参数 → 源码实现 → API 语义"的顺序逐一展开。

三、写数据:Write

Write 操作向指定 bucket 写入数据点(line protocol 文本)。

必填参数

  • Bucket:目标 bucket 名称
  • Organization name or ID:所属组织名称或 ID
  • Data:遵循 InfluxDB line protocol 格式的数据内容

可选参数

  • Precision:写入时间戳的精度单位,可结合 InfluxDB 支持的精度取值使用

从源码看,Write 对应 lib/index.ts 中的 POST 请求:

  • 请求地址:${protocol}://${host}:${port}/api/v2/write
  • 请求头:Content-Type: text/plain,携带Authorization: Token <api_token>
  • Query 参数:按表单值透传bucketorg,若填了precision则一并附上(源码中...(precision && { precision })
  • 请求体:表单中的 Data 原文

因此 Data 框中应直接填写 line protocol,例如:

sensor_data,location=room_a temperature=23.5,humidity=45.2 1700000000000000000

数据成功写入后,插件将服务端响应体作为查询结果返回。

四、查数据:Query data

Query data 从 InfluxDB bucket 中检索数据,是日常使用频率最高的操作。

必填参数

  • Organization name or ID
  • Flux query:Flux 脚本

源码实现位于 lib/index.ts,对应向/api/v2/query发起 POST 请求:

  • 请求头使用Content-Type: application/vnd.flux(Flux 原生内容类型),而非 JSON
  • org通过 URL 查询参数透传
  • 请求体为 Flux 脚本原文
  • 返回结果为响应 body(即 Flux 执行产生的CSV 格式文本,插件将其原样作为data返回)

示例——读取最近 1 小时sensor_datatemperature测量的数据:

from(bucket: "sensor_data") |> range(start: -1h) |> filter(fn: (r) => r["_measurement"] == "temperature")

得到结果后,可在查询下方通过转换器(Transformer)将 CSV 解析为结构化数组再绑定到表格组件展示。

五、Flux 查询的静态分析三件套

ToolJet 将 InfluxDB 面向查询智能化的三个静态分析接口完整暴露出来,适合在做自动补全、语法检查或查询可视化前预校验 Flux 脚本时使用。

5.1 Generate an Abstract Syntax Tree (AST) from a query

必填参数Query(Flux 脚本)

该操作分析 Flux 查询并生成"查询规范"(AST)。对应源码 lib/index.ts:向/api/v2/query/ast发送 POST,请求体为 JSON 包裹的 Flux 脚本,返回 AST 结构。AST 便于你在程序化生成/校验 Flux 时获得机器的结构化表示。

示例——分析一条对站点指标按 URL 分组求和并排序的查询:

from(bucket: "website_metrics") |> range(start: -7d) |> filter(fn: (r) => r["_measurement"] == "page_views") |> group(columns: ["url"]) |> sum(column: "_value") |> sort(columns: ["_value"], desc: true)

5.2 Analyze a Flux query

必填参数Query(Flux 脚本)

该操作对 Flux 查询做语义分析(不同于 AST 的纯语法解析,analyze 会尝试完整解析脚本结构与其中引用的函数)。对应源码 lib/index.ts:向/api/v2/query/analyze发送 POST,请求体为 JSON 包裹的 Flux 脚本,返回分析结果。

示例——分析一条对传感器湿度求均值的查询:

from(bucket: "sensor_data") |> range(start: -1d) |> filter(fn: (r) => r["_measurement"] == "humidity") |> mean(column: "_value")

5.3 Retrieve query suggestions(无参数)

该操作用于取回 Flux 查询建议,帮助在编辑器中做函数/关键字补全提示。对应源码 lib/index.ts:直接向/api/v2/query/suggestions发送 GET,无额外必填参数。

5.4 Retrieve query suggestions for a branching suggestion

必填参数Name(分支建议的名称)

该操作按分支建议名称取回对应的查询建议,常配合上一操作使用。对应源码 lib/index.ts:向/api/v2/query/suggestions/${name}发送 GET,name会拼入 URL 路径。

六、Bucket 全生命周期管理

InfluxDB 中数据按 bucket(数据库 + 保留策略的集合)组织,ToolJet 把 bucket 管理的五个 REST 接口都做成了图形化操作。

6.1 List buckets(无参数)

列出数据库中全部 bucket。源码见 lib/index.ts:向/api/v2/buckets发送 GET,返回 bucket 列表 JSON。

6.2 Create a bucket

必填参数Query(body,创建 bucket 的请求体 JSON)

对应源码 lib/index.ts:向/api/v2/buckets发送 POST,将表单中的 Query 内容解析为 JSON 作为请求体。从 operations 定义看,该字段名为 body,编辑器会以 JSON 文本形式录入。

示例——创建名为new_bucket、保留周期 3600 秒的 bucket:

POST http://localhost:8086/api/v2/buckets Content-Type: application/json Authorization: Token your_auth_token { "name": "new_bucket", "orgID": "your_org_id", "retentionRules": [ { "everySeconds": 3600 } ] }

(上例同时展示了对 InfluxDB v2 API 的原始请求形态;在 ToolJet 表单中只需把 JSON 体填入 Query 参数即可。)

6.3 Retrieve a bucket

必填参数Bucket ID

对应源码 lib/index.ts:向/api/v2/buckets/${bucket_id}发送 GET。Bucket ID 可从 List buckets 的返回结果中获得。

6.4 Update a bucket

必填参数

  • Bucket ID
  • Query(body,更新的字段 JSON)

对应源码 lib/index.ts:向/api/v2/buckets/${bucket_id}发送 PATCH,请求体为 Query 字段解析出的 JSON。

示例——把 bucket 重命名并把保留周期改为 7200 秒:

{ "name": "updated_bucket_name", "retentionRules": [ { "everySeconds": 7200 } ] }

6.5 Delete a bucket

必填参数Bucket ID

对应源码 lib/index.ts:向/api/v2/buckets/${bucket_id}发送 DELETE。删除是不可逆操作,请确认 Bucket ID 无误后再执行。

七、从源码看参数与实现细节

为了让表单与运行逻辑一致,还有几个值得注意的实现细节(均可在 lib/index.ts 中验证):

  • 统一认证头:除 Write 与 Query data 外,所有操作都复用authHeader辅助函数,即Authorization: Token <token>+Content-Type: application/json,与文档所述的 Token 认证方案完全一致。
  • 表单字段与源码变量的映射SourceOptions(见 lib/types.ts)保存连接配置(api_tokenhostportprotocoldatabase);QueryOptions(同文件 L8-L17)承载每次查询的操作名与参数(operationorgbucketbucket_idprecisionnamebodyorgID)。表单中填写的字段最终被 destructure 进sourceOptionsqueryOptions
  • 宽松 JSON 解析:请求体(如 Create/Update bucket、AST 的 body)在发送前会经过parseJSON(lib/index.ts),该方法使用 JSON5 解析,因此你填写的 JSON 允许带注释、尾逗号等宽松写法,容错性更好。
  • 条件拼参:Write 的bucket/org/precision与 Query data 的org只在非空时才拼入 URL 查询参数,避免空值污染请求。
  • 错误处理:整个调用包裹在try/catch中,出错时抛出QueryError('Query could not be completed', ...),对应失败信息会回显在 ToolJet 查询结果面板,便于排查。
  • Token 安全存储:连接配置中api_token标记为加密存储(manifest.json),确保密钥不会明文落库。

八、接入后可以做什么

从 ToolJet 文档语境看,InfluxDB 数据源通常用于时序监控类内部应用。给出两个可直接落地的组合思路:

  • 设备监控面板:用 Query data 按range+filter拉取传感器最近数据,绑定到 Line/Chart 组件绘制实时曲线;配合定时刷新即可成为轻量级监控大屏。
  • 写入与治理工作流:通过 Write 操作把前端采集到的事件写入 bucket;用 Create/Delete bucket 在管理页里为租户动态申请或回收数据桶,实现数据保留策略的自动化治理。

无论哪种场景,都可以把上面的 Flux 示例与操作参数说明作为起点,在 ToolJet 查询面板中逐步替换为你自己的 measurement、字段与 bucket 名称。更进一步,也可阅读仓库中的插件 manifest.json 与 operations.json,了解 ToolJet 数据源插件"连接 schema + 操作 schema + QueryService 实现"三段式结构,为扩展自己的数据源插件做参考。

【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 🚀项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 13:53:00

STM32周期波形识别与参数测量:从输入捕获到ADC+DMA采样

简介&#xff1a;面向嵌入式开发者的STM32周期波形信号识别与参数测量完整工程&#xff0c;覆盖ADC采样、DMA传输、定时器中断、数字滤波及串口输出等关键环节。压缩包共207个文件&#xff0c;约747KB&#xff0c;以100个.h头文件与96个.c源文件为主体&#xff0c;并包含Keil工…

作者头像 李华
网站建设 2026/9/10 13:50:53

充电口识别实战:VOC标注转YOLO格式与YOLOv8训练复现

简介&#xff1a;面向新能源汽车充电口识别场景&#xff0c;这套VOC标注格式的数据集覆盖特斯拉、CCS1、CCS2、CHAdeMO、Type1、Type2等主流充电接口类型&#xff0c;适合视觉检测算法工程师、自动驾驶或充电设施相关技术人员用于模型训练、精度评估与算法迭代。压缩包共2000个…

作者头像 李华
网站建设 2026/9/10 13:50:46

CANN/ge:MatchNext图匹配函数

MatchNext 【免费下载链接】ge GE&#xff08;Graph Engine&#xff09;是面向昇腾的图编译器和执行器&#xff0c;提供了计算图优化、多流并行、内存复用和模型下沉等技术手段&#xff0c;加速模型执行效率&#xff0c;减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端…

作者头像 李华