全部产品
云市场

模型设计

更新时间:2019-06-19 09:27:31

选择引擎产品>数据融合引擎>模型管理,单击模型设计,进入模型设计界面。

模型设计包括“线上环境”和“开发环境”两大模块,默认显示“线上环境”界面。

  • 线上环境:显示已经发布的模型的维护及数据质量规则配置;
  • 开发环境:显示已经建立的所有模型。

模型设计者和数据开发者都可访问模型设计模块,角色权限说明如下表所示。

模块
功能 模型设计者权限 数据开发者权限
线上环境 查看模型列表 有权限 有权限
查看模型详情 有权限 有权限
查看规则 有权限 有权限
下线模型 仅该模型的模型设计者可操作 无权限
批量分配 有权限 有权限
配置质量规则 仅该模型的模型设计者可操作 仅该模型的模型负责人可操作
开发环境 新建模型 有权限 无权限
查看模型列表 仅看到模型设计者自己的模型 无权限
编辑/上线/删除模型 仅该模型的模型设计者可操作 无权限
批量转交/批量上线 仅该模型的模型设计者可操作 无权限

线上环境

选择模型设计>线上环境,界面显示如下图所示。显示已发布的所有模型,按最近修改时间升序排列。

1

线上环境支持操作包括:筛选模型、查看模型、下线模型、分配模型、配置质量规则。

筛选模型

用户可以通过设定“模型类型(左侧模型列表)”、“版本号”、“应用领域”、“所属环境”、“上AIMaster”、“上行业模型”、“模型负责人”、“数据存储”、“表类型”以及“模型设计者”等参数对模型进行筛选;也可使用搜索栏查找模型,支持对表名称、表描述、字段等关键字进行搜索。

界面参数说明如下表所示:

参数名称
参数说明
模型列表 界面左侧的模型列表可筛选模型类型。
主题域 数据库分层后的模型主题域。
表名称 数据库中存储的物理表名称。
表描述 物理表的中文描述。
版本号 引擎版本号。
应用领域 当前支持的应用领域,包括:OD分析、事件感知、交通态势感知、基础数据、信号优化、弹性绿波带、生命体征、重点车辆安全防控、交通诱导以及评价指标。
所属环境 模型所属环境,包括:弹内、公共云、专有云。
上AIMaster 模型是否在AIMaster上有任务。
上行业模型 模型是否在数据融合引擎的行业模型模块中展示。
模型负责人 定义模型数据产出逻辑、各字段含义和取值要求。
数据存储 模型中数据的存储库。
表类型 物理表类型,包括:同步专网、产品部署、现场开发以及内部模型。
模型设计者 模型创建者,基于模型规范设计表结构,产出模型建表语句。模型设计者可以将自己创建的模型分配给“模型负责人”进行数据开发。
最近修改时间 模型最近一次修改时间。

查看模型

点击界面右侧操作栏的查看详情按钮,显示如下图所示模型详情界面。

  • 字段信息显示模型的具体数据字段。
  • 不同的存储类型(MaxCompute、Datahub Service、ApsaraDB for RDS或Table Store),显示模型各存储数据库的数据源和建表语句。

1

下线模型

仅模型设计者可执行下线操作。

点击表模型右侧操作栏的下线按钮,或勾选一个或多个表模型,通过界面下方的批量上线按钮,将选中表模型下线。下线模型即将该表从AIMaster中的SDF或直接从数据库中删除。

1

分配模型

为模型分配模型负责人,模型负责人根据模型进行物理表开发。

具体操作如下:

  1. 勾选一个或者多个模型,点击如上图所示界面下方的批量分配按钮。
  2. 为选中模型分配模型负责人。

    1

配置质量规则

如下图右侧所示,点击操作栏的查看规则按钮,查看模型的质量规则。

1

质量规则配置界面显示当前模型各存储数据库下已配置的质量规则,包括表级规则和字段级规则。

非模型设计者和非模型负责人显示界面如下图所示,仅可查看模型已配置的质量规则(支持搜索)。

111

模型设计者和模型负责人显示界面如下图所示。

6

模型设计者和模型负责人除可查看模型已配置的质量规则外,还可对模型的质量规则进行配置,具体包括:新建规则、设置全局条件、编辑已有规则、删除已有规则、调度配置等。当模型的存储类型为Table Store时,不能设置质量规则。

