Hive表数据管理

时间:2016-07-30 22:51:20

标签: hive

我有一个Hive表。如果我要求数据每天都会进入Hive表。如果进入的数据是新记录(插入),则应将记录插入到hive表中,或者如果进入的数据已经存在于hive中(更新),则应更新记录。

任何人都可以解释这是如何在Hive中实现的。

我在线查看我发现了这篇文章。 http://hortonworks.com/blog/four-step-strategy-incremental-updates-hive/

2 个答案:

答案 0 :(得分:0)


有几种方法可以做到这一点,取决于:

  • 您的要求是什么,
  • 你正在使用什么版本的Hive(因为0.14 Hive支持完整的CRUD),
  • 源数据的格式是什么(如果是某些RDBMS,您可以使用Sqoop incremental load)
  • 您需要加载的数据有多大


我认为您发布的链接很好地描述了这个过程,您对所使用的技术非常具体。更一般的描述方式是:

  1. 在源数据上创建外部表
  2. 将新数据附加到目标表
  3. 根据唯一键或时间戳删除重复项(例如,使用GROUP BY)。
  4. 我强烈建议您通过Hive doc并自己弄清楚如何执行每一步:)

    干杯,
    卡罗尔

答案 1 :(得分:0)

"数据将每天进入Hive表" - 是数据提取的一部分。您可以使用Sqoop Incremental Import。有两种方式可以编码。

(1) - 追加,当你知道最后一个值或

时使用

(2)--last modified,当你有一个可用于跟踪插入的DATE列时使用。

对于更新,您可以使用外部表,如您共享的链接中所述。