TDengine 与 Apache Superset 集成实战:基于 WebSocket 连接串构建时序数据 BI 可视化 TDengine 与 Apache Superset 集成实战基于 WebSocket 连接串构建时序数据 BI 可视化【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengineApache Superset 是一款由 Apache 软件基金会支持的开源企业级商业智能BIWeb 应用提供直观的用户界面和丰富的可视化选项主要用于数据探索与数据展现。TDengine 通过其 Python 连接器让 Superset 直接支持 TDengine 数据源本文完整介绍从环境准备、数据源连接串配置到 SQL Lab 查询与图表模板使用的全过程并结合 taosAdapter 的 WebSocket 接口说明其底层连接机制帮助读者把 TDengine 中的时序数据接入 Superset 完成可视化分析。架构原理为什么连接串是 taosws:// 协议理解 Superset 与 TDengine 的集成首先要弄清两者的通信路径。Superset 本身并不直接连接 TDengine 服务进程而是通过 Python 连接器taospy / taos-ws-py访问 TDengine 配套的 taosAdapter 组件连接链路如下Superset内置 Python 环境依赖 taospy / taos-ws-py 连接器库taosAdapterTDengine 服务端软件的一部分默认监听 6041 端口提供 HTTP/WebSocket 服务TDengine 服务端taosdtaosAdapter 通过底层 C 接口与 TDengine 实际通信从 taosAdapter 参考手册 可知taosAdapter 是 TDengine 集群和应用程序之间的桥梁和适配器TDengine 的各语言连接器通过 WebSocket 接口与 TDengine 进行通信因此必须安装 taosAdapter。其基础配置中的port参数正是 taosAdapter 对外提供 HTTP/WebSocket 服务的端口默认值为6041——这也解释了为什么 Superset 连接串默认使用 6041 端口而不是 TDengine 原生的 6030 端口。另外值得注意的是taosAdapter 的 WebSocket 接口支持通过 WebSocket 协议执行 SQL、无模式数据写入、参数绑定和数据订阅功能因此 Superset 在 SQL Lab 中执行的任意 TDengine SQL 都经由此通道下发查询能力与通过客户端直连 SQL 保持一致。对于希望了解 Python 连接器细节的读者可参考 Python 连接器参考手册。前置条件开始集成前请准备并确认以下环境组件版本要求说明TDenginev3.2.3.0 或以上企业版与社区版均可taosAdapter随 TDengine 服务端安装必须正常运行用法见 taosAdapter 参考手册Apache Supersetv2.1.0 或以上按照 Superset 官方文档自行安装Python 连接器 taospy2.7.18 或以上从 PyPI 安装Python 连接器WebSockettaos-ws-py0.3.9 或以上从 PyPI 安装几点实操建议taosAdapter 检查安装 TDengine server 时无需额外步骤安装 taosAdapter独立部署时需在服务器上安装完整 TDengine。可用systemctl status taosadapter确认服务状态未运行时执行systemctl start taosadapter启动。端口连通性确认 Superset 所在机器能够访问 taosAdapter 的 6041 端口跨主机部署时需放通防火墙。连接器安装位置taospy 与 taos-ws-py 需要安装到Superset 运行时所用的 Python 环境中例如使用虚拟环境或 Docker 部署 Superset 时需在对应环境内pip install taospy taos-ws-py仅安装在系统 Python 中不生效。配置数据源在 Superset 中把 TDengine 注册为一个数据库连接Database Connection步骤如下进入新建数据库连接页Superset 界面右上角 Settings - Database Connections - DATABASE。选择其它数据库连接在 SUPPORTED DATABASES 下拉列表中选择最后一项OtherTDengine 不在 Superset 内置数据源列表中需以通用方式注册。在 DISPLAY NAME 中填写连接名称任意填写即可如TDengine。填写数据库连接串在 SQLALCHEMY URI 中按以下格式填写务必填写正确taosws://用户名:密码主机名:端口号各字段说明参数名称参数说明用户名登录 TDengine 数据库的用户名密码登录 TDengine 数据库的密码主机名TDengine 数据库taosAdapter所在主机名称端口号提供 WebSocket 服务的端口即 taosAdapter 的port默认 6041示例本机安装 TDengineWebSocket 服务端口 6041使用默认用户名密码连接串为taosws://root:taosdatalocalhost:6041如果修改过 taosAdapter 配置如taosadapter.toml中的port参数此处端口号需与之保持一致密码中若包含、:等特殊字符需进行 URL 转义否则连接串解析会出错。测试连接点击TEST CONNECTION测试连接是否成功测试通过后点击CONNECT按钮保存配置。关于传输安全WSStaosAdapter 参考手册 说明taosAdapter 从企业版起支持通过[ssl]配置启用 HTTPS/WSS设置ssl.enable true并提供ssl.certFile服务端证书PEM与ssl.keyFile服务端私钥PEM后重启服务即可。此时 Superset 侧的连接串协议头应改为 WSS 形式wss://用户名:密码主机名:端口号并通过连接器的 SSL/TrustStore 选项配置对端证书信任。社区版场景下建议通过内网或反向代理等方式保护 6041 端口的传输安全。数据分析TDengine 数据源与其它数据源在使用方式上没有差别下面以 SQL Lab 的交互式查询为例介绍数据查询流程并以智能电表数据展示两种典型图表模板。数据准备SQL Lab 查询流程在 Superset 界面点击右上角号按钮选择SQL query进入 SQL Lab 查询界面。在左上角 DATABASE 下拉列表中选择前面已创建好的TDengine数据源。在 SCHEMA 下拉列表中选择要操作的数据库名系统库不显示。通过 SEE TABLE SCHEMA 选择要操作的超级表名或普通表名子表不显示。随后下方会显示选定表的 SCHEMA 信息列名与类型。在 SQL 编辑器区域可输入符合 TDengine 语法的任意 SQL 语句执行例如对超级表按时间窗口做聚合查询结果会以表格形式返回可直接基于结果集继续创建图表。需要说明的是第 35 步对应 Superset 的元数据Schema/Tables/Columns加载流程Superset 会通过已安装的 Python 连接器向 taosAdapter 的 WebSocket 接口发起元数据查询。TDengine 的表结构数据库 - 超级表/普通表 - 子表在 Superset 元数据视图中呈现为Schema 对应数据库名可见表为超级表与普通表子表因由标签动态创建而不进入元数据列表。智能电表样例以 TDengine 官方经典的智能电表meters示例数据为例本文选取 Superset Chart 模板中较流行的两种模板展示集成效果。示例中使用的数据表结构为超级表meters包含ts时间戳、current电流float、voltage电压int、phase相位float列及location、groupid标签。1. Aggregate聚合类型图表下图展示第 4 组过滤条件groupid 4在指定时间段内每分钟采集的电压值voltage最大值。图表配置要点TIME COLUMN 选择tsTIME GRAIN 设为MinuteMETRIC 使用MAX(voltage)FILTERS 添加groupid 4结果区RESULTS/SAMPLES可以看到每分钟的MAX(voltage)明细右上角显示共 640 rows。2. RAW RECORDS原始记录类型图表下图展示第 4 组在指定时间段内current、voltage的原始采集值。图表配置要点QUERY MODE 选择RAW RECORDS而非默认的AGGREGATECOLUMNS 添加ts、current、voltage结果以表格形式逐行返回原始数据适合做明细核查与下钻分析。小结与扩展完成本文配置后Superset 即可像对待任意标准 SQL 数据源一样访问 TDengine通过 WebSocket 连接串taosws://把 taosAdapter 的 6041 端口注册为 Superset 的 Other 数据库随后即可在 SQL Lab 中执行任意 TDengine SQL并利用 Superset 的 Aggregate、RAW RECORDS 等图表模板对时序数据做聚合与明细展示。后续可按以下方向继续扩展在 Superset 中创建 Dataset数据集并基于超级表定义指标与维度供 Dashboard 复用关注连接方式演进根据 连接器连接方式说明各语言连接器正持续向 WebSocket 方式迁移taosws://WebSocket连接是当前推荐且长期支持的接入路径排查连接失败时优先核对三项taosAdapter 是否运行、6041 端口是否可达、Superset Python 环境中是否安装了正确版本的 taospy / taos-ws-py 连接器。【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考