博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Data Lake Analytics中使用视图
阅读量:5949 次
发布时间:2019-06-19

本文共 3541 字,大约阅读时间需要 11 分钟。

在Data Lake Analytics中使用视图

1. 概述

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

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

1)在DLA中,每个SCHEMA()下的表必须属于同一类数据源(通过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 REPLACEVIEW `basic_test`.`test_view_1_oss`ASSELECT *FROM nationORDER 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 nationORDER 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 nationORDER 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) ASSELECT *FROM tpch_test.nationORDER BY n_nationkey;CREATE OR REPLACE VIEW view_2 (col_1, col_2) ASSELECT 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://phsxx.baihongyu.com/

你可能感兴趣的文章
android 全局变量和局部变量命名规则
查看>>
Ubuntu Sub-process /usr/bin/dpkg
查看>>
详解DNS的常用记录(下):DNS系列之三
查看>>
linux的日志服务器关于屏蔽一些关键字的方法
查看>>
事情的两面性
查看>>
只要会营销,shi都能卖出去?
查看>>
TCP/IP三次握手详细过程
查看>>
sed单行处理命令奇偶行输出
查看>>
走向DBA[MSSQL篇] 从SQL语句的角度 提高数据库的访问性能
查看>>
VC++深入详解学习笔记1
查看>>
安装配置discuz
查看>>
CentOS7 64位小型操作系统的安装
查看>>
线程互互斥锁
查看>>
KVM虚拟机&openVSwitch杂记(1)
查看>>
win7下ActiveX注册错误0x80040200解决参考
查看>>
《.NET应用架构设计:原则、模式与实践》新书博客--试读-1.1-正确认识软件架构...
查看>>
网址收藏
查看>>
2013 Linux领域年终盘点
查看>>
大学生暑期实践活动---关注少数民族孤寡老人
查看>>
linux学习之查看程序端口占用情况
查看>>