hive的初識(基本操做)

 1.2 語法
 	建立數據庫
 		create database if not exists orders;
 	查詢建表的方式
 		create table as select 方式:根據查詢的結果自動建立表,並將查詢結果數據插入新建的表中。
 	克隆表
 		create table like tablename 方式:是克隆表,只複製tablename的表結構。
 	一、建立一個分區表,以dt爲分區列:
 		create table if not exists invites 
 		(
 			id int,
 			name string
 		) 
 		partitioned by 
 		(
 			dt string
 		) 
 		row format delimited fields terminated by '\t' [stored as textfile];

 	二、將數據添加到時間爲2017-12-07這個分區中:
 		load data local inpath '/home/orders.csv' overwrite into table invites partition (dt='2017-12-07');
 		load data local inpath '/home/orders.csv' overwrite into table invites partition (dt='2017-11-11');
 	三、從一個分區中查詢數據:
 		select * from invites where dt='2017-12-07';
 	四、往一個分區表的某一個分區中添加數據:
 		insert overwrite table invites partition (dt='2017-12-07') select id,max(name) from test group by id;
 	五、查看分區的具體狀況
 		show partitions tablename; eq: hive> show partitions orders;

 	【
 		精解:
 			這個日誌表以dt字段分區,dt是個虛擬的字段,dt下並不存儲數據,而是用來分區的,實際數據存儲時,dt字段值同樣的數據存入同一個子目錄中,插入數據或者導入數據時,
 			同一天的數據dt字段賦值同樣,這樣就實現了數據dt日期分區存儲。
 			當hive查詢數據時,若是指定了dt篩選條件,那麼只須要到對應的分區下去檢索數據便可,大大提升了效率。因此對於分區表查詢時,儘可能添加上分區字段篩選條件。
 	】
相關文章
相關標籤/搜索