新建规则

如下图所示,依次选择数据库(模型中已有数据库)、规则类型(表或字段),点击界面右侧的新建规则按钮,即可进入对应的新建规则界面。

1

新建表级规则

新建表级规则界面显示如下图所示。用户可通过模板或自定义规则创建。

  • 模板规则:后台已经创建好的规则条件。
  • 自定义规则:用户自定义规则名称、规则条件等信息。一般用于复杂规则。

910

支持一次性添加多条规则,点击右上角的添加按钮依次配置,配置完成后,单击下方的批量保存即可。

规则保存时,系统会检查规则的SQL语句,如语句有误,提示错误,需修改正确后才能保存。

界面参数说明如下所示:

参数名称 参数说明
规则名称
模板规则:单击下拉框,选择一条规则名称。

自定义规则:输入自定义规则名称。

同一个表中,若规则名称相同,后配置的规则会覆盖前配置的规则,不会同时生成多条规则。
规则条件 根据实际需求,设置规则条件,可灵活调整。
例如:以数据量规则为例,规则条件>0表示规则约束该模型数据量大于0,规则执行后若不满足规则条件,规则展示页显示告警信息。

说明:模板规则中,规则名称选择主键唯一时,规则条件输入框置灰,不可编辑。
全局条件 模板规则设置页面显示模型的全局条件。若没有设置全局条件,则显示为空值。
过滤条件 模板规则:过滤条件从where开始输入。如果是MaxCompute分区表,过滤条件中至少出现一个分区字段。对于adcode、date_version、dt、month等通用参数,提供了通配符配置。比如:dataversion的参数为${data_version},dt的参数为${yyyymmdd}或${yyyymmdd-n},adcode的参数为${adcode},非可变参数请填写常量。
示例:where adcode=${adcode} and data_version=${data_version}

自定义规则:需要输入完整的规则SQL语句,必须包含模型表名称。返回值必须是单行单列,以组函数为主。其他通配符的使用跟模版规则配置相同。
示例:select count(*) from dwd_tfc_evt_dutysimple_t where adcode=${adcode} and lat > 90 and lat < 0

说明:过滤条件不能和全局条件重复。
规则强弱 规则强弱影响该模型的数据健康,强规则只有全部满足,数据才可用,弱规则不影响数据可用性。
强规则表示这条是强制需要满足的规则,若不满足,会产出告警信息。
任务执行时,按照强弱优先级执行。先执行强规则再执行弱规则,强规则执行不通过则弱规则不执行,强规则执行正常再执行弱规则。
新建字段级规则

新建字段级规则界面显示如下图所示。用户可通过模板或自定义规则创建。

  • 模板规则:后台已经创建好的规则条件。
  • 自定义规则:用户自定义规则名称、规则条件等信息。一般用于复杂规则。

87

支持一次性添加多条规则,点击右上角的添加按钮依次配置,配置完成后,单击下方的批量保存即可。

规则保存时,系统会检查规则的SQL语句,如语句有误,提示错误,需修改正确后才能保存。

界面参数说明如下所示:

参数名称
参数说明
字段名称 单击下拉框,选择一条规则名称。
规则名称 模板规则:单击下拉框,选择一条规则名称。
自定义规则:输入自定义规则名称。

同一个字段中,若规则名称相同,后配置的规则会覆盖前配置的规则,不会同时生成多条规则。
规则条件 根据实际需求,设置规则条件,可灵活调整。
例如:以数据量规则为例,规则条件>0表示规则约束该模型数据量大于0,规则执行后若不满足规则条件,规则展示页显示告警信息。
全局条件 模板规则设置页面显示模型的全局条件。若没有设置全局条件,则显示为空值。
过滤条件 模板规则:过滤条件从where开始输入。如果是MaxCompute分区表,过滤条件中至少出现一个分区字段。对于adcode、date_version、dt、month等通用参数,提供了通配符配置。比如:dataversion的参数为${data_version},dt的参数为${yyyymmdd}或${yyyymmdd-n},adcode的参数为${adcode},非可变参数请填写常量。
示例:where adcode=${adcode} and data_version=${data_version}

