IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hive视图与物化视图 -> 正文阅读

[大数据]Hive视图与物化视图

1. 视图

  • Hive中的视图是一种虚拟表,只保存定义,不实际存储数据。
  • 通常从真实的物理表查询中创建生成视图,也可以从已经存在的视图上创建新视图。
  • 创建视图时,将冻结视图的架构,如果删除或更改基础表,则视图将失败
  • 视图是用来简化操作的,不缓冲记录,也没有提高查询性能

1.2 案例

	--1.创建视图
	create view v_usa_covid19 as select count_date,country,state,deaths from t_usa_covid19 limit 5;
	--从已有的视图中创建视图
	create view v_usa_covid19_from_view as select * from v_usa_covid19 limit 2;
	--2.显示已有的视图
	show views; --hive v2.2.0之后支持
	--3.视图的查询使用
	select * from v_usa_covid19;--相当于是执行创建视图时的select语句
	--4.查看视图的定义
	show create table v_usa_covid19;
	--5.删除视图
	drop view v_usa_covid19_from_view;
	--6.更改视图属性
	alter view v_usa_covid19 set tblproperties('comment'='This is a view');
	--7.更改视图定义
	alter view v_usa_covid19 as select country,deaths from t_usa_covid19 limit 2;

1.3 视图的好处

  • 将真实表中特定的列提供给用户,保护数据隐私
  • 降低查询复杂度,优化查询语句(注意不是提高查询效率)。

2. Hive3.0新特性:Materialized View 物化视图

  • 物化视图是一个包括查询结果的数据库对象,可以用于预先计算并保存表连接或聚集等耗时较多的操作结果。在执行查询时,就可以避免进行这些耗时的操作,从而快速的得到结果。
  • 使用物化视图的目的就是通过预计算,提高查询性能,需要占用一定的存储空间。
  • Hive提供物化视图的查询自动重写机制(基于Apache Calcite实现)。
  • Hive提供了物化视图存储选择机制,可以本地存储在Hive,也可以通过用户自定义storage handlers存储在其他系统(如Druid)。
  • Hive引进物化视图的目的就是为了优化数据查询访问的效率,相当于从数据预处理的角度优化数据访问。
  • Hive从3.0丢弃了index索引的语法支持,推荐使用物化视图和列式存储文件格式来加快查询速度。

2.1 物化视图语法

  1. 物化视图创建后,select查询执行胡数据自动落地,“自动”也即在query的执行期间,任何用户对该物化视图是不可见的,执行完毕之后物化视图可用。
  2. 默认情况下,创建好的物化视图可被用于查询优化器optimizer查询重写,在物化视图创建期间可以通过disablerewrite参数设置禁止使用。
    在这里插入图片描述

2.2 基于物化视图的查询重写

  • 物化视图创建后即可用于相关查询的加速,即:用户提交查询query,若改query经过重写后可以命中已经存在的物化视图,则直接通过物化视图查询数据返回结果,以实现查询加速。
  • 是否重写查询使用物化视图可以通过全局参数控制默认为true:hive.materializedview.rewriting=true;
  • 用户可以选择性的控制指定的物化视图查询重写机制
alter materialied view [db.name.]materialized_view_name enable|disable rewrite;
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:41:07  更:2022-10-17 12:41:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 -2025/3/4 7:44:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码