在Data Lake Analytics中使用視圖

在Data Lake Analytics中使用視圖

1. 概述

在Data Lake Analytics(以下簡稱DLA)中使用視圖(VIEW)功能,可以大大簡化對于重復SQL,特別是較為復雜的SQL語句的編寫和維護。目前DLA中還不支持SQL視圖的物化。在使用DLA進行跨多個數據源的聯合分析場景中,使用視圖,尤其能夠方便后續對于包含重復SQL片段的SQL查詢語句的編寫和維護。

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

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

2)和表類似,視圖必須屬于一個SCHEMA,在SQL中引用視圖時,可以通過“schema_name.view_name”來進行引用,如果當前數據庫連接的schema是視圖所屬的SCHEMA時,在SQL中可以直接用視圖名進行引用。

2. 創建視圖

語法:

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

通過CREATE語句創建視圖。如果指定名稱的視圖之前在系統中已經存在,則會報錯提示視圖已經存在。通過CREATE OR REPLACE方式,如果指定名稱的視圖之前在系統中已經存在,則會進行更新,用新的視圖定義替換之前的視圖定義。

3. 查詢視圖元數據

視圖元數據相關信息查詢的方式有很多種,下面一一列舉:

  • 查詢視圖的創建語句:

語法:

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元數據:
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中不保存視圖定義的詳細列定義元數據信息。

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時,VIEW中指向的SQL語句中,建議對引用的table都加上所屬的schema名,特別是在跨schema的場景下(schema1中的定義view,指向的SQL語句中目標表有其他schema的table或view)。

5. 刪除視圖

語法:

DROP VIEW [IF EXISTS] view_name

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280631.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280631.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280631.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C# 實例詳解委托之Func、Action、delegate(精品)

概述委托是.NET編程的精髓之一,在日常編程中經常用到,在C#中實現委托主要有Func、Action、delegate三種方式,本節主要就這三種委托的用法通過實例展開講解。Func用法解析【Func】:Func是帶返回值的委托:原型函數如下(以…

Django05-2:路由分發/命名空間/偽靜態/虛擬環境/django版本區別

路由分發 補充:每一個應用可以有獨立的templates模板文件夾,static靜態文件加,urls.py 總路由 #方法一from app01 import urls as app01_urls from app02 import urls as app02_urlsurlpatterns [url(r^publisher_list/, views.publisher_…

Word中查找替換軟回車鍵和回車鍵

在Word中使用搜索功能搜索“^p”組合字符串可以查找文檔中的所有換行符(回車鍵),使用“^l”(英文輸入狀態下shift6與小寫字符L的組合)可以搜索所有的軟回車符。使用替換功能就可以搜索替換二者。轉載于:https://www.cn…

minecraft服務器_如何使用Minecraft領域設置簡單的無壓力Minecraft服務器

minecraft服務器There are a lot of ways to go about hosting a Minecraft game but it’s tough to beat the simplicity of buying a server directly from Mojang, the company behind Minecraft (and now it even comes with a free 30 day trial!) Read on as we show yo…

自動化測試基礎篇--Selenium瀏覽器操作

Selenium 主要提供的是操作頁面上各種元素的方法,但它也提供了操作瀏覽器本身的方法,比如瀏覽器的大小以及瀏覽器后退、前進按鈕等。一、控制瀏覽器窗口大小有時候我們希望能以某種瀏覽器尺寸打開,讓訪問的頁面在這種尺寸下運行。例如可以將瀏…

Sublime text3配置xdebug調試記錄

第一次配置遇到的問題記錄; 問題:配置php.ini的時候xdebug.remote_port 9001剛開始我一直配置9000端口沖突,然后一切弄好了訪問瀏覽器就一直在轉圈無法訪問; 現在開始配置: 1.打開sublime 輸入install Package如下顯示在按回車&a…

.NET Conf China 2022 今天(12.4) 日程一覽

點擊藍字關注我們.NET Conf China 2022 誠邀您的加入立即掃碼預約加入.NET年度盛宴!!CSDN 直播https://bbs.csdn.net/forums/DotNET?typeId20680 思否直播https://segmentfault.com/area/dotnetconf-2022主論壇分論壇前端專場-A會場出品人:張…

移動web開發適配rem

移動的meta標簽 <meta name"viewport" content"widthdevice-width, initial-scale1,user-scalableno"> 常見移動web適配方法&#xff1a; 1.定高&#xff0c;百分比布局 2.flex布局 3.media媒體查詢 rem&#xff08;font size of the root element…

Django06:視圖層/上傳文件/request 方法補充/FBV與CBV

