视图是从数据库表中选取的数据组成的逻辑窗口,是一个虚拟机表。 引入视图后,用户可以专注于他们关心的数据。 如果数据来自多个基本表结构,且查找条件复杂,需要编写的查询语句就会很繁琐。 在这种情况下,可以使用视图来组合数据,使查询语句变得简单可行。

Hive中的视图是一个逻辑对象,与底层存储无关,也就是说视图中的数据不会持久化到HDFS上。 视图中的数据是语句查询的结果集。 创建视图后,您无法将数据插入或加载到视图中。 本节介绍如何创建视图和查询视图信息。

创建视图的语法如下:

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

上述语法的详细解释如下。

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

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

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

·:用于指定视图名称。

·:可选,用于指定列名。 如果不指定列名,则将通过查询语句生成列名。 生成的列名将与查询语句中数据表的列名保持一致。

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

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

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

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

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

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;

上面的命令根据内表中查询列的结果集在数据库中创建一个视图。 此时,视图仅包含列。 上述命令执行完毕后,执行“DESC;” Hive客户端工具中的命令可以查看数据库中视图的表结构信息。

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

查询查看信息

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

DESC [FORMATTED] view_table:

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

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

hive_hive和MySQL的区别_hive官网

视图的详细结构信息中没有出现参数(数据文件存储目录),这意味着视图的数据不会被实际存储,并且视图中的列和列的数据类型与视图一致内表中的列。 这意味着,如果创建视图时没有提供列名,则会通过查询语句生成列名,生成的列名会与查询语句中数据表的列名保持一致。

好了,今天的主题就讲到这里吧,不管如何,能帮到你我就很开心了,如果您觉得这篇文章写得不错,欢迎点赞和分享给身边的朋友。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注