有没有办法检查插入操作时插入Hive表中的行数?

时间:2018-02-10 21:10:38

标签: sql hadoop hive

在hive表中进行插入操作时所有数据插入正常,但是我需要知道当一些网络问题发生时我是否要在hive表中插入1000条记录,因此作业将失败,然后hive作业被停止有500条记录,所以我再次需要开始相同的hive作业插入,因为在那种情况下重复将发生我想是这样的,那么如何避免这种重复插入,我需要在我当前的工作中得到我的最后一个插入记录行如果有人意识到这一点,请告诉我。如何归档这种情况会对我有所帮助。谢谢。

  

How to delete duplicate records from Hive table?

对于此链接,将解释如何删除插入后的重复记录我不想这样做,而且我也不想存储另一个重复的表。

1 个答案:

答案 0 :(得分:0)

Hive工作将转换为MR工作。 在插入操作期间,Hive会

  1. 将数据写入登台目录(不是目标目录)
  2. 将所有内容从登台目录移至目标目录
  3. 所以通常你不需要担心这一点,如果插入操作失败了一半就没有重复的数据,因为它们在登台目录中,直到整个作业成功。 / p>

    如果您想获得多少行,只需运行

    即可
    select count(*) from $table;
    

    通常,hive会为DML操作保存元数据,因此通常会立即返回,而不会增加额外的MR作业。