Impala 创建视图


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

视图可以包含表的所有行或选定的行。可以从一个或多个表创建视图。视图允许用户:

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

  • 限制对数据的访问,以便用户可以查看和(有时)准确地修改他们需要的内容,而不是更多。

  • 汇总各种表格中的数据,这些表格可用于生成报告。

你可以使用创建视图 创建视图 Impala 的声明。

语法


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

Create View IF NOT EXISTS view_name as Select statement

例子


例如,假设我们有一个名为 顾客 in the my_db Impala 中的数据库,包含以下数据。

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

下面是一个例子 创建视图语句 .在这个例子中,我们创建一个视图为 顾客 包含列、名称和年龄的表。

[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 ,然后键入 创建视图 在其中声明并单击执行按钮,如下面的屏幕截图所示。

Creating View

执行查询后,如果向下滚动,你可以看到 view named sample 在表列表中创建,如下所示。

Creating a View and Sample