注册虚拟属性


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


虚拟属性可以灵活应用于现有属性无法满足需求的场景。例如:当需要查询各个区域分布式电站的装机容量时,可以为场站配置一个虚拟属性 分布式电站装机容量,该虚拟属性的表达式含义为 当电站类型为分布式时,该虚拟属性等于装机容量,否则为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 。虚拟属性删除后不可恢复。