gpt4 book ai didi

hadoop - 更新 hive 表中的增量记录

转载 作者:行者123 更新时间:2023-12-02 21:24:09 24 4
gpt4 key购买 nike

我有一个包含超过 TB 大小的历史数据的表,我每天都会收到 delta(更新的信息)记录,这些记录将以 GB 为单位并存储在 delta 表中。现在我想将增量记录与历史记录进行比较,并使用增量表中的最新数据更新历史表。

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

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

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

最佳答案

在最新的 hive (0.14) 中,您可以进行更新。您需要将表保持为 ORC 格式并按搜索键存储。

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

此外:
您是否有一个好的分区键,以便更新只需要在最新的分区上工作?最好执行以下操作:

  • 从所需分区获取数据到临时表 (T1)
  • 假设 T2 是带有更新记录的新表。需要和T1一样进行分区
  • 将 T1 和 T2 与 key 连接起来,并获取仅存在于 T1 中而不存在于 T2 中的那些。假设这张表是 T3
  • 联合 T2 和 T3 创建表 T4
  • 从 T1
  • 删除之前使用的分区
  • 将 T4 插入 T1

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

    关于hadoop - 更新 hive 表中的增量记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36555331/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com