美文网首页
hive如何创建分区视图(hive partitioned vi

hive如何创建分区视图(hive partitioned vi

作者: _Kantin | 来源:发表于2021-06-21 17:53 被阅读0次

背景介绍

  • 今天用户反馈有个表因为是at least one类型的数据导入,导致某个日期分区下可能存在多条重复的数据,看看如何能够帮忙去重。
  • 众所周知Hive上一般是不支持update和delete的,对每个分区都重新查询再insert overwrite的话也是相当的麻烦,因此创建一个过滤后的view视图提供给用户应该是更符合需求的。
  • 由于用户是一张分区表,若每天一个视图的话肯定是不行的。因此需要考虑创建分区视图(partitioned view),我使用的hive版本为hive2.3.3。
  • 外部表和内部表测试均可,这里仅演示内部表。

创建分区视图

# 先创建表
CREATE TABLE if not exists kantlin (
id int,
name string,
age int
)
PARTITIONED BY (date_id string)
row format delimited fields terminated by ','
stored as textfile;
#插入两条相同的数据
 insert into table kantlin partition(date_id='20210618')   values (1,'kantlin',3);
 insert into table kantlin partition(date_id='20210618')   values (1,'kantlin',3);

#创建分区视图
#注意 PARTITIONED ON后面跟的是分区字段,而且这个字段必须是select和group by的最后一个元素!
create view kantlin PARTITIONED ON(date_id) AS SELECT id,name,age,time,date_id  from kantlin GROUP BY id,name,age,time,date_id ;

执行效果

实际执行效果

相关文章

网友评论

      本文标题:hive如何创建分区视图(hive partitioned vi

      本文链接:https://www.haomeiwen.com/subject/sjayyltx.html