hive 之 insert into 和 insert overwrite 的区别和用法(实战)

相信在工作中,很多小伙伴会遇到脚本有insert into 和 insert overwrite 的内容,接下来咱具体说说,他们有什么不一样的地方,为什么要这么用???

------------------------------------------------------------------------------------------

0,insert into 和 insert overwrite 的含义

insert into :是把数据追加写入一张表里面,可以N次追加;

insert overwrite : 是把本次数据覆盖目标表里原先的数据(不管它原本有没有!),本质是先把目标表的数据清空 truncate,然后对其 insert into 写入数据。

1, insert into 和 insert overwrite 的相同点

相同点,他们都可以对目标表写入数据。

虽然说 insert into 和 insert overwrite ,看着似乎差不多。

但是在工作中,用错可能会酿成大错,让你一世英名尽毁于你手。

2, insert into 和 insert overwrite 不同点

不同点在于, insert into 是对于目标表追加数据的,对的,是追加!!!

                   insert overwrite 会对目标表数据进行覆盖,对的,是覆盖!!!

先来看看工作中都会咋用到:

3,insert into 和 insert overwrite 的实战

3.1,开发脚本前,先设置各种参数,以提高mapreduce计算的效率。

3.2,创建临时表,顺便存储所需要的一些数据。

3.3,如果还有别的业务,也一块把数据(追加)写入,用insert into。

3.4,最终把囊括所有业务数据的数据集(临时表的数据),去(insert overwrite)覆盖目标表。

4,实战问题:

为什么不能把多段业务数据,分批次(追加 insert into)写入目标表呢?

不一样的效果嘛?

emmmmm说来话长。。。。。。。。。。。。。。。。。。。。。

目标层的表,每天都会进行跑数,很多的目标表都是带分区的,每天跑批的数据写入当天的分区。

4.1,如果用 insert  into 写入目标表,万一该脚本在生产上跑数报错了(原因很多,比如,生产资源特别紧张,脚本一直卡那半天也没有继续跑下去,会中止跑数,报错),那么可能数据写入一半,就中止了。然后yarn又再次发起命令重新调起该脚本重新执行跑数,对目标表又再次写入(追加)数据了!!!

那请问,这数据全嘛?是下游想要的嘛?又能用嘛?数据重复,不占存储不烧钱嘛?该死。

4.2,那如果换成 insert overwrite ,遇到上述各种问题导致跑数失败,没关系,不要紧。再重跑,insert overwrite 会把之前的瑕疵数据覆盖掉(就是先删除,再写入数据),就可以完美解决了。

5,总结 insert into 和 insert overwrite 的优缺点

========优缺点:========

insert  into 更加便捷,如果说脚本逻辑过于复杂,MR计算难度过大,它可以完美解决,把复杂变为简单,提高计算效率。

再者,如果要写入的数据量太大,资源内存有限一次性加载不出来这么多数据(一般银行以1亿条数据为准),只能分批次写入目标表!

insert overwrite 更加安全,即使脚本因为各种问题出错导致之前数据写入目标表有瑕疵,但后面只要跑成功,可以把瑕疵数据覆盖,总是可以呈现一份完美的数据在你眼前。

当然,两者学会 搭配使用,就无敌了!!

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不被定义喵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值