自定义规则:需要输入完整的规则SQL语句,必须包含模型表名称。返回值必须是单行单列,以组函数为主。其他通配符的使用跟模版规则配置相同。
示例:select count(*) from dwd_tfc_evt_dutysimple_t where adcode=${adcode} and lat > 90 and lat < 0

说明:过滤条件不能和全局条件重复。
规则强弱 规则强弱影响该模型的数据健康,强规则只有全部满足,数据才可用,弱规则不影响数据可用性。
强规则表示这条是强制需要满足的规则,若不满足,会产出告警信息。
任务执行时,按照强弱优先级执行。先执行强规则再执行弱规则,强规则执行不通过则弱规则不执行,强规则执行正常再执行弱规则。

设置全局条件

全局条件对模型的所有规则(表级规则和字段级规则)生效。一个模型仅需设置一个全局条件。用户可根据项目需求,选择是否配置全局条件。

点击界面右侧的全局条件按钮,即可进入如下图所示的全局条件界面。

1

全局条件界面显示模型表的分区字段,用户输入对应的过滤条件,点击保存即可。保存时,系统会检查过滤条件的SQL语句,如语句有误,提示错误,需修改正确后才能保存。

说明:

  • 如果分区字段包含data_version和adcode,则过滤条件必须包含data_version=${data_verison} 和 adcode=${adcode}这两个条件。
  • 当模型的存储类型为Datahub Service时,无需配置全局条件。

编辑规则

如下图所示,点击右侧操作栏的编辑按钮,可编辑已有规则。

1

删除规则

点击右侧操作栏的删除按钮,可删除已有规则。

说明:规则删除后将不再保留原纪录,请谨慎操作。

调度配置

新建规则后,需要对模型的各数据库执行调度配置,配置调度周期,定义规则的执行时间。

点击界面右上角的调度配置按钮,显示如下图所示的调度配置界面。依次配置相关参数后,点击保存即可。

1

说明:

  • 当模型的存储类型为MaxComputer或ApsaraDB for RDS时,无需配置“开窗时间”。
  • 若“调度周期”不可配置,说明该模型的周期已经从AIMaster中获取,不需要手动配置。

调度配置完成后,数据融合引擎会自动根据质量规则和调度周期,进行数据质量评估。数据开发者可通过行业模型模块,查看规则运行结果。

开发环境

选择模型设计>开发环境,界面显示如下图所示。界面显示已建所有模型,按最近修改时间升序排列。

1

开发环境支持操作包括:筛选模型、新建模型、编辑模型、上线模型、转交模型、删除模型。

筛选模型

用户可以通过设定“模型类型(左侧模型列表)”、“版本号”、“应用领域”、“所属环境”、“上AIMaster”、“上行业模型”、“模型设计者”、“数据存储”以及“表类型”等参数对模型进行筛选;也可使用搜索栏查找模型,支持对表名称、表描述、字段等关键字进行搜索。此处操作与线上环境完全相同。

新建模型

点击界面右上角的新建按钮,进入如下图所示的新建表界面。

1

依次配置相关参数后,点击保存即建立了新的数据模型。

部分参数说明如下表所示:

参数名称
参数说明
字段信息 物理表创建成功后,自动生成字段信息。
新增ddl 其中:

  • 存储类型:MaxCompute、ApsaraDB for RDS、Datahub Service、Table Store
  • 数据源:存储类型不同,则数据源不同。

每个模型最多可添加4类存储类型,每完成1个存储类型的添加后,右侧会出现新增按钮,可点击新增。

