我一直在阅读一些HIVE的书籍和教程。其中一本书 - Hadoop in Practice说:
当您创建一个外部(非托管)表时,Hive会保持由LOCATION关键字指定的目录中的数据完整。但是,如果您执行相同的CREATE命令并删除EXTERNAL关键字,则该表将成为托管表,并且Hive将移动LOCATION目录的内容到/user/hive/warehouse/stocks中,这可能不是您所期望的行为。
我使用LOCATION关键字创建了一个托管表。然后从HDFS文件向表中加载数据。但是我在/user/hive/warehouse下没有看到任何目录被创建。而是在LOCATION中创建了新目录。所以我认为如果我使用LOCATION关键字创建托管表,那么在Hive warehouse目录中就不会创建任何内容?这个理解正确吗?
另外,如果LOAD命令中输入文件的位置是hdfs,则内部或外部表都会将数据移动到它们的位置。这个理解也正确吗?
当您创建一个外部(非托管)表时,Hive会保持由LOCATION关键字指定的目录中的数据完整。但是,如果您执行相同的CREATE命令并删除EXTERNAL关键字,则该表将成为托管表,并且Hive将移动LOCATION目录的内容到/user/hive/warehouse/stocks中,这可能不是您所期望的行为。
我使用LOCATION关键字创建了一个托管表。然后从HDFS文件向表中加载数据。但是我在/user/hive/warehouse下没有看到任何目录被创建。而是在LOCATION中创建了新目录。所以我认为如果我使用LOCATION关键字创建托管表,那么在Hive warehouse目录中就不会创建任何内容?这个理解正确吗?
另外,如果LOAD命令中输入文件的位置是hdfs,则内部或外部表都会将数据移动到它们的位置。这个理解也正确吗?