Hive托管表不会掉落在azure数据湖商店中

时间:2018-06-17 08:58:14

标签: azure hive hiveql azure-data-lake hdinsight

我最近发现了我称之为错误的内容,我确定它是一个错误。

我们使用带有两个独立存储的HDInsight 3.6的天蓝色平台:blobstorage和数据湖存储。 在我们工作的大部分时间里,我们使用Hive。

根据我们所知,当您删除托管表时,此表下的数据也会下降。 为了确保这一点,我们尝试了这个:

CREATE TABLE test(id String) PARTITIONED BY (part String) STORED AS ORC ;
INSERT INTO TABLE PARTITION(part='part1') VALUES('id1') ; 
INSERT INTO TABLE PARTITION(part='part2') VALUES('id2') ; 
INSERT INTO TABLE PARTITION(part='part3') VALUES('id3') ; 

这些查询在默认数据库上执行,即在blob存储上执行。 数据存储在表 test 的位置下:如果我们检查我们有三个目录 part = * ,其下有文件。

然后我放弃了桌子:

DROP TABLE test ;

如果我们检查数据库目录,则没有更多名为 test 的目录,因此数据被很好地删除,我们希望这是正确的配置单元行为。

现在就是诀窍:对于我们的工作,我们使用位于datalake商店的数据库,当我们使用此代码时:

use database_located_on_adl ; 
CREATE TABLE test(id String) PARTITIONED BY (part String) STORED AS ORC ;
INSERT INTO TABLE PARTITION(part='part1') VALUES('id1') ; 
INSERT INTO TABLE PARTITION(part='part2') VALUES('id2') ; 
INSERT INTO TABLE PARTITION(part='part3') VALUES('id3') ; 
DROP TABLE test ;

表格创建得很好,数据存储得很好但是数据没有放在DROP TABLE命令上......

我错过了什么吗?或者这是正常的行为?

1 个答案:

答案 0 :(得分:0)

如果有人看到此旧帖子并遇到相同的问题:我们的问题是我们错过了对蜂巢回收站( / user / hiveUserName /。Trash HDFS文件夹)。

希望这会有所帮助!