更新时间:2024-08-19 GMT+08:00
分享

数据分类管理实践

概述

数据分类管理是工业数字模型驱动引擎-数据建模引擎(xDM Foundation,简称xDM-F)为了方便用户将同维度的数据实例进行分门别类管理、实例数据统一归集的能力。数据分类管理指的是数据实例之间存在的“多对多”关系数据结构,主要包含“数据分类”“数据分类对象”两个部分。

  • 数据分类:“父模型”“AbstractCategory”的数据实体。“AbstractCategory”xDM-F用于将用户自定义数据实体设置为数据分类的抽象概念。一个“父模型”“AbstractCategory”的数据实体表示一种数据分类。
  • 数据分类对象:具有“数据分类管理”功能的数据实体,即用户在应用设计态创建数据实体时,在“功能列表”中勾选了“数据分类管理”功能。具有“数据分类管理”功能的数据实体对外提供如下数据分类相关接口。
    表1 数据分类管理相关接口

    接口名称

    描述

    addToCategory

    将数据分类对象数据实例添加至数据分类数据实例中。

    removeFromCategory

    将数据分类数据实例从数据分类对象数据实例中移除。

    更多数据分类管理的接口信息请参见全量数据服务

使用说明

  • 如果数据实体的父模型具有数据分类管理,该数据实体自动继承数据分类管理,且不可去除勾选。如果后续父模型删除了数据分类管理功能,该数据实体将不再继承父模型的数据分类管理功能,但可以自己重新勾选数据分类管理功能。
  • 如果数据实体为Master-Version模型数据实体(即“父模型”选择为“VersionObject”),则只能在Version模型上选择数据分类管理功能,Master模型和Branch模型不支持选择数据分类管理功能。

示例场景

汽车是道路交通管理最重要的一个对象之一,对汽车进行准确分类才能对汽车的车辆属性进行准确地定位,才能对汽车的特点进行合理地分析,才能对汽车进行有效、到位地管理。例如核定车型、车辆等级、车辆类型、车辆用途等。按照不同的分类方法,汽车大致分为如下几种类型。

图1 汽车分类

由此可得知,同一辆汽车按照不同的分类方法,可以分配到不同的分类中。同时,一个分类下包含多辆汽车。

步骤1:创建数据分类

  1. 登录应用设计态
  2. 在左侧导航栏中,选择数据模型管理 > 数据实体,进入数据实体页面。
  3. 按照图1所示,依次为汽车创建“数据分类”的数据实体。

    图2 创建数据分类
    主要配置说明如下,其他配置请保持默认。
    表2 创建数据分类配置说明

    英文名称

    中文名称

    中文描述

    父模型

    其他配置项

    Drive_mode

    驱动方式

    包含全轮驱动汽车、前轮驱动汽车和后轮驱动汽车

    选择“AbstractCategory”

    保持默认。

    Automobile_use

    用途

    包含乘用车、客车、货车和牵引汽车。

    选择“AbstractCategory”

    保持默认。

    Power_plant

    动力装置

    包含内燃机汽车、电动汽车和燃气轮机汽车。

    选择“AbstractCategory”

    保持默认。

    Class_of_vehicle

    等级

    包含轿车、微型轿车、普通级轿车、中级轿车、中高级轿车和高级轿车。

    选择“AbstractCategory”

    保持默认。

    Vehicle_model

    车型

    包含轿车、MPV和SUV。

    选择“AbstractCategory”

    保持默认。

    Engine_location

    发动机位置

    包含发动机前置汽车、发动机中置汽车和发动机后置汽车。

    选择“AbstractCategory”

    保持默认。

步骤2:创建数据分类对象

  1. 在左侧导航栏中,选择数据模型管理 > 数据实体,进入数据实体页面。
  2. 单击“创建”,创建一个“汽车”数据实体。

    图3 创建数据分类对象
    主要配置说明如下,其他配置请保持默认。
    表3 创建数据分类对象配置说明

    类型

    配置项

    配置说明

    基本信息

    英文名称

    Automobile。

    中文名称

    汽车。

    中文描述

    某企业制造的汽车。

    父模型

    保持默认,此处以“BasicObject”为例。

    功能列表

    可选功能

    添加“数据分类管理”功能。

    为篇幅起见,这里不展示汽车的具体属性内容。如需添加数据实体属性请参见管理数据实体属性