其中,新增ddl的建表语句示例如下所示:

  • MaxCompute
  1. CREATE TABLE IF NOT EXISTS ${dws_tfc_state_droad_tp_index_rt} (
  2. stat_time STRING COMMENT '指标时间 yyyyMMddHHmm00',
  3. droad_id STRING COMMENT '道路id',
  4. droad_name STRING COMMENT '道路名称',
  5. step_index BIGINT COMMENT '时间片序号',
  6. avg_speed DOUBLE COMMENT '道路平均速度',
  7. avg_nostop_speed DOUBLE COMMENT '道路平均不等待红绿灯速度',
  8. eff_index DOUBLE COMMENT '通行效率指数',
  9. free_len BIGINT COMMENT '畅通状态里程,米',
  10. normal_len BIGINT COMMENT '一般状态里程,米',
  11. block_len BIGINT COMMENT '较堵状态里程,米',
  12. jam_len BIGINT COMMENT '拥堵状态里程,米',
  13. cong_ratio DOUBLE COMMENT '较堵和拥堵占比'
  14. )
  15. COMMENT '道路实时指数(通行效率指数)-每2分钟时间片-实时更新'
  16. PARTITIONED BY (
  17. dt STRING COMMENT '当天日期yyyyMMdd',
  18. tp STRING COMMENT '时间分片取值',
  19. data_version STRING COMMENT '数据版本',
  20. adcode STRING COMMENT '城市编码'
  21. )
  22. LIFECYCLE 366;
  • ApsaraDB for RDS
  1. CREATE TABLE IF NOT EXISTS ${dws_tfc_state_droad_tp_index_rt} (
  2. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  3. `stat_time` varchar(20) NOT NULL DEFAULT '' COMMENT '指标时间 yyyyMMddHHmm00',
  4. `droad_id` varchar(128) NOT NULL DEFAULT '' COMMENT '道路id',
  5. `droad_name` varchar(128) NOT NULL DEFAULT '' COMMENT '道路名称',
  6. `step_index` bigint(11) NOT NULL COMMENT '时间片序号',
  7. `avg_speed` double NOT NULL DEFAULT '0' COMMENT '道路平均速度',
  8. `avg_nostop_speed` double NOT NULL DEFAULT '0' COMMENT '道路平均不等待红绿灯速度',
  9. `eff_index` double NOT NULL DEFAULT '0' COMMENT '通行效率指数',
  10. `free_len` bigint(20) NOT NULL COMMENT '畅通状态里程,米',
  11. `normal_len` bigint(20) NOT NULL COMMENT '一般状态里程,米',
  12. `block_len` bigint(20) NOT NULL COMMENT '较堵状态里程,米',
  13. `jam_len` bigint(20) NOT NULL COMMENT '拥堵状态里程,米',
  14. `cong_ratio` double NOT NULL COMMENT '较堵和拥堵占比',
  15. `dt` varchar(10) NOT NULL DEFAULT '00000000' COMMENT '当天日期yyyyMMdd',
  16. `tp` varchar(10) NOT NULL DEFAULT '2mi' COMMENT '时间分片取值',
  17. `data_version` varchar(20) NOT NULL COMMENT '数据版本',
  18. `adcode` varchar(20) NOT NULL COMMENT '城市编码',
  19. PRIMARY KEY (`id`),
  20. UNIQUE KEY `uk_droad_time` (`dt`, `tp`, `droad_id`, `step_index`, `data_version`),
  21. KEY `idx_date_droad_name` (`dt`, `tp`, `droad_id`)
  22. ) ENGINE = InnoDB AUTO_INCREMENT = 137256911 CHARSET = utf8 COMMENT '道路实时指数(通行效率指数)-每2分钟时间片-实时更新';
  • Datahub Service
  1. {
  2. "schema":[
  3. {
  4. "fieldName":"stat_time",
  5. "isNull":false,
  6. "comment":"指标时间 yyyyMMddHHmm00",
  7. "fieldType":"STRING"
  8. },
  9. {
  10. "fieldName":"droad_id",
  11. "isNull":false,
  12. "comment":"道路id",
  13. "fieldType":"STRING"
  14. },
  15. {
  16. "fieldName":"droad_name",
  17. "isNull":false,
  18. "comment":"道路名称",
  19. "fieldType":"STRING"
  20. },
  21. {
  22. "fieldName":"step_index",
  23. "isNull":false,
  24. "comment":"时间片序号",
  25. "fieldType":"BIGINT"
  26. },
  27. {
  28. "fieldName":"avg_speed",
  29. "isNull":false,
  30. "comment":"道路平均速度",
  31. "fieldType":"DOUBLE"
  32. },
  33. {
  34. "fieldName":"avg_nostop_speed",
  35. "isNull":false,
  36. "comment":"道路平均不等待红绿灯速度",
  37. "fieldType":"DOUBLE"
  38. },
  39. {
  40. "fieldName":"eff_index",
  41. "isNull":false,
  42. "comment":"通行效率指数",
  43. "fieldType":"DOUBLE"
  44. },
  45. {
  46. "fieldName":"free_len",
  47. "isNull":false,
  48. "comment":"畅通状态里程,米",
  49. "fieldType":"BIGINT"
  50. },
  51. {
  52. "fieldName":"normal_len",
  53. "isNull":false,
  54. "comment":"一般状态里程,米",
  55. "fieldType":"BIGINT"
  56. },
  57. {
  58. "fieldName":"block_len",
  59. "isNull":false,
  60. "comment":"较堵状态里程,米",
  61. "fieldType":"BIGINT"
  62. },
  63. {
  64. "fieldName":"jam_len",
  65. "isNull":false,
  66. "comment":"拥堵状态里程,米",
  67. "fieldType":"BIGINT"
  68. },
  69. {
  70. "fieldName":"cong_ratio",
  71. "isNull":false,
  72. "comment":"较堵和拥堵占比",
  73. "fieldType":"DOUBLE"
  74. },
  75. {
  76. "fieldName":"dt",
  77. "isNull":false,
  78. "comment":"当天日期yyyyMMdd",
  79. "fieldType":"STRING"
  80. },
  81. {
  82. "fieldName":"tp",
  83. "isNull":false,
  84. "comment":"时间分片取值",
  85. "fieldType":"STRING"
  86. },
  87. {
  88. "fieldName":"data_version",
  89. "isNull":false,
  90. "comment":"数据版本",
  91. "fieldType":"STRING"
  92. },
  93. {
  94. "fieldName":"adcode",
  95. "isNull":false,
  96. "comment":"城市编码",
  97. "fieldType":"STRING"
  98. }
  99. ],
  100. "recordType":"TUPLE",
  101. "shardsCnt":2,
  102. "topic":"${dws_tfc_state_droad_tp_index_rt}",
  103. "desc":"道路实时指数(通行效率指数)-每2分钟时间片-实时更新"
  104. }
  • Table Store
  1. {
  2. "tableMeta": {
  3. "tableName": "${dwd_tfc_bas_rdnet_drdchl_info}",
  4. "modelTableName": "dwd_tfc_bas_rdnet_drdchl_info",
  5. "tableComment": "带方向通道基本信息,主干道、快速路、高架等全部算在drdchl里面",
  6. "tableEnv": "客户环境",
  7. "pkColumns": [
  8. {
  9. "name": "data_version",
  10. "type": "STRING",
  11. "comment": "rid数据版本%%"
  12. },
  13. {
  14. "name": "rdchl_id",
  15. "type": "STRING",
  16. "comment": "用于标记同一个通道%%"
  17. },
  18. {
  19. "name": "drdchl_id",
  20. "type": "STRING",
  21. "comment": "通道ID,当用大脑数据程序生成时可用第一个路口的Inter_id和最后一个路口的inter_id通过#拼接起来%%"
  22. }
  23. ],
  24. "normalColumns": [
  25. {
  26. "name": "name",
  27. "type": "STRING",
  28. "comment": "通道名称%%"
  29. },
  30. {
  31. "name": "lane_cnt",
  32. "type": "INTEGER",
  33. "comment": "通道车道数%%"
  34. },
  35. {
  36. "name": "start_inter_id",
  37. "type": "STRING",
  38. "comment": "起始路口id%%"
  39. },
  40. {
  41. "name": "start_lng",
  42. "type": "DOUBLE",
  43. "comment": "起始路口经度%%"
  44. },
  45. {
  46. "name": "start_lat",
  47. "type": "DOUBLE",
  48. "comment": "起始路口纬度%%"
  49. },
  50. {
  51. "name": "start_geohash",
  52. "type": "STRING",
  53. "comment": "起始路口geohash%%"
  54. },
  55. {
  56. "name": "end_inter_id",
  57. "type": "STRING",
  58. "comment": "结束路口id%%"
  59. },
  60. {
  61. "name": "end_lng",
  62. "type": "DOUBLE",
  63. "comment": "结束路口经度%%"
  64. },
  65. {
  66. "name": "end_lat",
  67. "type": "DOUBLE",
  68. "comment": "结束路口纬度%%"
  69. },
  70. {
  71. "name": "end_geohash",
  72. "type": "STRING",
  73. "comment": "结束路口geohash%%"
  74. },
  75. {
  76. "name": "rdseg_cnt",
  77. "type": "INTEGER",
  78. "comment": "路段个数%%"
  79. },
  80. {
  81. "name": "len",
  82. "type": "INTEGER",
  83. "comment": "通道长度%%"
  84. },
  85. {
  86. "name": "rid_seq",
  87. "type": "STRING",
  88. "comment": "通道上按顺序排列的rid序列,rid之间用逗号分隔%%"
  89. },
  90. {
  91. "name": "lnglat_seq",
  92. "type": "STRING",
  93. "comment": "通道上按顺序排列的经纬度串序列,经度和纬度之间用逗号分隔,经纬度坐标之间用分号分隔%%"
  94. },
  95. {
  96. "name": "inter_id_seq",
  97. "type": "STRING",
  98. "comment": "通道上按顺序排列的inter_id序列,inter_id之间用逗号分隔%%"
  99. },
  100. {
  101. "name": "inter_name_seq",
  102. "type": "STRING",
  103. "comment": "通道上按顺序排列的inter_name序列,inter_name之间用逗号分隔%%"
  104. },
  105. {
  106. "name": "inter_coor_seq",
  107. "type": "STRING",
  108. "comment": "通道上路口经纬度坐标%%"
  109. },
  110. {
  111. "name": "extend_json",
  112. "type": "STRING",
  113. "comment": "暂时设为空,根据前端展示需要填充%%"
  114. },
  115. {
  116. "name": "road_type_no",
  117. "type": "INTEGER",
  118. "comment": "通道类型 1 表示 主干道 2 快速路 3 高架 4 普通地面道路%%"
  119. },
  120. {
  121. "name": "road_dir_no",
  122. "type": "INTEGER",
  123. "comment": "通道道路方向类型编码 1: 东西方向 2:南北方向 3:环形 %%"
  124. },
  125. {
  126. "name": "travel_dir_no",
  127. "type": "INTEGER",
  128. "comment": "通道通行方向编码 1: 正向默认西向东,北向南,环形顺时针 2:反向 默认东向西,南向北,环形逆时针 具体哪个方向是正向由客户定义%%"
  129. },
  130. {
  131. "name": "is_valid",
  132. "type": "INTEGER",
  133. "comment": "是否有效,1表示有效,0表示已删除"
  134. },
  135. {
  136. "name": "dt",
  137. "type": "STRING",
  138. "comment": "日期%%"
  139. },
  140. {
  141. "name": "adcode",
  142. "type": "STRING",
  143. "comment": "城市编码"
  144. }
  145. ]
  146. },
  147. "tableOptions": {
  148. "timeToLive": -1,
  149. "maxVersion": 3
  150. },
  151. "reservedThroughtput": {
  152. "read": 0,
  153. "write": 0
  154. }
  155. }

