我是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中是否可以删除? 语法如何工作? 任何帮助对我都有很大帮助...谢谢你:)。
答案 0 :(得分:2)
参考书籍 - learning-cloudera-impala
Impala不支持删除或删除表中的行。另一种方法是删除表或将所需数据迁移到其他表,然后删除整个原始表。
要模拟其他数据库系统中UPDATE或DELETE语句的影响,通常使用INSERT或CREATE TABLE AS SELECT将数据从一个表复制到另一个表,在复制操作期间过滤掉或更改相应的行。
答案 1 :(得分:1)
简短回答:不,Impala不支持DELETE。解决方法是使用您想要删除的数据重写表数据。
Cloudera Impala虽然支持SQL并且可以用于数据仓库工作负载,但它不像传统的RDBMS。与Hive一样,它将文件存储在HDFS中(并且可以通过多种方式与Hive互操作),因此,它可以在块中存储非常大的文件。
因此,它与它所依赖的HDFS一样,并不是为了有效删除数据而设计的。