日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

在Data Lake Analytics中使用视图

發(fā)布時(shí)間:2023/12/6 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Data Lake Analytics中使用视图 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在Data Lake Analytics中使用視圖

1. 概述

在Data Lake Analytics(以下簡(jiǎn)稱DLA)中使用視圖(VIEW)功能,可以大大簡(jiǎn)化對(duì)于重復(fù)SQL,特別是較為復(fù)雜的SQL語(yǔ)句的編寫(xiě)和維護(hù)。目前DLA中還不支持SQL視圖的物化。在使用DLA進(jìn)行跨多個(gè)數(shù)據(jù)源的聯(lián)合分析場(chǎng)景中,使用視圖,尤其能夠方便后續(xù)對(duì)于包含重復(fù)SQL片段的SQL查詢語(yǔ)句的編寫(xiě)和維護(hù)。

在介紹視圖的功能之前,需要注意兩個(gè)概念:
1)在DLA中,每個(gè)SCHEMA(https://help.aliyun.com/document_detail/72005.html)下的表必須屬于同一類數(shù)據(jù)源(通過(guò)CATALOG屬性指定),也必須屬于同一個(gè)LOCATION約束的數(shù)據(jù)源。

  • 對(duì)于OSS,SCHEMA中LOCATION指向一個(gè)目錄,后續(xù)在該SCHEMA下的表所指向的LOCATION必須從屬于該SCHEMA的LOCATION目錄;
  • 對(duì)于其他實(shí)例型數(shù)據(jù)源(比如Table Store、RDS等),SCHEMA中LOCATION指向一個(gè)實(shí)例URL,后續(xù)在該SCHEMA下的表必須也屬于該實(shí)例。

2)和表類似,視圖必須屬于一個(gè)SCHEMA,在SQL中引用視圖時(shí),可以通過(guò)“schema_name.view_name”來(lái)進(jìn)行引用,如果當(dāng)前數(shù)據(jù)庫(kù)連接的schema是視圖所屬的SCHEMA時(shí),在SQL中可以直接用視圖名進(jìn)行引用。

2. 創(chuàng)建視圖

語(yǔ)法:

CREATE [OR REPLACE] VIEW view_name [(column_list)] AS select_statement

例如:

CREATE OR REPLACE VIEW `basic_test`.`test_view_1_oss` AS SELECT * FROM nation ORDER BY n_nationkey

通過(guò)CREATE語(yǔ)句創(chuàng)建視圖。如果指定名稱的視圖之前在系統(tǒng)中已經(jīng)存在,則會(huì)報(bào)錯(cuò)提示視圖已經(jīng)存在。通過(guò)CREATE OR REPLACE方式,如果指定名稱的視圖之前在系統(tǒng)中已經(jīng)存在,則會(huì)進(jìn)行更新,用新的視圖定義替換之前的視圖定義。

3. 查詢視圖元數(shù)據(jù)

視圖元數(shù)據(jù)相關(guān)信息查詢的方式有很多種,下面一一列舉:

  • 查詢視圖的創(chuàng)建語(yǔ)句:

語(yǔ)法:

SHOW CREATE (TABLE | VIEW) view_name

例如:

SHOW CREATE VIEW basic_test.test_view_1_oss;+-----------------+-----------------------------------------------------------------------------------------+----------------------+----------------------+ | View | Create View | character_set_client | collation_connection | +-----------------+-----------------------------------------------------------------------------------------+----------------------+----------------------+ | test_view_1_oss | CREATE VIEW `basic_test`.`test_view_1_oss` AS SELECT * FROM nation ORDER BY n_nationkey | utf8 | utf8_general_ci | +-----------------+-----------------------------------------------------------------------------------------+----------------------+----------------------+
  • 查詢information_schema.views元數(shù)據(jù):
SELECT * FROM information_schema.views WHERE table_schema = 'basic_test';+---------------+--------------+-----------------+-------------------------------------------+--------------+--------------+---------------------+---------------+----------------------+----------------------+ | TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | VIEW_DEFINITION | CHECK_OPTION | IS_UPDATABLE | DEFINER | SECURITY_TYPE | CHARACTER_SET_CLIENT | COLLATION_CONNECTION | +---------------+--------------+-----------------+-------------------------------------------+--------------+--------------+---------------------+---------------+----------------------+----------------------+ | def | basic_test | test_view_1_oss | SELECT * FROM nation ORDER BY n_nationkey | NONE | YES | mysql.sys@localhost | INVOKER | utf8 | utf8_general_ci | | def | basic_test | test_view_2_oss | SELECT * FROM nation | NONE | YES | mysql.sys@localhost | INVOKER | utf8 | utf8_general_ci | +---------------+--------------+-----------------+-------------------------------------------+--------------+--------------+---------------------+---------------+----------------------+----------------------+

目前,DLA中不保存視圖定義的詳細(xì)列定義元數(shù)據(jù)信息。

4. 嵌套視圖

DLA支持視圖的嵌套,即VIEW 1定義指向VIEW 2,VIEW 2定義指向VIEW 3。

例如:

CREATE OR REPLACE VIEW view_1 (col1, col2, col3) AS SELECT * FROM tpch_test.nation ORDER BY n_nationkey;CREATE OR REPLACE VIEW view_2 (col_1, col_2) AS SELECT col1, col2 FROM view_1 a;

注意:

  • 在定義VIEW時(shí),VIEW中指向的SQL語(yǔ)句中,建議對(duì)引用的table都加上所屬的schema名,特別是在跨schema的場(chǎng)景下(schema1中的定義view,指向的SQL語(yǔ)句中目標(biāo)表有其他schema的table或view)。

5. 刪除視圖

語(yǔ)法:

DROP VIEW [IF EXISTS] view_name

總結(jié)

以上是生活随笔為你收集整理的在Data Lake Analytics中使用视图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。