Hive插入覆盖到HBase不起作用

时间:2015-05-13 20:29:45

标签: java hive hbase

Hive'insert overwrite table'似乎无法正常工作。

我有以下Hive查询:

from my_input_table
  insert into      table my_output_table     where ...
  insert overwrite table my_output_table_tmp where ...

如果不是表名,则上面的insert语句是相同的。 my_output_tablemy_output_table_tmp都是HBase个表格。看起来第二个插入(覆盖)无法正常工作,因为数据不断添加到表中(内容永远不会被替换)。即使经过2次或更多次迭代,my_output_table和my_output_table_tmp的内容也是相同的。

1 个答案:

答案 0 :(得分:0)

我相信这是预期的行为。我也经历过同样的事情。 如果使用Hbase存储处理程序在Hbase中创建配置单元表,则无法执行INSERT OVERWRITE。它不会抛出任何异常,但同时它不会删除现有记录。而只是简单地把新记录。

所以在某种程度上INSERT和INSERT OVERWRITE都是一样的。

还有一件事,你甚至无法从蜂巢中截断表格。

hive> truncate table hbase_table_1;
FAILED: SemanticException [Error 10147]: Cannot truncate non-native table hbase_table_1.

但是您可以从Hbase端执行删除/更新操作。它将反映在蜂巢中。