每天跑批的增量数据导入到增量表的方式

本文探讨了在Hive中实现全量表与增量表数据同步的三种策略:通过左连接过滤增量数据、利用分区字段进行动态分区插入以及在全量表中增加字段并按条件更新。每种方法适用于不同场景,如数据量大小和实时性需求。

逻辑一

INSERT OVERWRITE TABLE tablename_1(全量表)
SELECT A.* 
  FROM tablename_1 A
  LEFT JOIN tablename_2(增量表) B
    ON A.ID = B.ID
 WHERE B.ID IS NULL
 UNION ALL
SELECT B.* 
  FROM tablename_2 B

逻辑二
全量表建表时增加一个分区字段(requestdt)
PARTITIONED BY (requestdt date)
(数据量较多时,比如一些主表 推荐使用)

set hive.exec.dynamic.partition = true;
set hive,exec.dynamic.partition.mode = nonstrict;

INSERT OVERWRITE TABLE tablename_1(全量表) PARTITION(requestdt)
SELECT B.*
  FROM tablename_2(增量表) B

逻辑三
全量表增加一个字段(requestdt)
(数据量不多的情况 推荐使用)

CREATE TABLE tablename_1(
requestdt DATE COMMENT '查询时间',
...
)
;
INSERT OVERWRITE TABLE tablename_1(全量表)
SELECT A.*
  FROM tablename_1 A 
 WHERE A.requestdt <> "${ETLDATE}"
 UNION ALL 
SELECT B.*
  FROM tablename_2 B
 (这里也可以做一些简单的数据逻辑处理)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值