现状
使用DataX从生产DB拉取数据时,正常的业务场景我们都是通过增量拉取做Merge的方式来限制抽取的数据量,但存在以下几种情况需要做大数据量的同步:
- 大表全量初始化
- 生产表存在物理删除,需要每天做全量同步
- 日志表,每天即使增量,仍然会有大量数据
虽然同步数据都是从生产DB的slave节点取数,但大数据量的同步,长时间访问也可能会导致Slave节点的性能下降。
方案
- 获取生产表主键列(要求是数值类型,否则取datachange_lasttime)的最大值/最小值
- 指定分批次数,通过上述的最值的差计算出单次步长,分批同步至Hive