HIVE【WITH AS、子查询、视图】的区别

1、【子查询】和【WITH AS】的关系

WITH AS是 子查询 的一种写法
旧版MySQL 子查询 不支持WITH AS写法,只支持括号写法
WITH AS写法 可读性更高,更方便注释,推荐使用!

  • 括号子查询写法
SELECT t.f FROM (子查询)t;
  • WITH AS子查询写法
WITH
-- 注释1
t1 AS (子查询),
-- 注释2
t2 AS (子查询)
SELECT f1,f2 FROM t2;

2、视图

2.1、概念

视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据
用来创建视图的表叫做基表,基表数据改变后,从视图获取的数据也随之改变
HIVE视图是只读的,不能向视图插入数据

2.2、写法

CREATE VIEW t AS
SELECT ...

在HIVE创建视图后,HUE界面显示

在MySQL中查看HIVE元数据信息

2.3、用途!!!

2.3.1、简化操作

  • 简化用户对数据的理解和操作

  • 在MySQL应用场景中:
    关系数据库遵循范式理论,取数时JOIN多到飞起
    可以为一些常用的查询创建视图,从而简化用户操作

2.3.2、提供了一定程度的逻辑独立性

  • 在HIVE应用场景中:
    有些 非公共的维度表 可用视图,这样既节省了硬盘及IO,又可展现逻辑

  • 在MySQL应用场景中:
    没有视图时,程序是建立在表上的
    有了视图后,程序可建立在视图之上,从而使程序和表分割开来

比较程序建立在表上程序建立在视图之上
表变化时改程序改视图
应用变化时改表改视图

2.3.3、安全性

  • 在MySQL应用场景中:
    使用视图来 给用户提供允许范围内的结果集
    例如,基表中含有手机号等用户不需要的敏感信息
    做法:1、创建视图,提供所需数据;2、把视图授权给用户。

3、比较HIVE的【子查询】和【视图】

  1. 都可简化复杂的查询
  2. 视图 支持 表名在别的SQL中使用,子查询不支持
  3. 执行速度:相近
  4. 都不是缓存数据
  5. 视图的元数据信息会被记录到meta store
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值