在Data Lake Analytics中使用视图

栏目: 数据库 · 发布时间: 6年前

内容简介:在Data Lake Analytics中使用视图在Data Lake Analytics(以下简称DLA)中使用视图(VIEW)功能,可以大大简化对于重复SQL,特别是较为复杂的SQL语句的编写和维护。目前DLA中还不支持SQL视图的物化。在使用DLA进行跨多个数据源的联合分析场景中,使用视图,尤其能够方便后续对于包含重复SQL片段的SQL查询语句的编写和维护。在介绍视图的功能之前,需要注意两个概念:

在Data Lake Analytics中使用视图

  1. 概述

在Data Lake Analytics(以下简称DLA)中使用视图(VIEW)功能,可以大大简化对于重复SQL,特别是较为复杂的 SQL 语句的编写和维护。目前DLA中还不支持SQL视图的物化。在使用DLA进行跨多个数据源的联合分析场景中,使用视图,尤其能够方便后续对于包含重复SQL片段的SQL查询语句的编写和维护。

在介绍视图的功能之前,需要注意两个概念:

1)在DLA中,每个SCHEMA( https://help.aliyun.com/docum... )下的表必须属于同一类数据源(通过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中可以直接用视图名进行引用。

  1. 创建视图

语法:

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方式,如果指定名称的视图之前在系统中已经存在,则会进行更新,用新的视图定义替换之前的视图定义。

  1. 查询视图元数据

视图元数据相关信息查询的方式有很多种,下面一一列举:

查询视图的创建语句:

语法:

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中不保存视图定义的详细列定义元数据信息。

  1. 嵌套视图

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)。

  1. 删除视图

语法:

DROP VIEW [IF EXISTS] view_name

本文作者:julian.zhou

阅读原文

本文为云栖社区原创内容,未经允许不得转载。


以上所述就是小编给大家介绍的《在Data Lake Analytics中使用视图》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Google成功的七堂课

Google成功的七堂课

罗耀宗 / 电子工业出版社 / 2005-7 / 28.00元

Google是全球使用人数最多的搜索引擎,在短短几年内,Google从斯坦福大学的实验室,茁壮成长为举世瞩目的IT业超级巨人,他们的成功绝非偶然,尤其是在网络泡沫破灭,行业一片萧条之际,它的崛起更为IT业带来一缕曙光。作者从趋势观察家的角度,以讲座的形式,向读者讲述Google成功的关键因素:破除因循守旧、不断打破常规,核心技术领先、做出了“更好的捕鼠器”,使得Google在搜索技术方面远远超越对......一起来看看 《Google成功的七堂课》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码