<Zhuuu_ZZ>HIVE(三)高阶建表&分区&分桶

本文详细介绍了Hive的高阶建表技巧,包括CTAS、CTE和LIKE,以及临时表的使用。重点讲解了Hive分区的静态与动态方式,并探讨了分桶的概念、优点及如何创建和抽样。此外,还提到了Hive的视图和侧视图相关知识。
摘要由CSDN通过智能技术生成

一.Hive(二)

如果有需要查看一些Hive基础知识点请点击下方链接
链接: Hive(二)知识点3600+.

二.高阶建表-CATS and WITH

1.CTAS – as select方式建表

  • CTAS不能创建partition, external, bucket table
//复制表机构和数据
//ctas_employee by copying data from employee_internal 
CREATE TABLE ctas_employee as SELECT * FROM employee;
//只复制表结构
CREATE TABLE ctas_employee as SELECT * FROM employee where 1=0;

2.CTE (CTAS with Common Table Expression)

//cte_employee with male named Michael and all females 
CREATE TABLE cte_employee AS
WITH 
r1 AS  (SELECT name FROM r2 WHERE name = 'Michael'),
r2 AS  (SELECT name FROM employee WHERE sex_age.sex= 'Male'),
r3 AS  (SELECT name FROM employee  WHERE sex_age.sex= 'Female')
SELECT * FROM r1 UNION ALL SELECT * FROM r3;

3.Like

//复制成一个空表,即只复制表结构
CREATE TABLE employee_like LIKE employee;

三.临时表 TEMPORARY

  • 临时表是应用程序自动管理在复杂查询期间生成的中间数据的方法
    • 表只对当前session有效,session退出后自动删除
    • 表空间位于/tmp/hive-<user_name>(安全考虑)
    • 如果创建的临时表表名已存在,实际用的是临时表
CREATE TEMPORARY TABLE tmp_table_name1 (c1 string);
CREATE TEMPORARY TABLE tmp_table_name2 AS..
CREATE TEMPORARY TABLE tmp_table_name3 LIKE..
  • 面试题:如何确定一个表是否为临时表?
    • show create table 表名;查看建表语句
  • 以CTE方式创表示例:
create temporary table j_d as
with
tmp as(select name, jobs from employee_partition where info.gender='Male'),
t2 as (select name, jobs from employee_partition where info.gender
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值