1. 程式人生 > >hive資料庫概念和基本操作

hive資料庫概念和基本操作

hive資料庫:
概念:
hive中的資料庫本質上僅僅是表的一個目錄或名稱空間。對於具有很多使用者和組的大叢集而言,這種方式可以避免表的命名衝突。通常會使用資料庫來將生產表組織成邏輯組。
示例:
本地模式配置了資料庫的統一存放目錄為~/hive/warehouse,那麼建立的所有資料庫都存在該目錄下,以.db結尾:
[email protected]:~> ls ~/hive/warehouse/
devel.db  human_resources.db

資料庫關鍵字:
database(DATABASE)

建立資料庫:
hive> create database if not exists testdb;
OK
Time taken: 0.357 seconds
其中,if not exists表示只有在不存在testdb時才建立該資料庫。建立完成後,在~/hive/warehouse目錄下可以看到新建的testdb.db。

顯示所有資料庫:
hive> show databases;
OK
default
devel
human_resources
testdb
Time taken: 0.021 seconds, Fetched: 4 row(s)

使用正則表示式篩選並顯示資料庫:
hive> show databases like "h*";
OK
human_resources
Time taken: 0.017 seconds, Fetched: 1 row(s)

在建立資料庫時指定資料庫存放路徑:
hive> create database if not exists testdb1 location '/home/xxx/hive/warehouse1';
OK
Time taken: 0.02 seconds
注意:location後接的路徑必須是絕對路徑!!!

在建立資料庫時為資料庫添加註釋:
hive> create database if not exists testdb2 comment 'test db2';
OK
Time taken: 0.02 seconds

顯示某個資料庫的詳細資訊:
hive> describe database testdb1;
OK
testdb1         file:/home/xxx/hive/warehouse1  xxx     USER
Time taken: 0.026 seconds, Fetched: 1 row(s)

為資料庫增加相關的鍵值對屬性:
hive> create database if not exists testdb3 with dbproperties('creator' = 'learn_hive', 'date' = '2018-05-03');
OK
Time taken: 0.078 seconds

顯示額外增加的相關屬性:
hive> describe database extended testdb3;
OK
testdb3         file:/home/xxx/hive/warehouse/testdb3.db        xxx     USER    {date=2018-05-03, creator=learn_hive}
Time taken: 0.027 seconds, Fetched: 1 row(s)

由於可以建立多個數據庫,那麼需要有命令能夠在多個數據庫之間切換,hive提供了use命令。假設當前正在使用testdb3,想要切換到testdb2:
hive> use testdb2;
OK
Time taken: 0.034 seconds

在hive shell下顯示當前使用的資料庫:
hive> set hive.cli.print.current.db=true;
hive (testdb2)>

刪除資料庫:
hive> drop database if exists testdb1;
OK

Time taken: 0.46 seconds