hive 有没有update_Hive:在主表上执行递增更新的最佳方法

如果您无法使用ACID模式进行更新,MERGE则可以使用FULL OUTER JOIN进行更新。要查找将要更新的所有条目,您需要使用旧数据加入增量数据:insert overwrite target_data [partition() if applicable]SELECT  --select new if exists, old if not exists  case when i.PK is not null then i.PK   else t.PK   end as PK,

case when i.PK is not null then i.COL1 else t.COL1 end as COL1,

...

case when i.PK is not null then i.COL_n else t.COL_n end as COL_n

FROM

target_data t --restrict partitions if applicable

FULL JOIN increment_data i on (t.PK=i.PK);

可以通过限制将被覆盖和连接的target_data中的分区来优化它。

此外,如果要使用新数据更新所有列,可以将此解决方案应用于UNION ALL+row_number()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值