Home >Database >Mysql Tutorial >hive创建数据库

hive创建数据库

WBOY
WBOYOriginal
2016-06-07 15:35:352117browse

Databases in Hive 1. 如果在 hive 中未定义数据库的话,这个 “default” 作为默认的数据库。 2. 创建数据库的语法很简单: hive create databasefinancials; 如果 financials 存在的话 , 就会抛出错误,可以这样: hive create databases IF NOT EXISTS fi



Databases in Hive

1.如果在hive中未定义数据库的话,这个“default”作为默认的数据库。

2.创建数据库的语法很简单:

hive> create databasefinancials;

   如果financials存在的话,就会抛出错误,可以这样:

hive> create databases IF NOT EXISTS financials;

3.在“database”相关命令行可以使用“schema”代替“database”。

4.如果存在较多的数据库,可以使用相关的表达式,likealike+数据库名开头的字母和以”.*”结尾,如:

  hive> show databases like ‘f.*’;   (f代表financial数据库)

5.hive为每个数据库创建一个路径,表在被存储在相应的子路径中。默认的“default”的数据库没有自己的路径;数据库的路径这个属性中设置:hive.metastore.warehouse.dir,其中默认的属性值是 /user/hive/warehouse

  当数据库financial被创建,hive会为其创建路径为 /user/hive/warehousefinancial.db.db是数据库名的扩展。

n       你也可以修改默认的路径:

  hive> create database financials

      > location ‘/my/preferred/directory’;

n       可以为数据库增加解释性内容:

 hive> create database financials

     > comment  ‘holds all financial tables’;

n       describe database 命令,也表明了数据库的路径。

n       key-values属性和数据库结合起来,如:

   hive> create database financials

       > with dbproperties (‘creator=’markMoney’,’data’=’2012-10-18’);

   此时描述数据库信息:

   hive> describe database extendedfinancials;

n       “use”命令是使某一数据库处于当前使用的数据库:

hive>use financials;

可惜没用命令可以表现出当前正在使用的数据库,因此我们使用’use’命令设置数据库为当前使用的数据库。因为在hive中没有数据库的概念。

6.设置属性打印出当前的数据库:

   hive> set hive.cli.print.current.db=true;

   hive (financials)> use default;

   hive (default)> sethive.cli.print.current.db=false;

   hive> …..

  删除数据库: hive> drop database ifexists financials;

  默认情况下,hive是不允许删除含有表的数据库,首先删除表,之后在命令行使用‘CASCADE’关键词,同样可以使用‘RESTRICT’:

hive> drop database if exists financials cascade;

当数据库被删除,其路径也被删除了。

7.在‘DBPROPERTIES’中可以设置键值对属性。

  hive> alter database financials set dbproperties(‘edited-by’=’Joe Dba’);
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn