更新配置单元表中的增量记录

af7jpaap  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(342)

我有一个超过tb大小的历史数据表,我将每天接收增量(更新信息)记录,这些记录将以gb大小存储在增量表中。现在我想比较delta记录和历史记录,并用delta表中的最新数据更新历史表。
既然我要处理数以百万计的行,那么在Hive中这样做的最佳方法是什么呢。我在网上搜索了一下,找到了下面的方法。
http://hortonworks.com/blog/four-step-strategy-incremental-updates-hive
但我不认为这是一个最好的方法在性能方面。

hgtggwj0

hgtggwj01#

在最新的配置单元(0.14)中,可以进行更新。您需要将表保持为orc格式,并通过搜索键保存bucket。
哦,我需要添加这个链接来获取更多信息:配置单元事务
另外:您是否有一个好的分区键,以便更新只需要在最新的分区上工作?可以做以下几点:
从所需分区获取数据到临时表(t1)
假设t2是具有更新记录的新表。需要以与t1相同的方式进行分区
用键连接t1和t2,取只存在于t1而不存在于t2的键。假设这张table是t3
合并t2和t3以创建表t4
从t1中删除以前使用的分区
将t4插入t1
请记住,这些操作可能不是原子的,在执行步骤5和6期间,在t1上运行的任何查询都可能有中间结果。

相关问题