注册虚拟属性


虚拟属性是指基于一个或多个参数计算出的新属性,参数包括模型属性、数据源提供的属性和常数。


虚拟属性可以灵活应用于现有属性无法满足需求的场景。例如:当需要查询各个区域分布式电站的装机容量时,可以为场站配置一个虚拟属性 分布式电站装机容量,该虚拟属性的表达式含义为 当电站类型为分布式时,该虚拟属性等于装机容量,否则为0。基于该虚拟属性,利用通用数据服务提供的场站向区域的聚合能力,可以查询区域的分布式电站装机容量。


只有先在通用数据服务上注册虚拟属性,才能通过通用数据服务 API 查询使用这些属性。应用构建者可以通过上传模板文件批量注册虚拟属性。

备注

  • 虚拟属性不保存在模型、也不产生存储,只会在查询时由通用数据服务实时计算。因此虚拟属性只适用于轻量计算场景。

  • 通用数据服务既支持查询虚拟属性,也支持查询已注册对象类型的全量模型属性数据。

前提条件


开始之前,确保当前帐号已被分配所需的资产权限、操作权限点和包含 虚拟属性 在内的菜单组。如未分配,联系应用管理员。

操作步骤


  1. 在左侧导航栏中选择 元数据 > 虚拟属性

  2. 根据目标属性的生效范围选择 公有属性私有属性 标签页,点击 导入。有关公有/私有属性的区别,参见 公有/私有属性

  3. 在弹窗中点击 下载模板,选择下载 Excel 或 JSON 模板文件。

  4. 参考以下信息填写模板文件。


    字段名称

    标识符

    必填/选填

    描述

    属性标识符

    attribute

    必填

    属性的标识符,需保证在同一作用域(公有/私有)内的同一对象类型下的唯一性。

    属性中文/英文/日语/西班牙语名称

    zh_CN/en_US/ja_JP/es_ES

    中文和英文为必填

    不同语言的属性名称。

    对象类型标识符

    mdmType

    必填

    属性对应的资产类型的标识符。可前往 元数据 > 对象类型 查看对应对象类型的标识符。

    对象类型名称

    mdmTypeName

    选填

    属性对应的资产类型的名称。可前往 元数据 > 对象类型 查看对应对象类型的名称。

    聚合方式

    mdmAggMethods

    选填

    多对象查询时支持的属性聚合方式。目前支持的聚合方式:sum,avg,max,min。

    属性表达式

    expression

    必填

    属性表达式的格式根据生成属性的方式有所不同。参见 虚拟属性表达式案例

    关联模型属性

    foreignKey

    选填

    如果属性值需要基于维度表查询返回,填写用于查询维度表的模型属性的标识符。

    是否支持国际化

    extract18n

    选填

    若支持国际化,则填写 Y;若不支持国际化,则填写 N

    枚举量

    enumerate

    选填

    如果是枚举类型的属性,描述支持的枚举量。

    单位

    units

    选填

    属性数值的单位,参考 EnOS 内置单位 填写。

    数据类型

    dataType

    必填

    属性数值的数据类型。目前支持的数据类型:Int,Double,String。

    是否可排序

    sortable

    选填

    若查询属性时可以按升/降序返回结果,则填写 Y;若不可排序,填写 N

    筛选器

    filters

    选填

    查询属性时支持的筛选方式。目前支持的筛选方式:in,==,!=,>,>=,<,<= 。多个筛选方式之间用英文逗号分隔,例如:==,in。

    关联应用

    applicationDependency

    选填

    属性依赖部署的应用,多个应用之间用英文逗号分隔。

    关联应用依赖版本

    applicationVersionDependency

    选填

    属性依赖部署的应用版本,多个版本之间用英文逗号分隔。

    备注

    导入模板中的“所属组织标识符”、“所属组织名称”、“关联数据源”、“更新时间”和“操作人”字段无需填写,将在上传后由系统自动填充。

  5. 在弹窗中点击 上传。选择填写后的模板文件并点击 确定

虚拟属性表达式案例


生成虚拟属性有两种方式:

  • 基于模型的原始属性配置公式。

  • 关联一个维度表。


以上两种方式都需要配置表达式。配置虚拟属性表达式的典型案例见下表。


属性生成方式

表达式配置规则

虚拟属性示例

表达式示例

表达式含义

基于原始属性配置公式

原始属性引用格式为:Attribute[‘原始属性标识符’]

安全运行天数

#{(T(System).currentTimeMillis() - new java.text.SimpleDateFormat(‘yyyy-MM-dd’).parse(Attribute[‘safeOpStartDay’]).getTime()) / (24 * 60 * 60 * 1000)}

系统当前时间-安全运行起始时间,转换为天数

关联维度表

表达式格式为:#{Dimension[‘数据源APIKey@@维度表标识符@@属性原始字段’]}

省份/州

#{Dimension[‘SolarAPI@@siteAttributes@@province_name_i18n’]}

引用 Solar API 提供的 siteAttributes 维度表中的 province_name_i18n 字段作为 省份/州 属性


结果


注册成功后,虚拟属性出现在属性列表中。应用构建者可以查看属性详情,并进行以下操作:

  • 修改虚拟属性:点击 导出,按需修改下载的文件后再导入新文件。标识符相同的属性会覆盖原有属性,不同则新增属性。

  • 删除虚拟属性:点击对应属性行的 删除 Delete 。虚拟属性删除后不可恢复。