利用 ThingsBoard 与 CnosDB 高效存储遥测数据的实践
在物联网(IoT)应用中,遥测数据的收集和存储至关重要。ThingsBoard 是一个开源物联网平台,支持设备管理、数据可视化和分析。 CnosDB 是一个高性能的时序数据库,专为处理大量时间序列数据而设计。本文将介绍如何将 ThingsBoard 与 CnosDB 集成,以存储和管理遥测数据。
环境准备
在开始之前,请确保您已准备好以下环境:
Docker:运行 ThingsBoard 以及 CnosDB 的容器。
开发环境:Python、Java 或其他编程语言,用来运行程序模拟 IoT 设备。
步骤一:启动 CnosDB
CnosDB 的安装运行可以参考官方文档。运行如下命令,通过 Docker 启动 CnosDB:
执行 SHOW DATABASES
命令,验证 CnosDB 是否成功启动:
若输出如下数据,则说明 CnosDB 启动并初始化成功:
步骤二:启动 ThingsBoard(CnosDB)
以 ThingsBoard v3.7 为基础开发,添加了使用 CnosDB 存储时序数据的功能,获取安装包请扫描文末二维码,添加 CC 为好友。
通过设置配置文件中的 database.ts.type=cnosdb
或环境变量 DATABASE_TS_TYPE=cnosdb
来启动 ThingsBoard 的混合模式(实体数据存储至 PostgreSQL,时序数据存储至 CnosDB)。
在通过混合模式启动 ThingsBoard 时,需要额外配置时序数据库的部分,以下介绍时序数据库 CnosDB 的相关配置项:
cnosdb.host
或环境变量CNOSDB_HOST
- 数据库 JDBC 服务的 IP 和端口号,默认为127.0.0.1:8904
。cnosdb.tenant
或环境变量CNOSDB_TENANT
- CnosDB 租户名称,默认为cnosdb
。cnosdb.database
或环境变量CNOSDB_DATABASE
- CnosDB 数据库名称,默认为ThingsBoard
。cnosdb.user
或环境变量CNOSDB_USER
- CnosDB 用户名。cnosdb.password
或环境变量CNOSDB_PASSWORD
- CnosDB 密码。
配置文件示例:
以下是使用 Docker 安装 ThingsBoard 的基本步骤:
访问 [http://localhost:9090\](http://localhost:9090,您将看到 ThingsBoard 的登录界面。
接下来,使用默认的租户登录租户界面:
用户名:
tenant@ThingsBoard.org
密码:
tenant
步骤三:启动模拟设备
在 ThingsBoard 中,您需要创建一个新的设备,并配置数据源以将数据发送到 CnosDB。
登录 ThingsBoard 控制台。
打开“实体/设备”界面,点击右上角“添加设备”,创建一个新设备,记录下设备的访问令牌(Access token)。
使用 Python 或其他语言编写脚本,将遥测数据发送到 ThingsBoard。以下是一个示例:
首先安装 ThingsBoard 的 MQTT 客户端 tb-mqtt-client
以及依赖的组件 paho-mqtt
:
编写 Python 脚本:
运行 Python 脚本:
预期输出如下:
步骤四:验证数据存储
打开“实体/设备”界面,在列表中点击设备,在弹出页面中点击“复制设备 ID”。
执行 SQL 验证数据存储。
正确运行的情况下,结果如下所示:
步骤五:展示数据
关于仪表板的使用,详见官方文档。
创建仪表板展示数据
打开“仪表板”界面,点击右上角的“创建仪表板”按钮,设置仪表板名称,点击右下角的“添加”前往仪表板布局界面。
点击“添加部件”,弹出“选择部件包”窗口,选择“Charts”,并选择“Time series chart”,进入图表设置界面。
点击“数据源”输入框,选择刚才创建的设备,点击右下角的“添加”,回到仪表板布局界面。
添加的图表应该会表现为一个折线图,展示模拟设备不断推送至 ThingsBoard 的遥测数据。
结论
通过将 ThingsBoard 与 CnosDB 集成,您可以高效地存储和管理遥测数据。这种组合不仅提高了数据处理能力,还增强了数据的可视化和分析能力。希望本文能帮助您顺利完成集成。如果您有任何问题或建议,请随时联系。
获取 CnosDB 可观测性白皮书请点击以下链接或者点击阅读原文:https://jsj.top/f/qyV9DC
CnosDB 简介
CnosDB 是一款高性能、高易用性的开源分布式时序数据库,现已正式发布及全部开源。欢迎关注我们的社区网站:https://cn.cnosdb.com
版权声明: 本文为 InfoQ 作者【CnosDB】的原创文章。
原文链接:【http://xie.infoq.cn/article/2c90f3dfd0a16b40722763a3b】。文章转载请联系作者。
评论