hive如何创建视图
视图:
1、视图是一个逻辑表,本身不存储数据。数据来源于它依赖的物理表
2、视图只是简化复杂的查询,相当于一个sql数据集,对于一个大表来说,简化查询sql,并不能提高查询效率。反而增加资源开销,建议频繁查询的数据落地
1.视图如何创建
hive> create view if not exists test.test_view as > select > apptypeid,> accid,> dt> from test.test1> > union all> select > apptypeid,> accid,> dt> from test.test2;
OK
Time taken: 0.968 seconds
查看视图表:
hive> show create table test.test_view;
OK
CREATE VIEW `test.test_view` AS select `test1`.`apptypeid`,`test1`.`accid`,`test1`.`dt`
from `test`.`test1` union all
select `test2`.`apptypeid`,`test2`.`accid`,`test2`.`dt`
from `test`.`test2`
Time taken: 0.028 seconds, Fetched: 12 row(s)
注:1.视图依赖物理表test1、test2,每次查询视图表,都会从test1/test2中取数据,如果是频繁查询或者使用的地方比较多,建议数据直接落地会比较好
2.视图表里面可以编写复杂的统计逻辑,这里只做了简单的union all
下面我们来看看执行计划,验证查询视图表是否是查询物理表的数据:
hive> explain select count(1) from test.test_view where dt='20210610';
OK
STAGE DEPENDENCIES:Stage-1 is a root stageStage-0 depends on stages: Stage-1STAGE PLANS:Stage: Stage-1Map ReduceMap Operator Tree:TableScanalias: test1properties:insideView TRUEStatistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONESelect OperatorStatistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONEUnionStatistics: Num rows: 2 Data size: 3815370 Basic stats: COMPLETE Column stats: NONESelect OperatorStatistics: Num rows: 2 Data size: 3815370 Basic stats: COMPLETE Column stats: NONEGroup By Operatoraggregations: count(1)mode: hashoutputColumnNames: _col0Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONEReduce Output Operatorsort order: Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONEvalue expressions: _col0 (type: bigint)TableScanalias: test2properties:insideView TRUEStatistics: Num rows: 1 Data size: 3815370 Basic stats: PARTIAL Column stats: NONESelect OperatorStatistics: Num rows: 1 Data size: 3815370 Basic stats: PARTIAL Column stats: NONEUnionStatistics: Num rows: 2 Data size: 3815370 Basic stats: COMPLETE Column stats: NONESelect OperatorStatistics: Num rows: 2 Data size: 3815370 Basic stats: COMPLETE Column stats: NONEGroup By Operatoraggregations: count(1)mode: hashoutputColumnNames: _col0Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONEReduce Output Operatorsort order: Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONEvalue expressions: _col0 (type: bigint)Reduce Operator Tree:Group By Operatoraggregations: count(VALUE._col0)mode: mergepartialoutputColumnNames: _col0Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONEFile Output Operatorcompressed: falseStatistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONEtable:input format: org.apache.hadoop.mapred.SequenceFileInputFormatoutput format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormatserde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDeStage: Stage-0Fetch Operatorlimit: -1Processor Tree:ListSinkTime taken: 0.885 seconds, Fetched: 68 row(s)
从执行计划可以验证我们的判断,统计test.test_view表的条数时,是分别从test1和test2表中做count操作的
扩展:
2.删除视图:
drop view test.test_view;
3.更新视图:
create or replace view test.test_view2 as
select apptypeid,accid,dt
from test.test3union all
select apptypeid,accid,dt
from test.test4;
hive如何创建视图相关推荐
- 大数据开发之Hive篇8-Hive视图
备注: Hive 版本 2.1.1 文章目录 一.Hive视图介绍 二.视图案例 2.1 视图能够简化用户内的操作 2.2 视图使用户能以多种角度看待同一数据 2.3 视图对重构数据库提供了一定程度的 ...
- MySQL 学习笔记(5)— 视图优缺点、创建视图、修改视图、删除视图
1. 视图概念 简单来说,视图就是一个预定义的查询语句.视图在许多情况下可以当作表来使用,因此也被称为虚拟表(Virtual Table). 视图与表最大的区别在于它不包含数据,数据库中只存储视图的定 ...
- SQL Server创建视图——视图的作用
视图简介: 视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口. 常规视图本身并不存储实际的数据,而仅仅是由SELECT语句组成的查询定义的虚拟表 . ...
- 转: mysql create view 创建视图
以下的文章主要是对MySQL视图的描述,其中包括MySQ视图L概述,以及创建MySQL视图-create view与修改MySQL视图--alter view等相关内容的具体描述,以下就是文章的具体内 ...
- MySQL创建视图(CREATE VIEW)
创建视图是指在已经存在的 MySQL 数据库表上建立视图.视图可以建立在一张表中,也可以建立在多张表中. 基本语法 可以使用 CREATE VIEW 语句来创建视图. 语法格式如下: CREATE V ...
- 2、创建视图(CREATE VIEW)
创建视图是指在已经存在的 MySQL 数据库表上建立视图.视图可以建立在一张表中,也可以建立在多张表中. 基本语法 可以使用 CREATE VIEW 语句来创建视图. 语法格式如下: CREATE V ...
- MySQL在多表上创建视图
MySQL中,在两个或者以上的基本表上创建视图 在student表和stu_info表上,创建stu_class视图,查询出s_id号.姓名和班级 首先,创建stu_info表,并向表中插入数据 查看 ...
- MySQL在单表上创建视图
在单表上创建视图 在student表上,创建view_stu视图 首先,创建一个数据库chapter07 在数据库中,创建一个表student,用于存储学生信息 向student表中,插入数据 查看表 ...
- MySQL创建视图的语法格式
视图,具有简化查询语句.安全性和保证逻辑数据独立性等作用 创建视图的语法格式 视图中,包含SELECT查询的结果,因此,视图的创建基于SELECT语句,和已经存在的数据表,视图可以建立在一张表上,也可 ...
最新文章
- AAC_LC用LATM封装header信息解析 Audio Specific Config格式分析
- Linux基础知识——常用shell命令介绍(三)
- Consul架构介绍
- oracle清理表空间文件,如何自动删除表空间的文件?
- Android中Parcelable与Serializable接口用法
- python设计棋牌游戏
- 修改窗口的风格ModifyStyle
- 【MV-3D】----多视图的3D目标检测网络
- python中oct函数_Python内置函数OCT详解
- 牛客小白月赛1分元宵
- 编译器对源代码的编译过程
- discuz论坛快速登录、分享帐号一键登录方法
- jQuery入门 jQuery入门第三天
- Java曲线之削峰填谷,Sentinel匀速模式(削峰填谷)
- element 日期选择器
- c3p0 SQLException: An attempt by a client to checkout a Connection has timed out异常
- 实现电话自动拨打、挂断
- 【软件测试】入门答疑,概念
- Keras深度学习实战(26)——文档向量详解
- “五一”假期消防安全知识要牢记之消防安全知识答题活动