hive视图

本文深入探讨了Hive视图的概念、类型及其在大数据处理中的作用。通过创建和使用视图,可以简化复杂查询,提高数据仓库的灵活性。同时,介绍了如何在Hadoop生态系统中利用Hive视图进行数据隔离和权限控制,为数据分析提供便利。
Hive的视图
应用场景将特定的列提供给用户,保护数据隐私 用于查询语句复杂的场景
通过隐藏子查询、连接和函数来简化查询的逻辑结构只保存定义,不存储数据 如果删除或更改基础表,则查询视图将失败 视图是只读的,不能插入或装载数据
-- 创建视图,支持 CTE, ORDER BY, LIMIT, JOIN,等
CREATE VIEW view_name AS SELECT statement;
 -- 查找视图 (SHOW VIEWS 在 hive v2.2.0之后)
 SHOW TABLES; 
 -- 查看视图定义
 SHOW CREATE TABLE view_name; 
 -- 删除视图
 DROP view_name; 
 --更改视图属性 
ALTER VIEW view_name SET TBLPROPERTIES ('comment' = 'This is a view'); 
-- 更改视图定义
 ALTER VIEW view_name AS SELECT statement;
explode只能是单个,如果需要多个需要
select name,wp from employee lateral view explode(work_place) work as wp ;
explode(列名):
Hive内置的表生成函数,主要用于把一行输入拆成多行。
explode(ARRAY < T> a)
将一个数组展开为多行。返回一个带有单列(col)的行集,数组中每个元素都有一行
explode(MAP<Tkey,Tvalue> m)
将一个映射展开为多行。返回一个带有两列(键,值)的行集,从输入映射中为每个键值对返回一行。(从Hive0.8.0起)
explode(split(word,’ \ \|’))
将某一列名为word展开为多行,返回分割“|”后所有的值,分割后的所有值每一个都返回一行
stack(int r,T1 V1,…,Tn/r Vn)
将n个值V1,…,Vn分解为r行。每行将有n/r列,r必须是常数。
————————————————
侧视图
Outer Lateral Views(外侧视图):
OUTER关键字:即使侧视图的列没有值,output为空也会打印生成结果为null
SELECT explode(split(t.name,',')) from t1 t;explode函数的作用是把列转行array 与 map;
SELECT id,colAliasName from t1 t LATERAL VIEW explode(split(t.name,',')) tableAliasName as colAliasName
Union和Union all:
(1)Union:对两个结果集进行并集操作,去除重复行,同时进行默认规则的排序。
(2)Union all:对两个结果集进行并集操作,不去除重复行,不进行排序。
模糊查询
select * from ods.ods_sjc_events_rt where event like concat('%','OCR','%') ;

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

s_schen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值