gpt4 book ai didi

sql - 在 Hive 的 LOCATION 字段中明确指定之前,不会创建数据库目录

转载 作者:可可西里 更新时间:2023-11-01 16:36:36 27 4
gpt4 key购买 nike

我使用以下查询在我的首选位置 (/user/hive/) 创建了一个数据库。

create database test
location "/user/hive/";

创建数据库后,我使用命令 hadoop dfs -ls/user/在位置 /user/hive/ 中检查了 test.db 目录 hive 。它不可用。

后来我使用下面的查询创建了一个默认位置的数据库。

create database test2;

对于数据库test2,可以在默认仓库目录/user/hive/warehouse/下看到test2.db目录

/user/hive/test.db 目录是在我在 LOCATION 文件中明确指定它时创建的,如下所示。

create database test
location "/user/hive/test.db";

由于我是 Hive 的新手,请解释一下。

为什么为我将位置字段指定为 /user/hive/ 的第一个查询创建了 test.db 目录 dint?

指定位置字段后,Hive 将如何工作?

注意:

我正在使用 cloudera 快速启动 VM

hive 版本: hive 1.1.0-cdh5.13.0

最佳答案

这是 Hive 的预期行为

create database test location "/user/hive/";

通过执行上述语句意味着您正在创建指向 /user/hive 目录的test 数据库,这就是 hive 没有创建测试目录的原因。

我们还需要在需要指向 hive 中的数据库的地方明确提及目录名称,即 create database test location "/user/hive/test.db"; then only hive creates test db pointing到 test.db 目录。

create database test2; 语句的情况下,我们正在创建数据库而不指定位置,因此该目录在默认配置单元仓库位置下创建,名称与数据库名称相同。

关于sql - 在 Hive 的 LOCATION 字段中明确指定之前,不会创建数据库目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51346413/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com