首页 > 其他分享 >Hive中怎样创建和查询视图信息?

Hive中怎样创建和查询视图信息?

时间:2023-07-04 22:46:56浏览次数:31  
标签:语句 name Hive 查询 视图 table view

视图是从数据库的数据表中选取出来的数据组成的逻辑窗口,它是一个虚拟机表。引入视图后,用户可以将注意力集中在关心的数据上,如果数据来源于多个基本表结构,并且搜索条件比较复杂时,需要编写的查询语句就会比较烦琐,此时可以使用视图将数据查询语句变得简单可行。

Hive中的视图是一种无关底层存储的逻辑对象,也就是说视图中的数据并不会持久化到HDFS中。视图中的数据是来自SELECT语句查询的结果集,一旦视图创建完成,便不能向视图中插入或者加载数据。本节针对视图的创建和查询视图信息进行讲解。

创建视图的语法格式如下:

CREATE VIEW [IF NOT EXISTS] [db_name.]view_name
[(column_name [COMMENT column_comment], ...) ]
  [COMMENT view_comment]
  [TBLPROPERTIES (property_name = property_value, ...)]
AS SELECT...1

上述语法的具体讲解如下。

·CREATEVIEW:表示创建视图的语句,创建视图时无法指定列的数据类型,列的数据类型与查询语句中数据表对应列的数据类型一致。

·IFNOTEXISTS:可选,判断创建的视图是否存在。

·db_name:可选,用于指定创建视图的数据库。

·view_name:用于指定视图名称。

·column_name:可选,用于指定列名,若没有指定列名,则通过查询语句生成列名,生成的列名与查询语句中数据表的列名一致。

·COMMENTcolumn_comment:可选,用于指定列描述。

·COMMENT view_comment:可选,用于指定视图描述。

·TBLPROPERTIES(property_name=property_value,…):可选.用于指定视图的属性。

·AS SELECT:用于指定查询语句。

接下来,在虚拟机Node_03中使用Hive客户端工具Beeline.远程连接虚拟机Node_02的HiveServer2服务操作Hive.在数据库hive_database中创建视图view_table,具体命令如下。

CREATE VIEW IF NOT EXISTS hive_database.view_table
 COMMENT "This is a view table"
AS SELECT staff_name FROM hive_database.managed_table_new;

上述命令根据查询内部表managed_table_new中列staff_name的结果集,在数据库hive_database 中创建视图 view_table,此时视图 view_table 中只包含列 staff_name。上述命令执行完成后,在Hive客户端工具Beeline中执行"DESC view_table;”命令,查看数据库hive_database中视图view_table的表结构信息。

注意:若创建视图时,查询语句中包含表达式,则列名称会以_c0,_cl表示,例如查询语句中以X+Y的方式查询列X和列Y,则视图中显示这两列数据的列名为_c0和_cl。

查询视图信息

查询视图信息的语法格式如下。

DESC [FORMATTED] view_table:

接下来,在虚拟机Node_03中使用Hive客户端工具Beeline,远程连接虚拟机Node_02的HiveServer2服务操作Hive,查看视图view_table的详细结构信息和基本结构信息,具体命令如下。

/ * 查看视图view_table的详细结构信息 * /
DESC FORMATTED view_table;
/ * 查看视图view_table的基本结构信息 * /
DESC view_table;

 

在视图view_table的详细结构信息中并没有出现Location参数(数据文件存放目录),这说明视图的数据并不会进行实际存储,并且视图view_table中列以及列的数据类型与内部表managed_table中列 staff_name一致,说明若创建视图时没有提供列名,则通过查询语句生成列名,生成的列名与查询语句中数据表的列名一致。

标签:语句,name,Hive,查询,视图,table,view
From: https://www.cnblogs.com/fcjedorfjoeij/p/17527257.html

相关文章

  • 自定义报表查询不出来
    现象,生产环境复核,收货报表查询不出来,配置的为OMS数据库原因:rp_db_connection中的pm_code重复,导致错误修改pm_code在修改数据源的时候发现启用或停用会一起更新,发现数据错误。 自定义配置中的对应的db_pm_code也需要更新,也可以通过界面重新选择数据库来更新。rp_report_da......
  • 012双写一致性之定时更新,异步发送短信,异步秒杀逻辑前后端,课程页面前端,课程相关表分析,
    0双写一致性之定时更新#一旦加入缓存,就会出现数据不一致的请请求#双写一致性问题 -1改数据,删缓存-2改数据,改缓存-3定时更新#首页轮播图存在双写一致性问题这个问题 -以现在的技术水平(信号),做不到:改数据删缓存 -能选择的就是定时更新 -轮播......
  • 013查询所有课程接口,课程详情接口,课程详情后台之所有章节接口,所有课程前台,课程详情前
    1查询所有课程接口#查询所有课程接口 -带过滤:按分类过滤-带排序:价格,学习人数-带分页:简单分页1.1视图类classCourseView(GenericViewSet,ListModelMixin):queryset=Course.objects.filter(is_delete=False,is_show=True).order_by('orders')seria......
  • mysql数据库语法总结--存储过程、函数、视图、触发器、表
    ​概述抽空总结一下mysql的一些概念性内容,涉及存储过程、函数、视图、触发器等。一、查看存储过程、函数、视图、触发器、表1、存储过程select*frommysql.procwheretype='PROCEDURE';showprocedurestatus;showcreateprocedureproc_name;//存储过程定义​编......
  • .Net下验证MongoDB 的 Linq 模式联合查询是否可用
    MongoDB.Driver类库提供了Linq查询的支持。然而,在使用Linq进行联合查询时,是否能够正确转换为MongoDB底层的查询语句还有待验证。今天,我将进行实验来验证一下。输出查询语句首先,通过订阅MongoClientSettings的功能,将查询语句输出。varsettings=MongoCli......
  • 记录XPO查询 日志
    记录由XPO产生和执行的sql语句//z2013-02-2714:01:[email protected][T215,L2906,R88,V3140]1.在App.Config中添加如下行:[XML]<?xmlversion="1.0"encoding="utf-8"?><configuration><system.diagnostics><switches&......
  • SQL Server 查询数据表字段及字段注释
    SELECTCASEWHENcol.colorder=1THENobj.nameELSE''ENDAS表名,col.colorderAS序号,col.nameAS列名,ISNULL(ep.[value],'')AS列说明,t.nameAS数据类型,col.lengthAS长度,ISNULL(COLUMNPROPERTY(col.id,col.name,'Scale'),0)AS小数位数......
  • fastadmin对查询结果集进行分页
    //$arr=array();//if(!empty($arr)){//foreach($arras$key=>$value){//foreach($value['productList']as$k=>$v){//$list[]=$v;......
  • SQLServer中查询表结构(表主键 、列说明、列数据类型、所有表名)的Sql语句
    --快速查看表结构SELECT CASEWHENcol.colorder=1THENobj.name                 ELSE''            ENDAS表名,       col.colorderAS序号,       col.nameAS列名,       ISNULL(ep.[value],'')AS列说......
  • DSL查询语法
    DSL的查询语法很多,可在官方网站找到相关资料查询所有全文检索查询:利用分词器对用户输入内容分词,然后去倒序索引中匹配精确查询:根据精确词条查询数据,一般查找keyword,日期,数值等字段地理查询:根据经纬度查询符合查询:上面查询类型的组合查询模板GET /indexName/_search{ ......