寫在開頭:hive是基於hadoop的乙個資料倉儲工具,用來進行資料提取、轉化、載入,這是一種可以儲存、查詢和分析儲存在hadoop中的大規模資料的機制。hive資料倉儲工具能將結構化的資料檔案對映為一張資料庫表,並提供sql查詢功能,能將sql語句轉變成mapreduce任務來執行。–**某度詞條。下面整理了幾個常用的hive操作命令。
1.建立庫
>create database abc;
>create database if not exists abc;
2.檢視庫
>show database;
>show database like 'h_*'
;3.建立庫後修改其儲存路徑
>create database abc;
>location "******"
;4.新增庫的描述
>create database abc;
>comment "******"
;5.檢視庫的描述及其位置
>describe database abc;
6.使用庫
>use abc;
7.設定顯示當前正在使用庫
>set hive.cli.print.current.db=true;
8.刪除資料庫
>drop database if exists abc;
9.先刪除庫中的表,再刪除庫
>drop database if exists abc cascade;
10.建立表
>create table if not exists mydb.ttb
( name string comment 'name ss',
salary int comment 'name ss',
sub float comment 'name ss',
id arraycomment 'name ss',
name mapcomment 'name ss',
) comment 'fdfdfd'
location 'fdf/fdfd/fdfd'
11.檢視乙個庫下的所有表和檢視
>show tables;
>show tables in mydb;
>show tables 'huu_*'
;12.檢視乙個表的結構
>describe extended mydb.tb;
>describe mydb.tb.salary;
13.建立外部表接入外部資料,特定目錄下所有檔案-特定的字段分割符
>create external table if not exists stocks
( exchange string,
symbol stirng,
ymb string,
volum int
) row format delimited fields terminated by ','
location '/data/stocks/'
14.刪除表
>drop table if exists tb1;
15.重新命名表
>alter table mess rename to message;
16.表增加列
>alter table log add columns
( session_id int comment "fdfd"
)17.修改列
18.刪除列
複雜資料型別:array,map,struct.struct類似於map
19.查詢乙個array型別的字段中的第二條資料。
>select name,sub[1] from empl;
20.使用正規表示式來指定查詢的字段,以price為字首的字段
>select id,『price.*』 from empl;
21.設定查詢盡可能的使用本地模式而並非mapreduce模式,一般情況下的複雜查詢會使用mapreduce操作。
>set hive.exec.mode.local.auto=true;
22.不能在where條件中直接使用列的別名進行操作,可以進行巢狀查詢替代。
23.hive中進行查詢輸入的小數實際上在執行時是double型別的資料格式,即0.2可能為0.20001或0.200000001,進行一些數值比較時需注意。-----ieee規標準進行浮點性編碼的資料皆有此類問題。
//處理兩種方式
a.定義該字段的時候設定為double型別,最後幾位double型別何double型別的比較-不存在轉換。----增加查詢記憶體消耗
b.進行手動的函式式條件轉換--cast
(0.2 as float),--最後即為float型別與float型別資料比較。
-----與錢相關字段避免使用float型別定義
24.查詢語句rlike可以接正規表示式操作。
>select id,name,book where name rlike '(*.de)|(*.ff)'
;25.靈活使用笛卡爾積join查詢---但會耗費大量時間。
26.將查詢結果匯入到乙個新錶中
>insert overwrite table tbsa select ****;
27.掃瞄一次表-將結果裝入兩張新錶中
>from tb_his
>insert overwrite tb_new1 select *****
>insert overwrite tb_new2 select *****
28.建立檢視
>create view viw1 as select *****;
>create view if not exists shipe11 comment 'descc' as select ****;
29.將檢視複製到表
>create table tb1 like vie1;
30.刪除檢視
>drop view if exists view1;
32.重建索引--對特定分割槽的乙個表進行索引建立--不指定分割槽則為全部分割槽
>alter index empl_index on table tb1 partition
(country='us'
) rebuild;
33.顯示乙個表的索引資訊--index/indexs
>show formatted indexs on tab1;
34.刪除索引
>drop index if exists empl_index on table tb1;
35.顯示所有函式
>show functions;
36.檢視函式使用說明
>describe function concat;
37.建立表並對映資料檔案
>create table peop_info
(a string,
b string,
c string
) row format serde
'org.apache.hadoop.hive.serde2.lazy.lazy******serde'
with serdeproperties
("field.delim"='\t',"serialization.encoding"='utf-8'
)stored as textfile;
load data local inpath '/home/demo/a.txt' overwrite into table peop_info;
常用命令總結
一,vim常用命令 set nu 顯示行號 dd 刪除當前行 yy 拷貝當前行 p 粘接內容 行號gg 定位改行到行號 g 切換到檔案尾部 gg 切換到檔案頭部 二,linux常用命令 全路徑cp a 拷貝目錄 a dpr cat n 行號 檢視檔案內容前面10行 rename 改名 rm rf 刪...
常用命令總結
1 lsof i 埠號 2 netstat tunlp grep 埠號 1.徹底置空,也就是ls檔案的大小為0,檔案裡面什麼都沒有 1 filename 2 true filename 3 cat dev null filename 4 filename 2.置空檔案,但是檔案中有空行,ls檔案的大...
mysql常用命令總結 mySql常用命令總結
總結一下自己常用的mysql資料庫的常用命令 mysql u root p 進入mysql bin目錄後執行,回車後輸入密碼連線。資料庫操作 1 create database dbname 建立資料庫,資料庫名為dbname 2 create database todo default chara...