源端Mysql库里,分表(表结构一致,表名前缀一致,且后缀递增)的数据如何快速进行同步任务配置。比如Mysql库中有表“demo1”、“demo2”...“demo500”,这五百张表的表结构完全一致,但表名不一致,在配置mysql同步任务时,是需要将500个表名都写在表名这一列里吗?
解法:在脚本模式中,Reader部分,connection里,找到table这一列,然后通过 "table":[
"demo_[1-500]"] 的方式,快速完成配置。此配置方式数据集成会从第一张表开始轮询,直至第500张表,若其中有表未查到,则任务会失败。以下附上脚本Demo样例:
{
"type":"job",
"version":"2.0",//版本号。
"steps":[
{
"stepType":"mysql",//插件名。
"parameter":{
"column":[//列名。
"id"
],
"connection":[
{ "querySql":["select a,b from join1 c join join2 d on c.id = d.id;"], //使用字符串的形式,将querySql写在connection中。
"datasource":"",//数据源。
"table":[//表名,即使只有一张表,也必须以[]的数组形式书写。
"demo_[1-500]" // 通过正则的方式,会从第一张表开始轮询直至第500张表。
]
}
],
"where":"",//过滤条件。
"splitPk":"",//切分键。
"encoding":"UTF-8"//编码格式。
},
"name":"Reader",
"category":"reader"
},
{//下面是关于writer的模板,您可以查找相应的写插件文档。
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"//错误记录数。
},
"speed":{
"throttle":false,//false代表不限流,下面的限流的速度不生效;true代表限流。
"concurrent":1,//作业并发数。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
DataWorks百问百答历史记录 请点击这里查看>>
更多DataWorks技术和产品信息,欢迎加入【DataWorks钉钉交流群】