步骤3:管理数据分类对象

  1. 勾选刚创建的数据实体,依次完成发布数据实体 > 发布应用 > 部署应用的操作,具体操作请参见发布数据实体发布应用部署应用
  2. 待应用完成部署后,登录应用运行态
  3. 数据模型管理 > 数据实体中,找到并编辑刚创建的数据实体,将“实例界面显示”设置为“是”

    即:分别将“Drive_mode”“Automobile_use”“Power_plant”“Class_of_vehicle”“Vehicle_model”“Engine_location”“Automobile”数据实体的“实例界面显示”参数设置为“是”

  4. 数据模型管理 > 数据实例中,按照图1所示,依次为步骤3创建的数据实体创建如下对应的数据实例。

    图4 “Drive_mode”数据实例
    图5 “Automobile_use”数据实例
    图6 “Power_plant”数据实例
    图7 “Class_of_vehicle”数据实例
    图8 “Vehicle_model”数据实例
    图9 “Engine_location”数据实例
    图10 “Automobile”数据实例
    表4 数据实例信息

    数据实体

    数据实例的唯一编码(ID)

    数据实例的中文名称(Name)

    Drive_mode

    10001

    全轮驱动汽车

    10002

    后轮驱动汽车

    10003

    前轮驱动汽车

    Automobile_use

    20001

    乘用车

    20002

    客车

    20003

    货车

    20004

    牵引汽车

    Power_plant

    30001

    内燃机汽车

    30002

    电动汽车

    30003

    燃气轮机汽车

    Class_of_vehicle

    40001

    轿车

    40002

    微型轿车

    40003

    普通级轿车

    40004

    中级轿车

    40005

    中高级轿车

    40006

    高级轿车

    Vehicle_model

    50001

    轿车

    50002

    MPV

    50003

    SUV

    Engine_location

    60001

    发动机前置汽车

    60002

    发动机中置汽车

    60003

    发动机后置汽车

    Automobile

    88880

    -

    88881

    -

  5. 使用curlPostman或直接编写代码等方式,调用addToCategory接口,将数据分类对象的数据实例添加至数据分类中。

    • URI格式
      POST http://{Endpoint}/rdm_{appID}_app/services/dynamic/api/{modelNameEn}/addToCategory
    • URI参数说明
      表5 URI参数说明

      参数

      是否必填

      参数类型

      描述

      Endpoint

      String

      承载REST服务端点的服务器域名或IP地址。

      示例:example.com

      appID

      String

      应用ID。

      示例:testapp

      modelNameEn

      String

      数据分类对象的英文名称。

      示例:Automobile

    • 请求参数说明
      表6 请求Header参数

      参数

      是否必选

      参数类型

      描述

      X-Auth-Token

      String

      用户的token。

      示例:ABCDEFG....

      Content-Type

      String

      编码格式。

      示例:application/json

      表7 请求Body参数

      参数

      是否必选

      参数类型

      描述

      params

      Object

      参数对象。

      params.category

      Object

      数据分类的实例对象。

      params.category.id

      Long

      数据分类的实例ID。

      示例:10001

      params.category.clazz

      String

      数据分类的英文名称。

      示例:Drive_mode

      params.categoryable

      Object

      数据分类对象的实例对象。

      params.categoryable.id

      Long

      数据分类对象的实例ID。

      示例:88880

      params.categoryable.clazz

      String

      数据分类对象的英文名称。

      示例:Automobile

    • 响应参数说明
      表8 响应Body参数

      参数

      参数类型

      描述

      result

      String

      调用是否成功。

      • SUCCESS:成功
      • FAIL:失败

      data

      List

      调用的返回结果。

      errors

      List

      异常信息列表。

    • 请求示例
      “Automobile”数据分类对象的“88880”数据实例添加到“Drive_mode”数据分类的“10001”数据实例中,其请求示例如下:
      POST https://example.com/rdm_testapp_app/services/dynamic/api/Automobile/addToCategory
      X-Auth-Token: ABCDEFG....
      Content-Type: application/json
      {
        "params": {
          "category": {
            "id": 10001,
            "clazz": "Drive_mode"
          },
          "categoryable": {
            "id": 88880,
            "clazz": "Automobile"
          }
        }
      }
    • 响应示例
      {
        "result": "SUCCESS",
        "data": [
          1
        ],
        "errors": []
      }

  6. 使用curlPostman或直接编写代码等方式,调用removeFromCategory接口,将已添加至数据分类的数据实例从数据分类中移除。

    • URI格式
      POST http://{Endpoint}/rdm_{appID}_app/services/dynamic/api/{modelNameEn}/removeFromCategory
    • URI参数说明
      表9 URI参数说明

      参数

      是否必填

      参数类型

      描述

      Endpoint

      String

      承载REST服务端点的服务器域名或IP地址。

      示例:example.com

      appID

      String

      应用ID。

      示例:testapp

      modelNameEn

      String

      数据分类对象的英文名称。

      示例:Automobile

    • 请求参数说明
      表10 请求Header参数

      参数

      是否必选

      参数类型

      描述

      X-Auth-Token

      String

      用户的token。

      示例:ABCDEFG....

      Content-Type

      String

      编码格式。

      示例:application/json

      表11 请求Body参数

      参数

      是否必选

      参数类型

      描述

      params

      Object

      参数对象。

      params.category

      Object

      数据分类的实例对象。

      params.category.id

      Long

      数据分类的实例ID。

      示例:10001

      params.category.clazz

      String

      数据分类的英文名称。

      示例:Drive_mode

      params.categoryable

      Object

      数据分类对象的实例对象。

      params.categoryable.id

      Long

      数据分类对象的实例ID。

      示例:88880

      params.categoryable.clazz

      String

      数据分类对象的英文名称。

      示例:Automobile

    • 响应参数说明
      表12 响应Body参数

      参数

      参数类型

      描述

      result

      String

      调用是否成功。

      • SUCCESS:成功
      • FAIL:失败

      data

      List

      调用的返回结果。

      errors

      List

      异常信息列表。

    • 请求示例
      “Automobile”数据分类对象的“88880”数据实例从“Drive_mode”数据分类的“10001”数据实例中移除,其请求示例如下:
      POST https://example.com/rdm_testapp_app/services/dynamic/api/Automobile/removeFromCategory
      X-Auth-Token: ABCDEFG....
      Content-Type: application/json
      {
        "params": {
          "category": {
            "id": 10001,
            "clazz": "Drive_mode"
          },
          "categoryable": {
            "id": 88880,
            "clazz": "Automobile"
          }
        }
      }
    • 响应示例
      {
        "result": "SUCCESS",
        "data": [
          1
        ],
        "errors": []
      }

相关操作

此外,xDM-F在XDM应用中预置DataCategoryLink关系实体,您可以通过调用该实体的相关接口,用于查询数据分类详细情况。关于DataCategoryLink的接口详细信息请参见全量数据服务

相关文档