在Data Lake Analytics中使用视图

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

内容简介:在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中使用视图》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Design for Hackers

Design for Hackers

David Kadavy / Wiley / 2011-10-18 / USD 39.99

Discover the techniques behind beautiful design?by deconstructing designs to understand them The term ?hacker? has been redefined to consist of anyone who has an insatiable curiosity as to how thin......一起来看看 《Design for Hackers》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

html转js在线工具
html转js在线工具

html转js在线工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具