pick (#38523) Create a job: ``` CREATE ROUTINE LOAD testShow ON test_show_routine_load COLUMNS TERMINATED BY "," PROPERTIES ( "max_batch_interval" = "5", "max_batch_rows" = "300000", "max_batch_size" = "209715200" ) FROM KAFKA ( "kafka_broker_list" = "127.0.0.1:19092", "kafka_topic" = "test_show_routine_load", "property.kafka_default_offsets" = "OFFSET_BEGINNING" ); ``` show routine load task: ``` SHOW ROUTINE LOAD TASK WHERE JobName = "testShow"; ``` result: ``` ERROR 1105 (HY000): errCode = 2, detailMessage = The job named testshowdoes not exists or job state is stopped or cancelled ``` Do not use `toLowerCase` method;
新加case注意事项
常规 case
-
变量名前要写 def,否则是全局变量,并行跑的 case 的时候可能被其他 case 影响。
Problematic code:
ret = ***Correct code:
def ret = *** -
尽量不要在 case 中 global 的设置 session variable,或者修改集群配置,可能会影响其他 case。
Problematic code:
sql """set global enable_pipeline_x_engine=true;"""Correct code:
sql """set enable_pipeline_x_engine=true;""" -
如果必须要设置 global,或者要改集群配置,可以指定 case 以 nonConcurrent 的方式运行。
-
case 中涉及时间相关的,最好固定时间,不要用类似 now() 函数这种动态值,避免过一段时间后 case 就跑不过了。
Problematic code:
sql """select count(*) from table where created < now();"""Correct code:
sql """select count(*) from table where created < '2023-11-13';""" -
case 中 streamload 后请加上 sync 一下,避免在多 FE 环境中执行不稳定。
Problematic code:
streamLoad { ... } sql """select count(*) from table """Correct code:
streamLoad { ... } sql """sync""" sql """select count(*) from table """ -
UDF 的 case,需要把对应的 jar 包拷贝到所有 BE 机器上。
兼容性 case
指重启 FE 测试或升级测试中,在初始集群上创建的资源或规则,在集群重启或升级后也能正常使用,比如权限、UDF等。
这些 case 需要拆分成两个文件,load.groovy 和 xxxx.groovy,放到一个文件夹中并加上 restart_fe 组标签,示例。