概述
外部数据源功能的设计目的如下:
-
性能优化:
- 显著降低ThingsBoard的负载。
- 提升可视化构建速度。
- 优化Trendz资源使用,无需为Trendz增加额外内存即可展示更多数据。
-
第三方集成:
- 支持集成ThingsBoard系统之外的数据。
外部数据源表格式
目前,Trendz支持以下数据库:
- PostgreSQL(9.4及以上版本)
- MySQL(5.0及以上版本)
- MSSQL(2016及以上版本)
- Oracle(9i及以上版本)
Trendz可以使用外部数据源中的表,前提是:
- 表中包含一个存储设备/资产ID的列。
- 表中包含一个bigint类型的毫秒级时间戳列。
- 其他列可以是任意格式。
管理外部SQL数据源
第一步是配置Trendz与外部SQL数据库的连接方式。
添加外部SQL数据源
添加新的外部SQL数据源的步骤如下:
- 进入Settings,然后选择System标签页。
- 在External Data Source区域,点击Add new data source。
-
填写数据库连接信息:
- JDBC格式的URL
- 数据库类型
- 登录名
- 密码
- 点击Save按钮。
如果数据库连接成功,将显示成功提示;否则将显示错误信息。
查看所有外部数据源
查看所有外部数据源的步骤如下:
- 进入Settings,然后选择System标签页。
- 在External Data Source区域,点击See all data sources。
这里会显示一个包含三列的表格:Data Source URL、Database type和Actions。
删除外部数据源的步骤如下:
- 点击Actions列中的三点菜单。
- 点击Delete。
- 确认删除操作,并查看哪些实体会受到影响。
编辑外部数据源的步骤如下:
- 点击Actions列中的三点菜单。
- 点击Edit。
- 修改URL/数据库类型/登录名/密码。
- 确认更新操作,并查看哪些实体会受到影响。
如果数据库连接成功,将显示成功提示;否则将显示错误信息。
定义外部业务实体
要使用外部数据源中的表,需要先添加一个外部业务实体。 关于业务实体的详细信息,请参阅此处。
以下是创建外部业务实体的6个简单步骤:
为便于演示,我们将创建一个外部业务实体,从以下PostgreSQL表中获取数据:
1
2
3
4
5
6
7
CREATE TABLE IF NOT EXISTS building_consumption (
id UUID PRIMARY KEY,
building_id UUID NOT NULL,
heat_consumption BIGINT NOT NULL,
energy_consumption BIGINT NOT NULL,
ts BIGINT NOT NULL
);
步骤1:添加外部业务实体
- 进入Business Entities部分。
- 点击Add Business Entity。
- 输入希望在左侧面板中显示的名称(如Building Consumption Data)。
- 将Entity Type设置为”External”。
- 输入要从中检索数据的表名(如building_consumption)。注意:表名区分大小写。
- 选择要从中检索数据的数据源。
步骤2:添加键值实体字段
- 进入Fields标签页。
- 点击Add field。
- 输入希望在字段部分显示的名称(如Building ID)。
- 字段类型选择String。
- 查询类型选择Attribute。
- 在Key字段中,输入指定表中包含设备/资产ID的列名(如building_id)。注意:列名区分大小写。
- 勾选Use Field as Business Entity Key复选框。
步骤3:添加时间戳实体字段
- 点击Add field。
- 输入希望在字段部分显示的名称(如Timestamp)。
- 字段类型选择Numeric。
- 查询类型选择Telemetry。
- 在Key字段中,输入指定表中包含毫秒级时间戳的列名(如ts)。注意:列名区分大小写。
- 勾选Use Field as Telemetry Timestamp复选框。
步骤4:添加其他遥测实体字段
- 点击Add field。
- 输入希望在字段部分显示的名称(如Heat Consumption或Energy Consumption)。
- 根据数据选择合适的字段类型。
- 查询类型选择Telemetry。
- 在Key字段中,输入指定表中要使用的数据列名(如heat_consumption或energy_consumption)。注意:列名区分大小写。
根据需要重复步骤4来添加更多列。 如需删除当前字段,点击右上角的删除按钮。 关于业务实体标签页的详细信息,请参阅此处。
步骤5:添加与ThingsBoard业务实体的关系
- 进入Relations标签页。
- 点击Add relation。
- 输入任意名称(如External)。
- 将方向设置为TO。
- 选择要与外部业务实体关联的业务实体,步骤2中的键值列应包含与所选业务实体关联的设备/资产ID(如EM building)。
- 勾选Enabled复选框。
- 点击Save。
步骤6:构建简单视图进行验证
现在可以创建与外部业务实体关联的视图了。 注意:视图中必须至少使用一个来自ThingsBoard的实体。
可以构建一个最简单的视图来验证配置是否正确:
- 进入首页。
- 点击Create View,选择Table视图类型。
- 将与外部业务实体关联的业务实体名称字段拖放到列区域(如EM building)。
- 将外部业务实体的任意字段拖放到列区域(如energy_consumption)。
- 选择包含数据的日期范围。
- 点击Build Report。
如果视图构建成功,说明外部业务实体配置正确。 如果构建过程中出现任何错误,请检查步骤1至6的配置。
重要提示: Trendz只能将外部数据源的数据与ThingsBoard中的关联数据配合使用,关联数据可以是实体名称或其他数据。
安全与数据可见性
Trendz确保用户只能看到其有权访问的数据。外部SQL表中的数据会根据资产/设备ID进行过滤,与ThingsBoard中已设置的权限保持一致。
在可视化中合并ThingsBoard与外部数据时,Trendz通过实体关联关系过滤外部数据。例如,如果外部表存储了工厂设备的维护历史记录,用户只能看到其在ThingsBoard中有权访问的设备的维护详情。
这种方式既保障了数据安全,又能基于可访问的数据提供准确的分析洞察。
下一步
-
快速入门指南 - 快速了解 Trendz 主要功能。
-
安装指南 - 学习在各种操作系统上部署 Trendz。
-
指标探索器 - 学习使用 Trendz Metric Explorer 探索和创建指标。
-
异常检测 - 学习识别数据中的异常。
-
字段计算 - 了解字段计算及使用方法。
-
状态 - 学习基于原始遥测定义和分析资产状态。
-
预测 - 学习进行预测及遥测行为预测。
-
筛选器 - 学习在分析中筛选数据集。
-
可用可视化部件 - 了解 Trendz 中可用的可视化部件及配置方法。
-
分享与嵌入可视化 - 学习将 Trendz 可视化添加到 ThingsBoard 仪表盘或第三方网页。
-
AI 助手 - 学习使用 Trendz AI 功能。