问题
大家在进行数据同步时,从MySQL(RDS)里拉数据的情景比较多,尤其是在一些大型的工程中,往往面临着分库分表的场景。比如有多个库,每个库下有多个表,如果针对每一个表都去配置一个同步任务,那么工作量将是非常繁重的。那有没有好方法呢来一次性的同步多个表呢?答案当然是肯定的,下面就详细介绍下这里的技巧。
同步一个库下的多个表
在数据集成的向导模式下,配置好MySQL的数据源后,在选择表的输入框里,可以不停的输入表名称的,凡是选中的表,都会被这个任务一次性的同步到目的端去。
【注意事项】
这里面选择的多个表的schema需要保持一致,否则执行时会报错。
如下图虽然是选择了多个表,但是配置字段映射时,其实只会调取第一个表的schema,并不会报错,但任务执行时就会报错了。
同步表名有规律的高级技巧
上面的模式对于一般情况下可能最够使用了,但是还有些用户的表非常多,比如几百个,即便是一个个去选择,也是个非常累的事情,但是这些表的命名都很有规律,比如table_001, table_002, table_003,.... table_xxx,此时切换到脚本模式后,使用特殊命名的方法就可以一次性设置所有表了,如下图。
具体参数的使用请参考MySQL Reader。
同步多个库下多个表
如果要一次性同步多个库下多个表,也是可以在向导模式下配置的,只需要点击“添加数据源+”就可以增加一个数据源了,而一个数据源对应一个库,由此也就实现了同步多库多表
设置多库之后的效果:
如果每个库下还有多个表命名有规律,此时依旧可以切换到脚本模式,然后使用特殊表名命名规则来支持。
总结
使用数据集成可以灵活的支持MySQL(RDS)分库分表场景,一次性简单的配置,即可以满足大批量下数据同步的需求,避免了枯燥单调的大量任务工作。您还不赶紧试一试?
DataWorks百问百答历史记录 请点击这里查看>>
更多DataWorks技术和产品信息,欢迎加入【DataWorks钉钉交流群】