好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

hive创建数据库

Databases in Hive 1. 如果在 hive 中未定义数据库的话,这个 “default” 作为默认的数据库。 2. 创建数据库的语法很简单: hive create databasefinancials; 如果 financials 存在的话 , 就会抛出错误,可以这样: hive create databases IF NOT EXISTS fi



Databases in Hive

1. 如果在 hive 中未定义数据库的话,这个 “default” 作为默认的数据库。

2. 创建数据库的语法很简单:

hive> create databasefinancials;

如果 financials 存在的话 , 就会抛出错误,可以这样:

hive> create databases IF NOT EXISTS financials;

3. 在“ database ”相关命令行可以使用“ schema ”代替“ database ”。

4. 如果存在较多的数据库,可以使用相关的表达式, like 或 alike+ 数据库名开头的字母和以 ”.*” 结尾,如:

hive> show databases like ‘f.*’; (f 代表 financial 数据库 )

5.hive 为每个数据库创建一个路径,表在被存储在相应的子路径中。默认的“ default ”的数据库没有自己的路径;数据库的路径这个属性中设置: hive.metastore.warehouse.dir ,其中默认的属性值是 /user/hive/warehouse 。

当数据库 financial 被创建, hive 会为其创建路径为 /user/hive/warehouse 、 financial.db , .db 是数据库名的扩展。

n 你也可以修改默认的路径:

hive> create database financials

> location ‘/my/preferred/directory’;

n 可以为数据库增加解释性内容:

hive> create database financials

> comment ‘holds all financial tables’;

n describe database 命令,也表明了数据库的路径。

n 将 key-values 属性和数据库结合起来,如:

hive> create database financials

> with dbproperties (‘creator=’markMoney’,’data’=’2012-10-18’);

此时描述数据库信息:

hive> describe database extendedfinancials;

n “use” 命令是使某一数据库处于当前使用的数据库:

hive>use financials;

可惜没用命令可以表现出当前正在使用的数据库,因此我们使用 ’use’ 命令设置数据库为当前使用的数据库。因为在 hive 中没有数据库的概念。

6. 设置属性打印出当前的数据库:

hive> set hive.cli.print.current.db=true;

hive (financials)> use default;

hive (default)> sethive.cli.print.current.db=false;

hive> …..

删除数据库: hive> drop database ifexists financials;

默认情况下, hive 是不允许删除含有表的数据库,首先删除表,之后在命令行使用‘ CASCADE ’关键词,同样可以使用‘ RESTRICT ’:

hive> drop database if exists financials cascade;

当数据库被删除,其路径也被删除了。

7. 在‘ DBPROPERTIES ’中可以设置键值对属性。

hive> alter database financials set dbproperties(‘edited-by’=’Joe Dba’);

查看更多关于hive创建数据库的详细内容...

  阅读:60次