三板斧 HttpResponse, 返回字符串類型render, 返回html頁面&#xff0c;而且在返回給瀏覽器之前&#xff0c;可以給html文件傳值redirect 重定向 總結&#xff1a;視圖函數必須返回一個HttpResponse對象&#xff0c; 查看源代碼能發現。 JsonResponse對象 json用途&#x…

《Java核心技術 卷Ⅱ 高級特性(原書第10版)》一2.4.6 為克隆使用序列化

2.4.6 為克隆使用序列化 序列化機制有一種很有趣的用法&#xff1a;即提供了一種克隆對象的簡便途徑&#xff0c;只要對應的類是可序列化的即可。其做法很簡單&#xff1a;直接將對象序列化到輸出流中&#xff0c;然后將其讀回。這樣產生的新對象是對現有對象的一個深拷貝&…

談談ASP.NET Core過濾器和中間件的區別

什么是中間件中間件Middleware是所有請求都會執行的,適合用在權限校驗,一些公用字段處理,例如分頁信息獲取.asp.net core 提供了IApplicationBuilder接口來讓把中間件注冊到asp.net的管道請求當中去&#xff0c;中間件是一個典型的AOP應用。下面是一個微軟官方的一個中間件管道…

11 個 Nginx 參數性能優化工作

工作上&#xff0c;需要配置 Nginx&#xff0c;要投入生產使用&#xff0c;做了一點優化工作&#xff0c;加上以前也經常折騰 Nginx&#xff0c;故記下一些優化工作。 優化 Nginx 進程數量 配置參數如下&#xff1a; worker_processes 1; # 指定 Nginx 要開啟的進程數&#xff…

如何在Windows 8中將舊控制面板添加到Metro Start屏幕

By default there is no way to easily access the old Control Panel in Windows 8, in order to get to it you have to go through the new Metro Control Panel or switch to Explorer. Here’s how to create your own tile for it. 默認情況下&#xff0c;無法輕松訪問Wi…

vue子父組件間傳值

父組件傳值給子組件 props方式   父組件上1處聲明傳遞的鍵并賦值&#xff0c;子組件2處使用props接收一下這個鍵就可以使用了。在父組件改變這個值的話子組件跟著一起響應&#xff0c;子組件改變這個值的話父組件不改變。次為響應式&#xff0c;但是也僅限于父組件的值變化子…

Django07:模板語法/標簽/inclusion_tag/模版的繼承

模板語法傳值 列表&#xff1a;l[a,b,c] 集合&#xff1a;se{‘a’,yy,ss} 元組&#xff1a;t(111,222,333) render(request.index,html,locals()) 語法規律 {{}}:變量相關 {%%}:邏輯相關 {{func}} 會自動加括號執行&#xff0c;但不支持帶參數&#xff1b; 帶參數會不…

紅象云騰發布新一代PB級高速大數據平臺產品

ZD至頂網服務器頻道 03月23日 新聞消息&#xff1a;在3月19日舉辦的China Hadoop Summit&#xff08;中國Hadoop技術峰會&#xff09;上&#xff0c;中國Hadoop大數據廠商紅象云騰與OpenPOWER基金會共同發布紅象云騰的新一代大數據產品,幫助企業高速處理PB規模數據。 此次發布…

個人筆記 Vue.js, Framework7, and Cordova / PhoneGap Template with Babel, Webpack and Hot Reloading...

為什么80%的碼農都做不了架構師&#xff1f;>>> 模板創建項目 模板地址 更新package.json中的dependencies依賴到最新版本 當新建一個項目的時候&#xff0c;從其他項目的package.json里面copy一份dependencies過來。 但因為是新項目&#xff0c;我們想用各個依賴包…

dotnet-exec 0.12.0 released

dotnet-exec 0.12.0 releasedIntrodotnet-exec 是一個 C# 程序的小工具&#xff0c;可以用來運行一些簡單的 C# 程序而無需創建項目文件&#xff0c;讓 C# 像 python/nodejs 一樣簡單&#xff0c;而且可以自定義項目的入口方法&#xff0c;支持但不限于 Main 方法。Install/Upd…

美國用戶現在可以下載其所有Apple帳戶數據,這是操作方法

Starting today, Apple is allowing all US users to download a copy of every last bit of their data from the company. 從今天開始&#xff0c;Apple允許所有美國用戶從該公司下載其數據的最后一部分的副本。 This feature has been available for EU users since May, th…

java 的原碼、補碼、反碼小總結

先看一個代碼吧: int h; return (key null) ? 0 : (h key.hashCode()) ^ (h >>> 16); 這個應該很熟悉吧,是 java 里 HashMap 的計算 hash 值的方法.這里有一個運算符 "^"&#xff0c;他其實就是使用補碼來運算的.好了&#xff0c;那么我們下面來說說這些…