Hive / Imapala - 执行删除子句:`从[TABLE] WHERE [CONDITION]`删除

时间:2016-07-01 07:54:35

标签: hive overwrite impala partition

从浏览网页 - 我理解DELETE& Impala / Hive不支持UPDATE子句。我正在尝试为此案例找到解决方法。 我尝试使用INSERT OVERWRITE子句执行它但没有成功:\

我有一个分区表,其中包含:user_id,day,month,year (分日期,月份,年份)。

假设每个日期有1行(每个日期由这3个分区列表示),我想删除2016-05-01的行

如果我使用MySQL,我会写:

DELETE FROM tblname WHERE year = 2016 and month = 5 and day = 1

我如何在Hive / Impala上执行它?

谢谢!

1 个答案:

答案 0 :(得分:0)

对数据进行分区,使您要删除的行(使用窗口函数row_number)位于分区中。然后,您可以删除分区而不会影响表的其余部分。这是一个相当可持续的模型,即使您的数据集变得非常大。

有关分区的详细信息。

www.tutorialspoint.com/hive/hive_partitioning.htm