hive数据库概念和基本操作

hive数据库:
概念:
hive中的数据库本质上仅仅是表的一个目录或命名空间。对于具有很多用户和组的大集群而言,这种方式可以避免表的命名冲突。通常会使用数据库来将生产表组织成逻辑组。
示例:
本地模式配置了数据库的统一存放目录为~/hive/warehouse,那么创建的所有数据库都存在该目录下,以.db结尾:
learn_hadoop@linux-hr0n:~> ls ~/hive/warehouse/
devel.db  human_resources.db

数据库关键字:
database(DATABASE)

创建数据库:
hive> create database if not exists testdb;
OK
Time taken: 0.357 seconds
其中,if not exists表示只有在不存在testdb时才创建该数据库。创建完成后,在~/hive/warehouse目录下可以看到新建的testdb.db。

显示所有数据库:
hive> show databases;
OK
default
devel
human_resources
testdb
Time taken: 0.021 seconds, Fetched: 4 row(s)

使用正则表达式筛选并显示数据库:
hive> show databases like "h*";
OK
human_resources
Time taken: 0.017 seconds, Fetched: 1 row(s)

在创建数据库时指定数据库存放路径:
hive> create database if not exists testdb1 location '/home/xxx/hive/warehouse1';
OK
Time taken: 0.02 seconds
注意:location后接的路径必须是绝对路径!!!

在创建数据库时为数据库添加注释:
hive> create database if not exists testdb2 comment 'test db2';
OK
Time taken: 0.02 seconds

显示某个数据库的详细信息:
hive> describe database testdb1;
OK
testdb1         file:/home/xxx/hive/warehouse1  xxx     USER
Time taken: 0.026 seconds, Fetched: 1 row(s)

为数据库增加相关的键值对属性:
hive> create database if not exists testdb3 with dbproperties('creator' = 'learn_hive', 'date' = '2018-05-03');
OK
Time taken: 0.078 seconds

显示额外增加的相关属性:
hive> describe database extended testdb3;
OK
testdb3         file:/home/xxx/hive/warehouse/testdb3.db        xxx     USER    {date=2018-05-03, creator=learn_hive}
Time taken: 0.027 seconds, Fetched: 1 row(s)

由于可以创建多个数据库,那么需要有命令能够在多个数据库之间切换,hive提供了use命令。假设当前正在使用testdb3,想要切换到testdb2:
hive> use testdb2;
OK
Time taken: 0.034 seconds

在hive shell下显示当前使用的数据库:
hive> set hive.cli.print.current.db=true;
hive (testdb2)>

删除数据库:
hive> drop database if exists testdb1;
OK

Time taken: 0.46 seconds


猜你喜欢

转载自blog.csdn.net/u011376563/article/details/80181372