我最近发现了我称之为错误的内容,我确定它是一个错误。
我们使用带有两个独立存储的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
命令上......
我错过了什么吗?或者这是正常的行为?
答案 0 :(得分:0)
如果有人看到此旧帖子并遇到相同的问题:我们的问题是我们错过了对蜂巢回收站( / user / hiveUserName /。Trash HDFS文件夹)。
希望这会有所帮助!