目前做的项目使用阿里 DataX 作为不同数据源数据同步的实现工具。数据的批量一次性导入比较简单,对于增量数据需要对不同场景设计不同的方案。
会变的数据增量同步
每天全量同步
如人员表、订单表一类的会发生变化的数据,根据数据仓库的4个特点里的反映历史变化的这个特点的要求,我们建议每天对数据进行全量同步。也就是说每天保存的都是数据的全量数据,这样历史的数据和当前的数据都可以很方便地获得。
设定日分区,每天同步全量数据。
--全量同步
create table ods_user_full(
uid bigint,
uname string,
deptno bigint,
gender string,
optime DATETIME
) partitioned by (ds string);
查询全量用 where 分区 语句
如 where ds = "2017-10-19"
每天增量同步
真实场景中因为某些特殊情况,需要每天只做增量同步。又因为目前流行的大数据平台都不支持 Update 语句进行修改数据,只能用其他方法来实现。
两个表,结果