全量数据同步

全量数据同步

针对人员表,订单表一类表而言,该类表的变化包括更新、删除、新增。在对这个表进行同步的过程中,由于目前大数据的组件在update的功能上有所欠缺,只能使用其他方式来对大数据量的表进行同步。

这里使用阿里在大数据实践中所应用的方法:full outer join合并+ insert overwrite

-- 最终表
create table ods_user(
	uid int;
	uname varchar(255);
	gender varchar(255);
  	address varchar(255);
	create_time timestamp;
);

-- 增量记录表
create table ods_user_tmp(
	uid int;
	uname varchar(255);
	gender varchar(255);
  	address varchar(255);
	create_time timestamp;
);

每天我们可以得到增量表ods_user_tmp

使用全外连接插入全量同步表数据(包括:新增,更新,删除)

insert overwrite table ods_user
select
	case when b.uid is not null then b.uid else a.uid end as uid,
	case when b.uid is not null then b.uname else a.uname end as uname,
  	case when b.uid is not null then b.gender else a.gender end as gendere,
  	case when b.uid is not null then b.address else a.address end as address,
  	case when b.uid is not null then b.create_time else a.create_time end as create_time
from 
ods_user a
full outer join ods_user_tmp b
on a.uid = b.uid;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ho_adam

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值