Hive视图如何创建、特点及应用场景

Hive视图特点

  1. View是逻辑存在,Hive暂不支持物化视图(1.0.3)
  2. View只读,不支持LOAD/INSERT/ALTER。需要改变View定义,可以是用Alter View
  3. View内可能包含ORDER BY/LIMIT语句,假如一个针对view的查询也包含这些语句, 则view中的语句优先级高。例如,定义view数据为limit 10, 针对view的查询limit 20,则最多返回10条数据。
  4. Hive支持迭代视图。

5.Hive中视图的查询和普通查询类似,查询时把表名更换为视图名即可。

Hive视图创建

  • 视图view和table一样,可以指定database;
  • 创建视图
CREATE VIEW [IF NOT EXISTS] view_name [(column_name [COMMENT column_comment], ...) ]
[COMMENT view_comment]
[TBLPROPERTIES (property_name = property_value, ...)]
AS SELECT ...
  • 删除视图
DROP VIEW [IF EXISTS] view_name
  • 修改视图
ALTER VIEW view_name SET TBLPROPERTIES table_properties
table_properties:
  : (property_name = property_value, property_name = property_value, ...)

Hive视图应用场景

  • 数据仓库中维度角色扮演和维度子维度时可以采用视图的方式保证维度的一致性;
  • 当Hive中的查询变得很长或复杂时,通过视图将这个查询语句分割成多个小的、更可控的片段可以降低这种复杂度;
  • Hive中需要通过视图限制基于条件过滤的数据时;

原文地址:https://www.cnblogs.com/sx66/p/12039521.html

时间: 2024-10-11 09:37:52

Hive视图如何创建、特点及应用场景的相关文章

Apache Kylin高级部分之使用Hive视图

本章节我们将介绍为什么需要在Kylin创建Cube过程中使用Hive视图:而如果使用Hive视图,能够带来什么好处,解决什么样的问题:以及需要学会如何使用视图,使用视图有什么限制等等. 1.      为什么需要使用视图 Kylin创建Cube的过程中使用Hive的表数据作为输入源.但是有些情况下,Hive中的表定义和数据并不能满足分析的需求,例如有些列的值需要进行处理,有些列的类型不满足需求,甚至有时候我们在创建Hive表时为了方便快捷,会将Hive表的所有列的字段类型都定义为string,因

Unity3D学习笔记之七创建自己的游戏场景

到现在为止我们已经拥有了比较完备的Prefab,已经可以创建宏大的游戏场景,并以第一人称视角在场景中漫游了.这里给大家做个小的示范,建一个小场景大家在创建场景的时候需要自由发挥,做个尽量大的场景出来. 这一系列教程以及素材均参考自人人素材翻译组出品的翻译教程<Unity游戏引擎的基础入门视频教程>,下载链接附在第二篇学习笔记中. 我们以最初的添加了First Person Controller的PFB_Straight为整个场景的中心点来展开.我们先从Project中Prefabs文件夹拖出来

Hive视图

Hive中的视图是只读的,所以无法通过视图向基表(base table)加载或插入数据. 视图的 SELECT 语句只在执行引用视图的语句时才执行. 对于上节用于 查询每年各个气象站气温最大值的均值 的HQL语句,可以先创建一个记录有效记录(即有特定quality值)的视图: CREATE VIEW valid_records AS SELECT * FROM records2 WHERE temperature != 999 AND (quality=0 OR quality=1 OR qua

视图的创建(根据已有的表)

Create View V_CouponTypeasSELECT CouponTypeId, CouponTypeNameFROM Gas_CN_Trade_B2C.dbo.CouponTypeWHERE (IsDeleted = 0) 视图的创建(根据已有的表),布布扣,bubuko.com

oracle 视图的创建,游标,left join

视图的创建: create or replace view dmv_mat_contract_stock_in_bill as select csib.*, sib.STOCK_IO_, sib.CONFIRM_DATE_ from DM_MAT_CONTRACT_STOCK_IN_BILL csib left outer join DM_MAT_STOCK_IO_BILL sib on csib.BILL_CODE_ = sib.BILL_CODE_; Oracle 游标使用:http://w

查询所有表名、字段名、类型、长度 和 存储过程、视图 的创建语句

-- 获得存储过程创建语句 select o.xtype,o.name,cm.text from syscomments cm inner join sysobjects o on o.id=cm.id where xtype ='p' order by o.xtype,o.name,cm.text -- 获得视图程创建语句 select o.xtype,o.name,cm.text from syscomments cm inner join sysobjects o on o.id=cm.i

oracle 物化视图及创建索引

物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询.这样对整体查询性能的提高,并没有实质上的好处. 1.物化视图的类型:ON DEMAND.ON COMMIT 二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性:而ON COMMIT是说,一旦基表有了C

SqlServer在视图上创建索引的条件

在视图上创建索引需要三个条件: 一.视图必须绑定到架构. 要做到这点,在 CREATE VIEW 语句中,必须加上 WITH SCHEMABINDING,如果是使用企业管理器,则在设计界面的空白处点击右键,属性,选中“绑定到架构”. 二.索引必须是唯一索引.  www.2cto.com 要做到这点,在 CREATE INDEX 中必须指定 UNIQUE. 三.索引必须是聚集索引. 要做到这点,在 CREATE INDEX 中必须指定 CLUSTERED. 例: CREATE VIEW viewF

myEclipse中无法在javaEE视图下创建项目的解决方案

在MyEclipse创建web项目的时候,向往常一样显示切换到javaee开发视图,然后创建web项目,但是很无奈的是创建的web项目并没有在package explorer中出现,而是在java视图下的project explorer下. 那么我是如何解决这个问题的呢? 1.首先将移除原工作空间.window->preferences->general->startup and startdown->workspaces->remove. 2.然后切换工作空间,file-&