Impala - 创建视图



视图只不过是存储在数据库中并关联了一个名称的 Impala 查询语言语句。它是以预定义的 SQL 查询形式组成的表。

视图可以包含表的全部行或选定的行。一个视图可以从一个或多个表创建。视图允许用户 -

  • 以用户或用户类别认为自然或直观的方式来结构化数据。

  • 限制对数据的访问,以便用户只能看到(有时)修改他们需要的内容,而不能更多。

  • 汇总来自各个表的的数据,这些数据可用于生成报表。

您可以使用 Impala 的 **Create View** 语句创建视图。

语法

以下是创建视图语句的语法。**IF NOT EXISTS** 是一个可选子句。如果我们使用此子句,则仅当指定数据库中不存在与给定名称相同的现有表时,才会创建具有给定名称的表。

Create View IF NOT EXISTS view_name as Select statement

示例

例如,假设我们在 Impala 的 **my_db** 数据库中有一个名为 **customers** 的表,其中包含以下数据。

ID  NAME      AGE   ADDRESS     SALARY
--- --------- ----- ----------- --------
1   Ramesh    32    Ahmedabad   20000
2   Khilan    25    Delhi       15000
3   Hardik    27    Bhopal      40000
4   Chaitali  25    Mumbai      35000
5   kaushik   23    Kota        30000
6   Komal     22    MP          32000

以下是 **Create View 语句** 的示例。在此示例中,我们正在创建一个名为 **customers** 表的视图,其中包含 name 和 age 列。

[quickstart.cloudera:21000] > CREATE VIEW IF NOT EXISTS customers_view AS 
select name, age from customers;

执行上述查询后,将创建具有所需列的视图,并显示以下消息。

Query: create VIEW IF NOT EXISTS sample AS select * from customers 
Fetched 0 row(s) in 0.33s

验证

您可以使用如下所示的 **select** 语句验证刚刚创建的视图的内容。

[quickstart.cloudera:21000] > select * from customers_view;

这将产生以下结果。

Query: select * from customers_view 
+----------+-----+ 
| name     | age | 
+----------+-----+ 
| Komal    | 22  | 
| Khilan   | 25  | 
| Ramesh   | 32  | 
| Hardik   | 27  | 
| Chaitali | 25  | 
| kaushik  | 23  | 
+----------+-----+ 
Fetched 6 row(s) in 4.80s

使用 Hue 创建视图

打开 Impala 查询编辑器,将上下文选择为 **my_db**,并在其中键入 **Create View** 语句,然后单击执行按钮,如下面的屏幕截图所示。

Creating View

执行查询后,如果向下滚动,您可以在表列表中看到创建的名为 **sample** 的 **视图**,如下所示。

Creating a View and Sample
广告

© . All rights reserved.