产品定价 立即试用
Trendz Analytics
文档 > 外部数据源
入门
指南 安装 如何激活Trendz
目录

合并ThingsBoard与外部数据库数据

概述

外部数据源功能的设计目的如下:

  • 性能优化

    • 显著降低ThingsBoard的负载。
    • 提升可视化构建速度。
    • 优化Trendz资源使用,无需为Trendz增加额外内存即可展示更多数据。
  • 第三方集成

    • 支持集成ThingsBoard系统之外的数据。

外部数据源表格式

目前,Trendz支持以下数据库:

  • PostgreSQL(9.4及以上版本)
  • MySQL(5.0及以上版本)
  • MSSQL(2016及以上版本)
  • Oracle(9i及以上版本)

Trendz可以使用外部数据源中的表,前提是:

  1. 表中包含一个存储设备/资产ID的列。
  2. 表中包含一个bigint类型的毫秒级时间戳列。
  3. 其他列可以是任意格式。

管理外部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 URLDatabase typeActions

删除外部数据源的步骤如下:

  • 点击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 ConsumptionEnergy Consumption)。
  • 根据数据选择合适的字段类型。
  • 查询类型选择Telemetry
  • 在Key字段中,输入指定表中要使用的数据列名(如heat_consumptionenergy_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中有权访问的设备的维护详情。

这种方式既保障了数据安全,又能基于可访问的数据提供准确的分析洞察。

下一步