欢迎投稿

今日深度:

Databases in Hive,

Databases in Hive,


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’);

www.htsjk.Com true http://www.htsjk.com/hive/41068.html NewsArticle Databases in Hive, Databases in Hive 1. 如果在 hive 中未定义数据库的话,这个 “default” 作为默认的数据库。 2. 创建数据库的语法很简单: hive create databasefinancials;     如果 financials 存在的话...
相关文章
    暂无相关文章
评论暂时关闭