HIVE基本命令解析

2021-12-30 07:34:15 字數 2996 閱讀 2912

#hive 啟動

hive>quit; --退出hive

hive> exit; --exit會影響之前的使用,所以需要下一句kill掉hadoop的程序

>hadoopjob-killjobid

hive>create database database_name;建立資料庫

如果資料庫已經存在就會丟擲乙個錯誤資訊,使用如下語句可以避免丟擲錯誤資訊:

hive>creat database if not exists database_name

hive> show databases; 檢視資料庫

如果資料庫比較多的話,也可以用正規表示式來檢視:

hive> show databases like 'h.*';

hive> use default; --使用哪個資料庫

hive>show tables; --檢視該資料庫中的所有表

hive>show tables 『*t*』; --支援模糊查詢

hive> describe tab_name; --檢視表的結構及表的路徑

hive> describe database database_name; --檢視資料庫的描述及路徑

可以用下面的命令來修改資料庫的路徑:

hive> creat database database_name location '路徑';

hive> drop database if exists database_name; --刪除空的資料庫

hive> drop database if exists database_name cascade; --先刪除資料庫中的表再刪除資料庫

hive>show partitionst1; --檢視表有哪些分割槽

修改表:

hive>alter table table_name rename to another_name; --修改表名

hive>drop tablet1; --刪除表t1

或者: hive> drop table if exists t1;

hive不支援修改表中資料,但是可以修改表結構,而不影響資料

有local的速度明顯比沒有local慢:

hive>load data inpath '/root/inner_table.dat' into table t1; 移動hdfs中資料到t1表中

hive>load data local inpath '/root/inner_table.dat' into table t1; 上傳本地資料到hdfs中

hive> !ls; 查詢當前linux資料夾下的檔案

hive> dfs -ls /;查詢當前hdfs檔案系統下 '/'目錄下的檔案

1、從檔案中執行hive查詢:$ hive -f .sql檔案的路徑;

e.g $hive -f /path/to/file/***x.hql;

在hive shell中可以用source命令來執行乙個指令碼檔案: hive>source .sql檔案的路徑

e.g. hive> source /path/to/file/test.sql;

hive中一次使用命令: $ hive -e "sql語句";

e.g. $ hive -e "select * from mytable limit 3";

2、沒有乙個命令可以讓使用者檢視當前所在的是哪個資料庫庫

3、在hive內執行一些bash shell命令(在命令前加!並且以;結尾即可)

4、在hive內執行hadoop的dfs命令:(去掉hadoop,以;結尾)

5、 hive指令碼如何注釋:

使用--開頭的字串來表示注釋

6、hive與mysql相比,它不支援行級插入操作、更新操作和刪除操作。hive也不支援事務。

hive增加了在hadoop背景下的可以提高更高效能的擴充套件。

7、向管理表中載入資料:

hive沒有行級別的插入、刪除、更新的操作,那麼往表裡面裝資料的唯一的途徑就是使用一種「大量」的資料裝載操作,或者僅僅將檔案寫入到正確的目錄下面。

overwrite關鍵字:

load data local inpath '$/目錄'

overwrite into table table_name

partition (分割槽);

8、從表中匯出資料:

hadoop fs -cp source_path target_path

或者:使用者可以使用 insert……directory……

insert overwrite local directory '/tmp/目錄' 這裡指定的路徑也可以是全url路徑

9、hive中使用正規表示式

(1) hive> select 'price.*' from table_name;

選出所有列名以price作為字首的列

(2) 用like或者rlike

10、聚合函式

可以通過設定屬性hive.map.aggr值為true來提高聚合的效能:

hive>hive.map.aggr=true;

11、什麼情況下hive可以避免進行mapreduce

在本地模式的時候可以避免觸發乙個mr的job,此外,如果屬性hive.execmode.local.auto的值為true的話,hive還戶嘗試本地模式進行其他的操作。

sethive.execmode.local.auto=true;

說明:最好將sethive.execmode.local.auto=true;這個設定增加到你的$home/.hiverc配置檔案中去。

12、join語句

hive支援通常的sql join語句,但是只支援等值連線。hive也不支援在on子句中用謂詞or

13、union all

將兩個表或者多個表進行合併,每乙個union all子查詢都必須具有相同的列,而且對應每個欄位的每個型別都必須一致。

hive 基本命令

1.建立 create 建立資料庫 表 檢視 初級 create database table view schema name 在sql引擎內,均可用schema代替database 高階 create database if not exists name with dbproperties c...

hive最基本命令

建立資料庫 create database database name 如果不知道是否已經存在 create database if not exists database name 檢視hive中包含的資料庫 show databases 如果資料庫非常多可以使用正規表示式篩選顯示 舉例查詢 h有...

Hive的基本命令(1)

文字資料1 sample2.txt a 1950 0 1 b 1950 22 1 a 1950 11 1 b 1949 111 1 a 1949 78 1 檔案資料2 sample3.txt a 1950 23 1 b 1949 22 1 c 1950 2 1 a 1949 0 1 1.建立一外部 ...