繁体   English   中英

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

[英]Update delta records in hive table

我有一个表,其中的历史数据大于TB大小,我将每天接收增量(更新的信息)记录,这些记录将以GB大小存储在增量表中。 现在,我想将增量记录与历史记录进行比较,并使用增量表中的最新数据更新历史记录表。

在Hive中执行此操作的最佳方法是什么,因为我将要处理数百万行。 我在网上搜索后发现以下方法。

http://hortonworks.com/blog/four-step-strategy-incremental-updates-hive

但是我认为这不是性能方面的最佳方法。

在最新配置单元(0.14)中,您可以进行更新。 您需要通过搜索键将表保持为ORC格式和存储桶。

哦,我需要添加此链接以获取更多信息: Hive Transactions

另外:您是否拥有良好的分区键,以便更新仅在最新的分区上有效? 最好执行以下操作:

  1. 从所需分区中获取数据到临时表(T1)

  2. 假设T2是带有更新记录的新表。 需要以与T1相同的方式进行分区

  3. 用密钥将T1和T2连接起来,并获取仅存在于T1中而不存在于T2中的密钥。 假设这张桌子是T3
  4. 联合T2和T3创建表T4
  5. 从T1删除先前获取的分区
  6. 将T4插入T1

请记住,这些操作可能不是原子操作,并且在发生第5步和第6步期间,在T1上运行的任何查询都可以得到中间结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM