任务

自定义开发组件

定义组件

com.dtstack.taier.common.enums.EComponentType 枚举中定义一个新的组件类型

枚举中有对应的六个属性:

属性含义能否为空
typeCode组件类型值
name组件名
confName组件配置名称
sort排序
componentScheduleType组件类型
caution

componentScheduleType主要用于区分组件所属组件类型
公共组件: 默认所有任务都可以使用该组件配置信息
资源调度组件:任务提交依赖调度组件
存储组件:任务数据存储组件
计算组件:任务提交组件

这里我们以oceanBase为例: 如:

  1. OCEAN_BASE(7, "OceanBase", "oceanBaseConf",EComponentScheduleType.COMPUTE),

配置含义:

info

组件名称为 OceanBase 归宿为计算组件分组组件

配置组件模版

新增完组件类型,我们需要给组件添加配置模版

  1. 定义组件模型 在taier的数据库插入模型数据

这里我们以oceanBase为例:

  1. INSERT INTO dict (dict_code, dict_name, dict_value, dict_desc, type, sort, data_type, depend_name, is_default, gmt_create, gmt_modified, is_deleted) VALUES ('component_model', 'OCEAN_BASE', '{"owner": "COMPUTE", "dependsOn": [], "allowKerberos": "false", "allowCoexistence": false, "uploadConfigType": "0", "versionDictionary": "","nameTemplate":"oceanBase"}', null, 12, 0, 'STRING', '', 0, now(), now(), 0);

模型json内容为

  1. {
  2. "owner":"COMPUTE",
  3. "dependsOn":[
  4. ],
  5. "allowKerberos":"false",
  6. "allowCoexistence":false,
  7. "uploadConfigType":"0",
  8. "versionDictionary":"",
  9. "nameTemplate":"oceanBase"
  10. }
属性含义
owner组件类型
dependsOn依赖组件类型
allowKerberos是否允许开启kerberos
allowCoexistence是否允许多个版本共存
uploadConfigType是否允许上传配置文件
versionDictionary组件版本选择
nameTemplate组件对应plugins插件名称
  1. 定义组件模版

这里我们以oceanBase为例:

  1. INSERT INTO dict (dict_code, dict_name, dict_value, dict_desc, type, sort, data_type, depend_name, is_default, gmt_create, gmt_modified, is_deleted) VALUES ('typename_mapping', 'oceanBase', '-118', null, 6, 0, 'LONG', '', 0, now(),now(), 0);
  2. INSERT INTO console_component_config (cluster_id, component_id, component_type_code, type, required, `key`, value, `values`, dependencyKey, dependencyValue, `desc`, gmt_create, gmt_modified, is_deleted) VALUES (-2, -118, 5, 'INPUT', 1, 'jdbcUrl', '', null, null, null, null, now(),now(), 0);
  3. INSERT INTO console_component_config (cluster_id, component_id, component_type_code, type, required, `key`, value, `values`, dependencyKey, dependencyValue, `desc`, gmt_create, gmt_modified, is_deleted) VALUES (-2, -118, 5, 'INPUT', 0, 'username', '', null, null, null, null, now(),now(), 0);
  4. INSERT INTO console_component_config (cluster_id, component_id, component_type_code, type, required, `key`, value, `values`, dependencyKey, dependencyValue, `desc`, gmt_create, gmt_modified, is_deleted) VALUES (-2, -118, 5, 'PASSWORD', 0, 'password', '', null, null, null, null, now(),now(), 0);
  5. INSERT INTO console_component_config (cluster_id, component_id, component_type_code, type, required, `key`, value, `values`, dependencyKey, dependencyValue, `desc`, gmt_create, gmt_modified, is_deleted) VALUES (-2, -118, 5, 'INPUT', 0, 'maxJobPoolSize', '', null, null, null, null, now(),now(), 0);
  6. INSERT INTO console_component_config (cluster_id, component_id, component_type_code, type, required, `key`, value, `values`, dependencyKey, dependencyValue, `desc`, gmt_create, gmt_modified, is_deleted) VALUES (-2, -118, 5, 'INPUT', 0, 'minJobPoolSize', '', null, null, null, null, now(),now(), 0);

定义console_component_config表中 component_id为-118类型为oceanBase的组件模版配置参数

tip

组件模版参数cluster_id 默认统一为-2 component_id 统一为负数
更多复杂的组件模版渲染配置 可以参考flink组件

caution

变更组件的配置SQL,需要重启Taier才会生效