Hive視圖特點
- View是邏輯存在,Hive暫不支持物化視圖(1.0.3)
- View只讀,不支持LOAD/INSERT/ALTER。需要改變View定義,可以是用Alter View
- View內可能包含ORDER BY/LIMIT語句,假如一個針對view的查詢也包含這些語句, 則view中的語句優先級高。例如,定義view數據為limit 10, 針對view的查詢limit 20,則最多返回10條數據。
- Hive支持迭代視圖。
5.Hive中視圖的查詢和普通查詢類似,查詢時把表名更換為視圖名即可。
Hive視圖創建
- 視圖view和table一樣,可以指定database;
- 創建視圖
CREATE VIEW [IF NOT EXISTS] view_name [(column_name [COMMENT column_comment], ...) ] [COMMENT view_comment] [TBLPROPERTIES (property_name = property_value, ...)] AS SELECT ...
- 刪除視圖
DROP VIEW [IF EXISTS] view_name
- 修改視圖
ALTER VIEW view_name SET TBLPROPERTIES table_properties table_properties: : (property_name = property_value, property_name = property_value, ...)
Hive視圖應用場景
- 數據倉庫中維度角色扮演和維度子維度時可以采用視圖的方式保證維度的一致性;
- 當Hive中的查詢變得很長或復雜時,通過視圖將這個查詢語句分割成多個小的、更可控的片段可以降低這種復雜度;
- Hive中需要通過視圖限制基於條件過濾的數據時;