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,確認是否修改成功。