hive视图

hive视图,第1张

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 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' , '%' ) ;

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5683333.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存