DELETE FROM table_name Cloudera Impala

时间:2016-04-12 09:45:44

标签: hadoop impala hadoop-partitioning

我是Impala的新手,我试图了解如何从表格中删除记录...... 我试过寻找删除命令,但没有找到可理解的说明...

这是我的表结构:

create table Installs (BrandID INT, PublisherID INT, InstallDate STRING, HourNum INT, Country STRING, Installs INT) PARTITIONED BY (day INT, month INT, year INT) STORED AS PARQUET

Hadoop中是否可以删除? 语法如何工作? 任何帮助对我都有很大帮助...谢谢你:)。

2 个答案:

答案 0 :(得分:2)

参考书籍 - learning-cloudera-impala

  

Impala不支持删除或删除表中的行。另一种方法是删除表或将所需数据迁移到其他表,然后删除整个原始表。

     

要模拟其他数据库系统中UPDATE或DELETE语句的影响,通常使用INSERT或CREATE TABLE AS SELECT将数据从一个表复制到另一个表,在复制操作期间过滤掉或更改相应的行。

work around

答案 1 :(得分:1)

简短回答:不,Impala不支持DELETE。解决方法是使用您想要删除的数据重写表数据。

Cloudera Impala虽然支持SQL并且可以用于数据仓库工作负载,但它不像传统的RDBMS。与Hive一样,它将文件存储在HDFS中(并且可以通过多种方式与Hive互操作),因此,它可以在块中存储非常大的文件。

因此,它与它所依赖的HDFS一样,并不是为了有效删除数据而设计的。