Hive数据库操作
来源:互联网 发布:seo sem是什么工作 编辑:程序博客网 时间:2024/06/05 02:34
Hive部署完成后我们就要来使用了
一、数据库创建
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_name=property_value, ...)];
我们可以按照官网给出的格式来创建数据库
1、创建一个最简单的数据库
hive> create database IF NOT EXISTS hive;OKTime taken: 0.333 seconds
查看
hive> show databases;OKdefaulthiveTime taken: 0.022 seconds, Fetched: 2 row(s)
查看hive在HDFS上的目录
[root@hadoop001 soft]# hadoop fs -ls /user/hive/warehouse/Found 1 itemsdrwxr-xr-x - root root 0 2017-09-16 12:01 /user/hive/warehouse/hive.db
2、创建数据库时给数据库加上注释,指定数据库在HDFS上存储的位置,数据库属性
hive>create database IF NOT EXISTS hive2 COMMENT 'This is my frist hiveDB' LOCATION '/ruoze/db/' WITH DBPROPERTIES ('creator'='Bob','date'='2017-08-17');
查看hive2 在HDFS上的位置
[root@hadoop001 soft]# hadoop fs -ls /ruoze/db/
可以看到当我们创建数据库时指定了数据库存储位置后,在HDFS上并没有hive2.db这样的文件。
接下来我们在hive2这个数据库当中创建一个表
hive> use hive2;OKTime taken: 0.048 secondshive> create table hive_table(id int );OKTime taken: 1.005 seconds
再来执行hadoop fs -ls /ruoze/db/看看
[root@hadoop001 soft]# hadoop fs -ls /ruoze/db/Found 1 itemsdrwxr-xr-x - root root 0 2017-09-16 12:23 /ruoze/db/hive_table
所以我们不采用默认的数据库存储路径(/user/hive/warehouse/)后,我们指定的数据库存储路径可以理解为一个数据库。
二、查看数据库的属性值
上面我们创建数据库时为数据库添加了COMMENT 、LOCATION 、WITH DBPROPERTIES信息,那么这些信息在哪里查看呢?
在这里就要说一下hive的数据了
hive的数据分两种,一种是data,一种metadata(元数据)
data存储在HDFS
metadata存储在MySQL
我们为数据库添加的附加信息就是存储在mysql当中。
无论是在hive当中创建数据库还是表,在HDFS上都有与之对应的目录存在
mysql> select * from DBS \G;*************************** 1. row *************************** DB_ID: 1 DESC: Default Hive databaseDB_LOCATION_URI: hdfs://mycluster/user/hive/warehouse NAME: default OWNER_NAME: public OWNER_TYPE: ROLE*************************** 2. row *************************** DB_ID: 11 DESC: NULLDB_LOCATION_URI: hdfs://mycluster/user/hive/warehouse/hive.db NAME: hive OWNER_NAME: root OWNER_TYPE: USER*************************** 3. row *************************** DB_ID: 16 DESC: This is my frist hiveDBDB_LOCATION_URI: hdfs://mycluster/ruoze/db NAME: hive2 OWNER_NAME: root OWNER_TYPE: USER3 rows in set (0.00 sec)ERROR:No query specified
在DBS当中可以看到hive2的COMMENT、LOCATION
hive2的WITH DBPROPERTIES信息存储在DATABASE_PARAMS
mysql> select * from DATABASE_PARAMS \G;*************************** 1. row *************************** DB_ID: 16 PARAM_KEY: creatorPARAM_VALUE: Bob*************************** 2. row *************************** DB_ID: 16 PARAM_KEY: datePARAM_VALUE: 2017-08-172 rows in set (0.00 sec)ERROR:No query specified
三、删除数据库
官网删除数据库语法格式
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];
删除hive数据库(里面没有表存在)
hive> drop database if exists hive;OKTime taken: 0.477 seconds
删除hive2数据库(里面存在表hive_table)
hive> drop database if exists hive2;FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidOperationException(message:Database hive2 is not empty. One or more tables exist.)
此时会报错,因为hive2并不是一个空数据库,如果想删除成功
就要加CASCADE(级联)关键字
hive> drop database if exists hive2 CASCADE;OKTime taken: 2.156 seconds
- Hive 6. 数据库操作
- Hive数据库操作
- Hive数据库操作
- HIVE数据库的基本操作
- Hive 操作数据库语句总结
- Hive 操作数据库语句总结
- Hive 操作数据库语句总结
- Hive 操作数据库语句总结
- Hive-命令行基本操作和java API访问hive数据库
- hive元数据库表分析及操作
- Gradle实战:执行sql操作hive数据库
- Hive数据库及表的基本操作
- Hive 数据库仓库的基本操作
- Hive元数据库表分析和操作
- Hive中对数据库,表的操作
- Hive命令行常用操作(数据库操作,表操作)
- Hive命令行常用操作(数据库操作,表操作)
- hive操作
- JAVA字符串池问题/String对象创建问题
- 4.I/O
- To My Girlfriend HDU
- Spring DI依赖注入setter,构造,注解,三种依赖方式的总结
- CCF-CSP-火车购票
- Hive数据库操作
- 基数排序
- HDU
- MYSQL 左连 右连 内连等笔记(附带一张很棒的区别图)
- C# 备份、还原、拷贝远程文件夹
- 判断集合是否包含元素list.contains(Object obj)
- iOS 开发-一篇短文教你快速掌握 runtime 和 KVO
- 传输层与应用层的关系
- Web前端性能优化的9大问题