impala 創(chuàng)建視圖

2018-01-03 17:16 更新

視圖僅僅是存儲在數(shù)據(jù)庫中具有關(guān)聯(lián)名稱的Impala查詢語言的語句。 它是以預(yù)定義的SQL查詢形式的表的組合。

視圖可以包含表的所有行或選定的行。 可以從一個或多個表創(chuàng)建視圖。 視圖允許用戶 - 

  • 以用戶或用戶類發(fā)現(xiàn)自然或直觀的方式結(jié)構(gòu)化數(shù)據(jù)。

  • 限制對數(shù)據(jù)的訪問,以便用戶可以看到和(有時)完全修改他們需要的內(nèi)容,而不再更改。

  • 匯總可用于生成報告的各種表中的數(shù)據(jù)。

您可以使用Impala的Create View語句創(chuàng)建視圖。

語法

以下是create view語句的語法。 IF NOT EXISTS是一個可選的子句。 如果使用此子句,則只有在指定數(shù)據(jù)庫中沒有具有相同名稱的現(xiàn)有表時,才會創(chuàng)建具有給定名稱的表。

Create View IF NOT EXISTS view_name as Select statement

例如,假設(shè)在Impala中的my_db數(shù)據(jù)庫中有一個名為customers的表,其中包含以下數(shù)據(jù)。

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語句的示例。 在此示例中,我們創(chuàng)建一個視圖為customers表,其中包含列,名稱和年齡。

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

執(zhí)行上述查詢時,將創(chuàng)建具有所需列的視圖,并顯示以下消息。

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

驗證

您可以使用select語句驗證剛創(chuàng)建的視圖的內(nèi)容,如下所示。

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

這將產(chǎn)生以下結(jié)果。

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創(chuàng)建視圖

打開Impala查詢編輯器,選擇上下文為my_db,并鍵入其中的Create View語句,然后單擊執(zhí)行按鈕,如下面的屏幕截圖所示。

創(chuàng)建視圖

執(zhí)行查詢后,如果向下滾動,您可以看到在表列表中創(chuàng)建的名為sample的視圖,如下所示。

創(chuàng)建視圖和樣本
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號