Hive数据定义

Hive数据定义

Hive中的数据库

创建一个数据库:

命令: CREATE DATABASE financials;

如果数据库存在则会抛出一个错误信息,可以使用以下语句避免在这种情况下抛出错误信息:

命令:CREATE DATABASE IF NOT EXISTS financials;

在创建数据库的时候,后面添加 LOCATION 命令,可以修改数据库存储的默认位置。

命令:CREATE DATABASE IF NOT EXISTS financials
LOCATION '/my/preferred/directory';

在创建数据的时候,后面还可以添加 COMMIT 命令,为数据库增加一个描述信息,这样通过 DESCRIBE DATABASE <database> 命令就可以查看到该信息。 DESCRIBE DATABASE 命令也会显示出这个数据库所在的文件目录位置路径。

命令:CREATE DATABASE IF NOT EXISTS financials

COMMENT 'holds all financials tables';

查看描述命令:DESCRIBE DATABASE financials;

DESCRIBE DATABASE语句的输出中,这里使用了 master-server 来代表URI权限,也就是说应该是由文件系统的“主节点”(例如,HDFS中运行NameNode服务的那台服务器)的服务器名加上一个可选的端口号构成的(例如,服务器名:端口号这样的格式)。
如果用户执行的是伪分布式模式,那么主节点服务器名称就应该是 localhost 。对于本地模式,这个路径应该是一个本地路径,例如 file://user/hive/warehouse/financials.db
如果这部分信息省略了,那么Hive将会使用Hadoop配置文件中的配置项 fs.default.name 作为master-server 所对应的服务器名和端口号,这个配置文件可以在 $HADOOP HOME/conf 这个目录下找到。
需要明确的是,hdfs:/user/hive/warehouse/financials.dbhdfs://master-server/user/hive/ warehouse/financials.db 是等价的,其中 master-server 是主节点的DNS名和可选的端口号

为了保持完整性,当用户指定一个相对路径(例如,some/relative/path)时,对于HDFS和Hive,都会将这个相对路径放到分布式文件系统的指定根目录下(例如,hdfs://user/)。然而,如果用户是在本地模式下执行的话,那么当前的本地工作目录将是some/relative/path的父目录。
为了脚本的可移植性,通常会省略掉那个服务器和端口号信息,而只有在涉及到另一个分布式文件系统实例(包括S3存储)的时候才会指明该信息。

用户还可以为数据库增加一些和其相关的键值对属性信息。

命令: CREATE DATABASE IF NOT EXISTS financials

WITH DBPROPERTIES('creator' = 'Mark Moneybags','date' = '2012-01-02');

查看描述命令:DESCRIBE DATABASE financials;

查看数据库目录:

命令:SHOW DATABASE;

如果数据库非常多,那么可以使用正则表达式来匹配筛选出需要的数据库名

命令:SHOW DATABASE LIKE 'h.*';

Hive 会为每个数据库创建一个目录。数据库中的表将会以这个数据库目录的子目录形式存储。有一个例外就是default数据库中的表,因为这个数据库本身没有自己的目录
数据库所在的目录位于属性 hive.metastore.warehouse.dir 所指定的顶层目录之后。假设用户使用的是这个配置项默认的配置,也就是 /user/hive/warehouse ,那么当我们创建数据库 financials 时,Hive将会对应地创建一个目录 /user/hive/warehouse/financials.db 。这里请注意,数据库的文件目录名是以.db结尾

使用数据库:

命令: USE financials;

删除数据库:

命令: DROP DATABASE IF EXISTS financials;

默认情况下,Hive是不允许用户删除一个包含有表的数据库的。用户要么先删除数据库中的表,然后再删除数据库;要么在删除命令的最后面加上关键字 CASCADE,这样可以使Hive 自

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值