ALTER ETL语句用于修改状态为RUNNING的ETL任务。
引擎与版本
ALTER ETL仅适用于流引擎。要求3.1.8及以上版本。
您可以通过控制台查看并升级小版本。
语法
alter_etl_statement ::= ALTER ETL etl_name
                        [WITH etl_properties]
                        AS INSERT INTO [[catalog_name.]db_name.]table_name column_list 
                        select_statement
etl_properties       ::= '(' property_definition (',' property_definition)* ')'
property_definition  ::= property_name '=' property_value  
column_list          ::= '(' column_name (',' column_name)* ')'使用说明
ETL名称(etl_name)
必填参数。指定需要修改的ETL任务。
ETL属性(etl_properties)
您可以通过WITH关键字添加以下ETL属性:
设置时,属性名前后需添加反引号(`),属性值前后需添加单引号(')。例如`parallelism` = '2'。
属性  | 数据类型  | 说明  | 默认值  | 
parallelism  | INTEGER  | 任务并行度。  | 1  | 
sink.ignore-update-before  | BOOLEAN  | Sink时是否忽略-U。  | false  | 
sink.ignore-delete  | BOOLEAN  | Sink时是否忽略-D。  | false  | 
sink.null-mode  | STRING  | Sink时是否写入Null值,取值如下: 
  | NO_OP  | 
udf.xxxx  | STRING  | 配置UDF,需先上传UDF jar。参数格式如下:  | 无  | 
stream.xxx  | ANY  | 流引擎作业参数,例如:  | 无  | 
指定结果表
参数  | 是否必填  | 说明  | 
catalog_name  | 否  | 结果表的Catalog。  | 
db_name  | 否  | 结果表所在数据库。  | 
table_name  | 是  | 结果表的名称。  | 
column_name  | 是  | 结果表的列名。  | 
SQL查询语句(select_statement)
修改为新的SQL查询语句。
示例
假设宽表引擎中的源表source和sink的结构如下:
-- 源表source
CREATE TABLE source(p1 INT, c1 DOUBLE, PRIMARY KEY(p1));
-- 结果表1:sink
CREATE TABLE sink(p1 INT, c1 DOUBLE, PRIMARY KEY(p1));创建ETL filter2,同时添加属性。
CREATE ETL IF NOT EXISTS filter2
WITH (
`parallelism` = '2',
`stream.execution.checkpointing.interval` = '30000'
)
AS
  INSERT INTO `lindorm_table`.`default`.`sink` (p1, c1)
  SELECT p1, c1 FROM `lindorm_table`.`default`.`source` WHERE c1 > 10;修改ETL任务属性
将parallelism属性修改为4。
ALTER ETL filter2
WITH (`parallelism` = '4')
AS
  INSERT INTO `lindorm_table`.`default`.`sink` (p1, c1)
  SELECT p1, c1 FROM `lindorm_table`.`default`.`source`;结果验证
您可以通过DESC ETL filter2;语句查看filter2的ATTRIBUTES,确认是否修改成功。