CTE(Common Table Expression)公共表表达式简称 CTE,处理方式类似于视图扩展,是Hive三种保存临时结果的方法之一(另外两种是临时表和物化视图), Hive早在 0.13.0 的时候便加入了这个功能。

hive cte的with as 只是定义了一个SQL片段,相当于View,默认是不会缓存数据的,执行计划中并没有缓存过程。要想保存复用数据,可以通过一个参数来开启

set hive.optimize.cte.materialize.threshold=2

这个参数默认值-1(关闭);设为大于0的数字为开启,比如设置为2后,则如果with 片段使用次数>=2,hive会计算这部分数据并物化,后面引用的时候不再重复计算。

一个或多个 CTE 可以在 Hive SELECT、INSERT、 CREATE TABLE AS SELECT或CREATE VIEW AS SELECT语句中使用。

用法示例

Select 语句中的 CTE

with q1 as ( select key from src where key = '5')
select *
from q1;-- from style
with q1 as (select * from src where key= '5')
from q1
select *;-- chaining CTEs
with q1 as ( select key from q2 where key = '5'),
q2 as ( select key from src where key = '5')
select * from (select key from q1) a;-- union example
with q1 as (select * from src where key= '5'),
q2 as (select * from src s2 where key = '4')
select * from q1 union all select * from q2;

视图、CTAS 和Insert 语句中的 CTE

-- insert example
create table s1 like src;
with q1 as ( select key, value from src where key = '5')
from q1
insert overwrite table s1
select *;-- ctas example
create table s2 as
with q1 as ( select key from src where key = '4')
select * from q1;-- view example
create view v1 as
with q1 as ( select key from src where key = '5')
select * from q1;
select * from v1;-- view example, name collision
create view v1 as
with q1 as ( select key from src where key = '5')
select * from q1;
with q1 as ( select key from src where key = '4')  --没有被使用 不会生效
select * from v1;
author csdn qq_19933029

Hive开启CTE物化相关推荐

  1. Hive视图与物化视图

    文章目录 1. 视图 1.2 案例 1.3 视图的好处 2. Hive3.0新特性:Materialized View 物化视图 2.1 物化视图语法 2.2 基于物化视图的查询重写 1. 视图 Hi ...

  2. pypark hive 开启动态分区_Hive分区与分桶

    分区.分桶的作用: 我们知道在传统的DBMs系统中,一般都具有表分区的功能,通过表分区能够在特定的区域检索数据,减少扫描成本,在一定程度上提高了查询效率,当然我们还可以通过进一步在分区上建立索引,进一 ...

  3. Hive开启审计日志

    CDH5和CDH6开启审计日志的方式有点区别 免费拿走不谢 CDH6.x Hive的版本的2.x,使用的log4j2,开启审计日志如下: appenders=AUDIT appender.AUDIT. ...

  4. hive开启kerberos-beeline连接

    1.kerberos安装 kerberos安装配置与使用:https://blog.csdn.net/qq_21383435/article/details/83625252 2. 生成 keytab ...

  5. hdp3.1.4 hive 开启lzo压缩

    因为集群本身是不支持lzo压缩的,所以需要我们自行安装配置. 环境: hdp 3.1.4 hadoop-lzo : 0.4.21 lzo :2.10 安装步骤如下: 在源码编译安装之前需要做一些准备工 ...

  6. Spark操作Hive(开启Kerberos认证)代码提交华为云DAYU的MRS Spark组件--方法流程及注意事项

    背景: 最近在测试华为云DAYU MRS Spark操作Hive的流程,因kerberos认证的问题一直测试失败. 代码示例: val sparkSession = SparkSession.buil ...

  7. Hive CTE | with as 隐藏的秘密!

    CTE Hive with as 语句 Hive with 语句默认是不把数据进行物化的,相当于视图,定义了一个SQL片段,每次使用时候可以将该定义的SQL片段拿出来再被使用,该SQL片段可以理解为一 ...

  8. sparksql 操作hive_Spark SQL 物化视图原理与实践

    导言 物化视图作为一种预计算的优化方式,广泛应用于传统数据库中,如Oracle,MSSQL Server等.随着大数据技术的普及,各类数仓及查询引擎在业务中扮演着越来越重要的数据分析角色,而物化视图作 ...

  9. 如此丝滑,Hive 中的各种常用 set 设置用起来就是爽啊

    平时在跑数据时,需要在查询语句前设置一些set语句,这些set语句中其中有一些是配置hive的各功能,另一些是可以达到优化的目的,本篇文章对一些常用的set语句进行总结 常用set设置 查询结果显示表 ...

最新文章

  1. 博士笔记 | 深入理解深度学习语义分割
  2. 视觉里程计 | OF-VO:Robust and Efficient Stereo Visual Odometry Using Points and Feature Optical Flow
  3. python打包的程序很大_Pyinstaller 打包以及pipenv 虚拟环境应用,以及打包出来程序太大的解决办法...
  4. Exception processing async thread queue
  5. 获取用户列表为空_数据结构和算法(Golang实现)(15)常见数据结构-列表
  6. json文件读取之reader.onload中的定义的变量在其函数外部进行处理
  7. 只用一个marker 替换 高德_关于高德地图添加Marker遇到的一些坑
  8. JQuery树插件——ztree
  9. Selenium自动化测试-8.iframe处理
  10. 【二分图匹配】E. 过山车
  11. NMEA0183协议中的GGA语句解析
  12. 苏宁成立快递员节PK京东封杀快递,谁的做法更聪明?
  13. 话筒在multisim怎么找_基于Multisim软件的调频无线话筒仿真
  14. 简述台式计算机的组装流程,台式机怎么组装 台式机组装步骤详细介绍【图文】...
  15. WdatePicker开始时间与结束时间
  16. 数据库系统原理mysql答案_数据库原理与应用MySQL答案
  17. 福特汉姆大学计算机科学专业,留学福特汉姆大学专业
  18. uniapp之登录(短信验证码,账号密码,第三方登录)
  19. 计算机硬件类的相关课程,计算机硬件类课程,hardware course,音标,读音,翻译,英文例句,英语词典...
  20. 简单介绍一下python的魔方方法

热门文章

  1. 2021-09-25 关于启动代码出现炸内核的解决方法
  2. 赫斯曼HIRSCHMANN显示器维修电脑控制器修理
  3. gbase导入sql文件_GBase数据库自动备份脚本
  4. 直接用socket实现HTTP协议(下载专用)
  5. FactoryIO物料分拣系统
  6. 光功率计制作-给大家参考 资料分享
  7. android 微信底部渐变,仿微信底部导航栏BottomNavigation渐变色
  8. keychron凭什么高效学习快速码字
  9. MSP430 F5529 单片机 温度报警器 温度显示报警 温度的测量与报警 OLED 显示
  10. 【3D商城】使用Vuex状态管理完成购物车模块