SeaTunnel 配置问题, 第一次玩,求解答(吐槽一下,提问的标签里没有SeaTunnel)
{
"env": {
"job.mode": "BATCH"
},
"source": [{
"driver": "com.mysql.cj.jdbc.Driver",
"password": "*",
"plugin_name": "jdbc",
"query": "select * from test_user",
"url": "jdbc:mysql://192.168.*.*:3306/test_source",
"user": "root"
}],
"transform": [ {
"after_loc": 4,
"before_loc": 6,
"cover_key": "#",
"dest_field": "id_card",
"plugin_name": "CoverHAT",
"result_table_name": "test_user_bak",
"source_table_name": "test_user",
"src_field": "id_card"
}],
"sink": [{
"driver": "com.mysql.cj.jdbc.Driver",
"password": "*",
"plugin_name": "jdbc",
"query": "insert into test_user_bak values(?,?,?,?,?)",
"url": "jdbc:mysql://192.168.*.*:3306/test_target",
"user": "root"
}]
}
这是单个字段id_card的配置, 用来遮盖的,
结果就是图上这样, 可以运行.
但是一旦transform中有2个以上的转换逻辑,运行是就会报错, 首先要求在source中添加result_table_name,然后添加完运行又要求在sink中添加source_table_name,按要求添加完后就是如下这样了
{
"env": {
"job.mode": "BATCH"
},
"source": [{
"driver": "com.mysql.cj.jdbc.Driver",
"password": "*",
"plugin_name": "jdbc",
"query": "select * from test_user",
"url": "jdbc:mysql://192.168.*.*:3306/test_source",
"user": "root",
"result_table_name": "test_user_bak"
}],
"transform": [{
"cover_key": "*",
"dest_field": "remark",
"end_loc": 9,
"plugin_name": "CoverBody",
"result_table_name": "test_user_bak",
"source_table_name": "test_user",
"src_field": "remark",
"start_loc": 4
}, {
"cover_key": "*",
"dest_field": "mail",
"plugin_name": "CoverBefore",
"result_table_name": "test_user_bak",
"source_table_name": "test_user",
"special_key": "@",
"src_field": "mail"
}, {
"after_loc": 4,
"before_loc": 6,
"cover_key": "#",
"dest_field": "id_card",
"plugin_name": "CoverHAT",
"result_table_name": "test_user_bak",
"source_table_name": "test_user",
"src_field": "id_card"
}],
"sink": [{
"driver": "com.mysql.cj.jdbc.Driver",
"password": "*",
"plugin_name": "jdbc",
"query": "insert into test_user_bak values(?,?,?,?,?)",
"url": "jdbc:mysql://192.168.*.*:3306/test_target",
"user": "root",
"source_table_name": "test_user"
}]
}
这时候运行就会报错如下:
实在是不知道怎么解决, 求了解seatunnel的各位解答下, 可以肯定的是表都有.
不要给我GPT的没用的答案,都说了表都有, 单个转换可以正常运行, 多个不行, 还给我奇奇怪怪的回答, 一看就和我自己提问GPT回答的一样, 没意思.
根据你提供的配置信息,问题出现在多个转换逻辑时。根据报错信息,要求在source
中添加result_table_name
,然后在sink
中添加source_table_name
。你已经按要求进行了添加,但仍然报错。
根据你的配置信息,首先要确认以下几点:
test_user
和test_user_bak
这两个表在数据库中都存在,并且具有相应的字段。如果上述检查都没有问题,那么报错可能是由于其他原因引起的。这种情况下,我们需要进一步分析报错信息以确定问题所在。可以提供完整的报错信息或日志,以便更好地帮助你解决问题。
请提供完整的报错信息或日志,以便更准确地定位问题并给出解决方案。
确认下 你的这个数据库 test_source 中确实存在 test_user 这个表 么?