hive 表的分割槽

2021-08-20 20:17:12 字數 1973 閱讀 4868

hive的資料查詢一般會掃瞄整個表,當表資料太大時,就會消耗些時間,有時候我們只需要對部分資料感興趣,所以hive引入了分割槽的概念

hive的表分割槽區別於一般的分布式分割槽(hash分割槽,範圍分割槽,一致性分割槽),hive的分割槽是比較簡單的。他是根據hive的表結構,分割槽的字段設定將資料按目錄存放起來,相當於簡單的索引

hive表分割槽需要在表模式建立的時候指定模式才能使用,他的字段是虛擬的列,不存在表資料中。

表分割槽在表模式建立之後使用之前使用alert table 來新增具體的分割槽,才能使用

新增分割槽

alert table tablename add

partition(ds='

2016-12-16

',coutry=

'beijing')

location='

/opt/hive/beijing/part2016-12-16

'partition(ds='

2016-12-17

',coutry=

'beijing')

location='

/opt/hive/beijing/part2016-12-17

'

刪除分割槽

alert table tablename drop partitionname,partitionname1,partitionname2

例:

alert table tablename drop partition(ds='2016-12-16',coutry='beijing')

1)刪除分割槽會連元資料和資料一併刪除

2)在為表指定具體分割槽時,在建立表時必須要為表新增對應的模式,否則會丟擲異常

3)分割槽的名稱不能與表屬性的名稱一樣

4)還可以建立多個分割槽,相當於多級索引的功能

在使用hsql向表中新增資料,如果hsql中的分割槽,在hdfs中沒有,則hive會根據hsql自動新建分割槽(可能有的hive版本不支援自動建立分割槽,這裡使用的是2.1.0)

insert overwrite table zhangtest partition(***ual=

2) select studentid, ***,address,email from student_3 where ***=

0

刪除表

alert table

drop tablename

刪除表將會資料和元資料一起刪除,如果定義了trash,那麼刪除的資料將會到trash/current目錄下 。如果定義了外部表就只會刪除元資料,不會刪除資料

刪除和建立檢視

create

view viewname [

,....]as

select....

目前只有hive6.0之後的版本才有這個功能,檢視是唯讀的,不能對其進行load/insert/alert操作。

檢視中有可能引用了order by 或者limit 子句,如果乙個查詢語句引用了這樣乙個檢視,那麼會優先查詢檢視中的語句,然後返回結果按照檢視中的結果返回

drop vieww viewname//刪除指定的檢視

建立或刪除函式

creeate temporary funaction fun_name as classs_name//

drop

temporary fun_name//

展示描述語句(顯示語句可以使用正規表示式進行匹配「*」,「|」「」)

show tables identifier_with_wildcards

顯示表或者分割槽擴充套件表

show table extended ..

顯示函式

show function "a"

hive表分割槽

hive對錶有分割槽的功能。hive根據表的列屬性值 諸如日期,城市 部門對錶進行分割槽 使用分割槽,能夠很容易查詢 到資料的一部分。表或分割槽被分為 buckets 桶 以便為資料 提供額外的資料結構,該資料結構被 用於提公升 查詢的有效性。buckets 桶 的工作依賴於表中某個列的 雜湊函式值...

Hive 表分割槽

基本知識 hadoop fs rmr hdfs hdfs hadoop fs put user hive warehouse data.txt hdfs hdfs data.txt 建立分割槽表 外部表 create external table if not exists employee id ...

Hive 表分割槽

基本知識 hadoop fs rmr hdfs hdfs hadoop fs put user hive warehouse data.txt hdfs hdfs data.txt 建立分割槽表 外部表 create external table if not exists employee id ...