Hive视图如何创建、特点及应用场景
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中需要通过视图限制基于条件过滤的数据时;