编辑模型

仅模型设计者可执行编辑操作。

如下图所示,点击右侧操作栏的编辑按钮,进入模型的编辑表界面。

1

8

修改相关参数后,点击保存即可。其中表名称和表描述不支持修改。

上线模型

仅模型设计者可执行上线操作。

模型上线分为以下两种情况:

  • 若该表上AIMaster,在AIMaster上生成SDF,且只能由模型管理平台维护,不能手动更改。以表名为唯一标志去AIMAster中检索,若已存在,则执行替换操作,若不存在,则执行新建操作。
  • 若该表不上AIMaster,直接出现在线上环境,不会生成SDF。建表和更新操作都由数据开发者在数据库中更新,数据融合引擎只更新线上环境中展示的建表语句。

如下图所示,点击表模型右侧操作栏的上线按钮,或勾选一个或多个表模型,通过界面下方的批量上线按钮,将选中表模型发布到线上环境。

1

转交模型

仅模型设计者可执行转交操作。

模型设计者可以将自己创建的模型转交给其他模型设计者,转交完成后,模型设计者更改为被转交的模型设计者。转交时线上环境中同名的模型设计者也会一并更改。

具体操作如下:

  1. 勾选一个或者多个模型,点击界面下方的批量转交按钮。
  2. 将选中模型转交给其他模型设计者。

6

删除模型

仅模型设计者可执行删除操作。

如下图所示,点击右侧操作栏的删除按钮,删除已建表模型。

1