算子通用配置手册
===========================================
operators.configs
--------------------------------------------------------------------------------
.. tip::
以下配置为 :doc:`./operator_json` 规范中 operators.configs 部分的配置说明
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 配置项 | 类型 | 必要性 | 说明 |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| label | string | N | 算子中文名称,非必要,仅供模版编写者标注用 |
| | | | ps:算子在使用中的默认名称分两类 |
| | | | 1. 固有的算子节点名称在算子树形列表中 |
| | | | 2. 用户自定义开发算子在算子上传中填写的算名名称作为算子的使用名称(等同于资源名称) |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| properties | object | Y | 算子基础参数 |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| properties.mainclass | string | Y | 算子主类(算子入口函数,包含包名,如 com.southgis.igis.Application) |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | | | |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params | object | Y | 配置项参数 |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_nodes | array | N | 算子节点的输入参数,如果算子没有输入节点,也必须声明一个空的数组[]
(此 array 长度决定了算子节点的入口个数,每一个入口的配置独立且有序,从左到右) |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_nodes.key | string | Y | 输入参数的变量名 |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_nodes.desc | string | N | 输入节点的描述(当鼠标移动到节点的输入端口上会出现该描述信息) |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_nodes.type | string | Y | 输入参数的类型,可选值如下:
1. "table",表示输入的参数为数据表名;
2. "pmml",表示输入的参数为模型地址;
3. "file",表示输入的参数为文件地址; |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | | | |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_form | array | Y | 算子节点的配置参数,如果算子没有配置参数,也必须声明一个空的数组[] |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_form.key | string | Y | 参数变量名,不能重复,必须为英文 |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_form.label | string | Y | 参数的标签名(交互面板中"key:value"中的 key) |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_form.placeholder | string | N | 配置项在无配置时的提示信息 |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_form.env | boolean | N | 参数是否为环境参数,如果为环境参数,该参数在往后台传值时会在 key 前加'conf\_'作为标记, |
| | | | 在此参数为 true 的情况下,配置面板中不会有交互配置,必须配置 default 配置同时使用,参数配置为 key=default;如果没有配置 default,此参数不起作用 |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_form.default | string | N | 配置项的默认值(当 env=true 时,需要指定默认值) |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_form.type | string | Y | 配置项的类型,可选值如下: |
| | | | |
| | | | 1. input |
| | | | |
| | | | 2. select |
| | | | |
| | | | 3. textarea |
| | | | |
| | | | 4. checkbox |
| | | | |
| | | | 5. button |
| | | | |
| | | | 6. cascader |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_form.optionItems | array | N | 自定义的 select options 选项,在 type 为 select 且 options 为'getItems'时有效,参考如下:
[{"name":"选项 1", "value":1}, {"name":"选项 2", "value":2}, {"name":"选项 3", "value":3}] |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_form.options | string | N | select 构造 options 的方法名,在 type 为 select 时有效(处理需要动态配置 select options 选项时使用该配置)
(方法参照下方,:ref:`算子配置固有函数配置表`) |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_form.fromKey | string | N | 算子节点配置表字段建议使用 input 交互,**此配置项已不建议使用** |
| | | | 获取字段的 input_nodes 中的 key,在 options 为 getTableColumns 时有效,对应 input_nodes 中的 key 值,会从传入的节点的数据表去获取字段 ,在非 读数据表 节点需要配置字段的一般需要该配置项 |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_form.changeForKey | string | N | select 在值发生改变时触发,将改变的值传至一个其他的配置项进行参数构造,此处填写其他配置项的 key, |
| | | | 一般用作级联 select 使用,在级联选项不复杂的情况下建议使用 type:cascader
此配置在 type 为 select/cascader 时有效 |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_form.multiple | boolean | N | select/cascader 是否可多选,在 type 为 select/cascader 时有效,默认为 false |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_form.text | string | N | 按钮上的文字,在 type 为 button 时有效 |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.input_form.func | string | N | 点击按钮执行方法的方法名,在 type 为 button 时有效 |
| | | | |
| | | | (方法参照下方,:ref:`算子配置固有函数配置表`) |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | | | |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.output_nodes | array | N | 算子节点的输出参数,如果算子节点没有输出,也必须声明一个空的数组[]
(此 array 长度决定了算子节点的出口个数,每一个出口的配置独立且有序,从左到右) |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.output_nodes.key | string | Y | 执行返回结果的变量名(注意匹配后台返回结果的变量名) |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.output_nodes.desc | string | N | 输出节点的描述(当鼠标移动到节点的输出端口上会出现该描述信息) |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| params.output_nodes.type | string | Y | 输入结果的类型,可选值如下:
1. "table",表示输入的参数为数据表名;
2. "pmml",表示输入的参数为模型文件地址;
3. "file",表示输入的参数为结果文件地址; |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | | | |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| preview | object | N | 数据预览配置参数(在没有配置该参数或配置的参数为空的情况下,将以普通数据表的形式尝试对节点输出数据进行加载预览) |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| preview.chartType | string | N | 统计图输出配置,配置了该项则右键点击节点可查看统计图
可选值如下:
1. "boxplot"(箱线图) |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| preview.chart_option | object | N | 统计图静态配置,在配置了 chartType 时生效
配置参数参照:doc:`echarts 官网配置手册` |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| preview.tableType | string | N | 统计表输出配置,配置了该项则右键点击结点可查看统计表
可选值如下:
1. "common"(普通统计表)
2. "matrix"(矩阵统计表) |
+--------------------------------+---------+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. _methods-api:
机器学习算子函数方法(Methods)手册
--------------------------------------------
+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 方法名 | 参数 | 说明/返回值 |
+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| getItems | 无 | 供 type 为 select 的 options 配置使用,该参数必须配合 optionItems 提供的 option 选项作为 select 的选项,如果没有配置 optionItems 则无法显示选项;注意:选项的显示值与真实值相同 |
+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| getTables | 无 | 供 type 为 select 的 options 配置使用,返回所有可供操作的数据表名称列表 |
+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| getTableColumns | 无 | 供 type 为 select 的 options 配置使用,返回当前算子节点输入表或配置表的所有字段列表 |
+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| changeTableColumns | 无 | 供 type 为 select 的 onChange 配置使用,在当前配置项的配置内容发生改变时调用,可更新当前算子节点的数据表 |
+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| saveSql | 无 | 供 type 为 button 的 func 配置使用,当前仅供“SQL 工具”算子特殊使用,用于上传 sql 脚本为资源 |
+--------------------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
机器学习算子模板输出结果命名规则
--------------------------------------
+---------------+-------+--------------------------+
| 结果 | 类型 | 命名规则 |
+---------------+-------+--------------------------+
| 表 | table | tb_PlanID_NodeID_Index |
+---------------+-------+--------------------------+
| PMML 模型文件 | pmml | pmml_PlanID_NodeID_Index |
+---------------+-------+--------------------------+
| 结果文件 | file | file_PlanID_NodeID_Index |
+---------------+-------+--------------------------+
其中,index 为输出节点位于模板中 output_nodes 中的位置;
后端根据输出结果的前缀来判断上传于 HDFS 的路径位置;
前端将输出结果存于每个节点的 outdata 中,outdata 是一个 HashMap,其中 Key 值为输出节点在模板中对应的 Key 值