hive 查出A(每天记录)表有而B(历史)表没有的数据(适用于增量添加数据)

问题描述

有的表每天会记录服务器当天的记录,每天会收集当天记录到大数据仓库当中,作为数据工作者的我们,不仅要保证不漏掉历史记录,而且要避免冗余存储,我们把每天都传过来的日数据表称为A表,存储所有记录的表称为B表。

插入新增或者有变化的sql

insert into table history_table 
select A.col1,A.col2,A.col3 .... ,A. colN from 
(   select col1,col2,col..... 
	from daily_table)  A 
left outer joinselect col1,col2,col..... 
	from history_table ) B
on A.col1=B.col1 and A.col2=B.col2 and ....
where B.col1 is null

对上述sql的解释

只考察部分字段有区别才视为新纪录的话,join 的on 条件里面省去不考察的字段,
where 条件只要任意考察字段为空 就能选出新纪录,因为有一个条件不一样, 右表所有字段都为NULL。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值