datax使用starrockswriter,目标端部分列为衍生列,会报字段数不符

2.2.2版本,通过datax同步数据至starrocks,目标端有两个列是通过计算得到值(mercid_hash,shard_key).运行时会报字段数不匹配,是我配置的不对吗?

错误信息:

  • 列配置信息有错误. 因为您配置的任务中,源头读取字段数:128 与 目的表要写入的字段数:130 不相等. 请检查您的配置并作出修改.

源端抽取语句:
“querySql”: [
“select hstdat,mercid,logno,…,txn_field_flg4,txn_field_flg5 from NEWSDUSER.postxnjnlhis where 1=1 and hstdat between ‘20220701’ and ‘20220701’”
],
目录端:
“writer”: {
“name”: “starrockswriter”,
“parameter”: {
“username”: “/1U00Xkqg53FXqvWaC/6Lg==”,
“password”: “Q4z3NkAMJPPHB8qT7EVusw==”,
“database”: “sjzx_db”,
“table”: “postxnjnlhis_his_sr”,
“column”: [
hstdat”,
mercid”,
logno”,

txn_field_flg5”,
“mercid_hash = murmur_hash3_32(mercid)”,
“shard_key = murmur_hash3_32(logno)”
],

您好,测试了下。把衍生列的产生放在source端抽取的sql里面才可以哦。

解决了,附上官方大佬提供的解决方案

column里不加衍生列,reader也不用改,在loadProps里加一个columns: 自定义header加上衍生列就行

reader:

“querySql”: [“select a, b from xxxx”]

writer:

column:[ “a”, “b” ],
loadProps: {
columns: “a,b,c=murmur_hash3_32(a)”
}