Hive笔记之数据库操作
2024-08-27 21:26:16
创建数据库
hive创建数据库的最简单写法和mysql差不多:
create database foo;
仅当名为foo的数据库当前不存在时才创建:
create database if not exists foo;
创建数据库时指定位置,这个位置一般是在hdfs上的位置:
create database foo location '/db/foo';
查看已经创建的数据库:
show databases ;
使用通配符查看foo开头的数据库:
show databases like 'foo.*';
查看创建数据库的语句:
show create database foo ;
hive为每一个数据库创建一个目录,这个数据库中的表将会以子目录的形式放在这个数据库目录下
有一个例外就是default数据库中的表,default数据库没有自己的目录,所以是直接放在/user/hive/warehouse下面的:
同样的,当创建数据库如果没有指定存储位置,默认就是在/user/hive/warehouse/下的:
数据库描述信息
在创建数据库时可以指定描述性信息:
create database foo comment 'this is foo database';
通过describe database可以查看到数据库的详细信息:
describe database foo;
数据库键值对信息
数据库可以有一些描述性的键值对信息,在创建时添加:
create database foo with dbproperties ('own'='cc', 'day'='20180120');
查看数据库的键值对信息:
describe database extended foo;
要修改数据库的键值对信息:
alter database foo set dbproperties ('k1'='v1', 'k2'='v2');
删除数据库
drop database if exists foo;
注意:
默认情况下是不允许直接删除一个有表的数据库的:
删除一个有表的数据库有两种办法:
1. 先把表删干净,再删库。
2. 删库时在后面加上cascade,表示级联删除此数据库下的所有表:
drop database if exists foo cascade;
prompt显示当前数据库名称
如果在一个数据库很多的环境下工作,需要 在不同的库之间切来切去(手动敲查询的时候全使用dbName.table可不是什么好主意…),可能一不小心就忘记自己当前在哪个数据库下了,可以通过设置一个属性改变当前的命令提示符,更专业的说法是prompt(用过CLI界面的应该对这个概念很熟悉),通过设置hive.cli.print.current.db属性可以在hive cli中显示当前数据库的名称,比如当前的数据库名称是foo:
set hive.cli.print.current.db=true
.
最新文章
- BZOJ4662 : Snow
- css小tip
- JavaScript之旅(二)
- mysql获得自增字段下一个值
- Myeclipse的快捷键大全
- 【设计模式六大原则2】里氏替换原则(Liskov Substitution Principle)
- java集合框架1
- AM335x(TQ335x)学习笔记——挂载Ramdisk
- java.sql.SQLException:指定了无效的 Oracle URL
- 怎样用Excel自动排成绩
- Oracle record 解锁
- PAT A1046 Shortest Distance
- 介绍 JSON(摘自网络)
- mysql表分区简述
- [LeetCode&;Python] Problem 504. Base 7
- [Oracle]数据库的Control File 取Dump后的样例
- 逆向---01.Nop、中文字符串搜索、保存修改后程序
- SqlServer2005 海量数据 数据表分区解决难题
- 基于RDBMS的OLAP的解决方案
- ArcGIS Pro体验03——主界面
热门文章
- Linux下CPU信息的查看
- screen.height &;&; screen.width
- how to know iframe is loaded in js
- UVA11248_Frequency Hopping
- UVA10047_The Monocycle
- MySQL 大表备份、改表
- P4645 [COCI2006-2007 Contest#3] BICIKLI
- 【Cf #292 D】Drazil and Morning Exercise(树的直径,树上差分)
- 【模板】ISAP最大流
- Android 系统回收资源时进程被杀的优先级