Hive 6. 数据库操作

本文介绍Hive中数据库的创建、使用、修改、删除等基本操作,并详细解释如何指定数据库的数据存储位置及添加描述信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据存储

一个数据库对应与文件系统中的一个目录。且他们的根目录即是

hive.metastore.warehouse.dir

配置项来设置的。比如我这里就是 /user/henvealf/hive/warehouse

刚开始进入 hive 命令行时,默认位于名为 default 的默认数据库中。其数据目录就在 /user/henvealf/hive/warehouse 下。而对于用户自定义的数据库,将会在 数据目录下有一个对应的目录,目录名称格式为

数据库名.db 

创建数据库

之下的操作都是在 CLI 中,为了便于观看,关键字使用驼峰法,规范是全大写。

  • 创建一个普通的数据库。
    Create Database dbname;

    为了避免数据库已存在而抛出异常:

    Create Database If Not Exists dbname;
  • 列出所有数据库
    Show databases;

    如果数据库太多,可使用 Like 加正则表达式来筛选,下面是一个简单的:

    Show Database Like 'h.*';
  • 指定数据目录的位置:
    Create Database dbname 
    Location '/other/warehouse/';
  • 添加数据库描述信息:
    Create Database dbname 
    Comment 'is a common database';
  • 展示描述信息:
    Describe Database dbname;

    将会展出上面设置的描述信息,和数据目录的位置。

  • 增加数据库的键值对属性信息
    Create Database dbname
    With DbProperties ('creator' = 'henvealf', 'date' = '2016-10-30');

    以后都自己 Describe 看看结果

使用数据库

  Use dbname

删除数据库

  Drop Database If Exists dbname; 
  Drop Database If Exists dbname Cascade;

If Exists 可选,不罗嗦了。
第二句一次删除数据库中的表。要不就需要先删除其中的表。

修改数据库

数据库一旦创建,其元数据就无法修改了,只能修改其键值对属性。

Alter Database dbname Set DbProperties ('edited-by' = 'vaf'); 

End!!

at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:808) at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:701) at org.apache.hadoop.hive.metastore.ObjectStore.getPMF(ObjectStore.java:521) at org.apache.hadoop.hive.metastore.ObjectStore.getPersistenceManager(ObjectStore.java:550) at org.apache.hadoop.hive.metastore.ObjectStore.initializeHelper(ObjectStore.java:405) at org.apache.hadoop.hive.metastore.ObjectStore.initialize(ObjectStore.java:342) at org.apache.hadoop.hive.metastore.ObjectStore.setConf(ObjectStore.java:303) at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:79) at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:139) at org.apache.hadoop.hive.metastore.RawStoreProxy.<init>(RawStoreProxy.java:58) at org.apache.hadoop.hive.metastore.RawStoreProxy.getProxy(RawStoreProxy.java:67) at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.newRawStoreForConf(HiveMetaStore.java:628) at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.getMSForConf(HiveMetaStore.java:594) at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.getMS(HiveMetaStore.java:588) at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultDB(HiveMetaStore.java:655) at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.init(HiveMetaStore.java:431) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.hive.metastore.RetryingHMSHandler.invokeInternal(RetryingHMSHandler.java:148) at org.apache.hadoop.hive.metastore.RetryingHMSHandler.invoke(RetryingHMSHandler.java:107)
最新发布
03-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值