Hive中数据库的操作
·查看数据库列表
hive(default)> show databases;
·选择数据库
hive(default)> use default;
default是默认数据库,默认就在这个库里面
hive的数据都是存储在hdfs上,那这里的default数据库在HDFS上是如何体现的?
在hive-site.xml中有一个参数hive.metastore.warehouse.dir
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default for the warehouse</description>
</property>
它的默认值是/user/hive/warehouse,表示hive的default默认数据库对应的hdfs存储目录。
HDFS上确实有这个目录,并且这个目录下还有一个t1目录,其实这个t1就是我们前面在default数据库中创建的那个t1表,从这可以看出来,hive中的数据库和hive中的表,在hdfs上面的体现其实都是目录。
这个默认数据库的信息在Metastore中也有记录,在dbs表中
• 创建数据库
hive (default)> create database mydb1;
到metastore中确认一下
在创建数据库的时候通过location来指定hdfs目录的位置
hive (default)> create database mydb2 location '/user/hive/mydb2';
到HDFS上确认一下
• 删除数据库
hive (default)>drop database mydb1;
注意:default默认数据库无法删除!
Hive中表的操作
·创建表
hive (default)> create table t2(id int);
·查看表信息
hive (default)> show tables;
·查看表结构信息
hive (default)> desc t2;
·查看表的创建信息
hive (default)> show create table t2;
从这里的location可以看到这个表在hdfs上的位置。
注意了:表中的数据是存储在hdfs中的,但是表的名称、字段信息是存储在metastore中的
到metastore中看一下
先看tbls表,这个里面中存储的都是在hive中创建的表
可以看到DB_ID 为1
可以到dbs表中看到默认default数据库的id就是1。
TBL_NAME 是这个表的名称。
在表COLUMNS_V2中存储的是Hive表的字段信息(包含字段注释、字段名称、字段类型、字段顺序)
其中的CD_ID和tbls中的TBL_ID相等
·修改表名
hive (