Hive笔记之数据库操作
创建数据库
hive创建数据库的最简单写法和mysql差不多:
1 | create database foo; |
仅当名为foo的数据库当前不存在时才创建:
1 | create database if not exists foo; |
创建数据库时指定位置,这个位置一般是在hdfs上的位置:
1 | create database foo location '/db/foo' ; |
查看已经创建的数据库:
1 | show databases ; |
使用通配符查看foo开头的数据库:
1 | show databases like 'foo.*' ; |
查看创建数据库的语句:
1 | show create database foo ; |
hive为每一个数据库创建一个目录,这个数据库中的表将会以子目录的形式放在这个数据库目录下
有一个例外就是default数据库中的表,default数据库没有自己的目录,所以是直接放在/user/hive/warehouse下面的:
同样的,当创建数据库如果没有指定存储位置,默认就是在/user/hive/warehouse/下的:
数据库描述信息
在创建数据库时可以指定描述性信息:
1 | create database foo comment 'this is foo database' ; |
通过describe database可以查看到数据库的详细信息:
1 | describe database foo; |
数据库键值对信息
数据库可以有一些描述性的键值对信息,在创建时添加:
1 | create database foo with dbproperties ( 'own' = 'cc' , 'day' = '20180120' ); |
查看数据库的键值对信息:
1 | describe database extended foo; |
要修改数据库的键值对信息:
1 | alter database foo set dbproperties ( 'k1' = 'v1' , 'k2' = 'v2' ); |
删除数据库
1 | drop database if exists foo; |
注意:
默认情况下是不允许直接删除一个有表的数据库的:
删除一个有表的数据库有两种办法:
1. 先把表删干净,再删库。
2. 删库时在后面加上cascade,表示级联删除此数据库下的所有表:
1 | drop database if exists foo cascade ; |
prompt显示当前数据库名称
如果在一个数据库很多的环境下工作,需要 在不同的库之间切来切去(手动敲查询的时候全使用dbName.table可不是什么好主意…),可能一不小心就忘记自己当前在哪个数据库下了,可以通过设置一个属性改变当前的命令提示符,更专业的说法是prompt(用过CLI界面的应该对这个概念很熟悉),通过设置hive.cli.print.current.db属性可以在hive cli中显示当前数据库的名称,比如当前的数据库名称是foo:
1 | set hive.cli.print. current .db= true |
.
分类:
Hive
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架