DataWorks百问百答66:数据集成如何快速配置分表同步任务?

源端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钉钉交流群】

上一篇:关于桌面快捷方式


下一篇:DataWorks产品月刊合集