在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

在Data Lake Analytics中使用视图相关推荐

  1. 在Data Lake Analytics中使用视图 1

    在Data Lake Analytics中使用视图 1. 概述 在Data Lake Analytics(以下简称DLA)中使用视图(VIEW)功能,可以大大简化对于重复SQL,特别是较为复杂的SQL ...

  2. 如何在Data Lake Analytics中使用临时表

    2019独角兽企业重金招聘Python工程师标准>>> 前言 Data Lake Analytics (后文简称DLA)是阿里云重磅推出的一款用于大数据分析的产品,可以对存储在OSS ...

  3. Data Lake Analytics中OSS LOCATION的使用说明

    2019独角兽企业重金招聘Python工程师标准>>> 前言 Data Lake Analytic(后文简称 DLA)可以帮助用户通过标准的SQL语句直接对存储在OSS.TableS ...

  4. Data Lake Analytics: 基于OSS文件自动推断建表

    背景 用户在使用Data Lake Analytics对OSS上的数据建表时,需要预先知道目标文件的格式和schema信息.当目标文件中每条记录对应的列数很多时,需要一个个手动匹配,很不方便. 在新版 ...

  5. 【免费公测中】为数据赋予超能力,阿里云重磅推出Serverless数据分析引擎-Data Lake Analytics

    摘要: 近日,阿里云重磅推出Serverless数据分析引擎-Data Lake Analytics,Data Lake Analytics,帮助更多不具备分析能力的存储服务,赋予其分析的能力. 近日 ...

  6. 教程:使用Data Lake Analytics + OSS分析CSV格式的TPC-H数据集

    0. Data Lake Analytics(DLA)简介 关于Data Lake的概念,更多阅读可以参考: https://en.wikipedia.org/wiki/Data_lake 以及AWS ...

  7. Data Lake Analytics + OSS数据文件格式处理大全

    前言 Data Lake Analytics是Serverless化的云上交互式查询分析服务.用户可以使用标准的SQL语句,对存储在OSS.TableStore上的数据无需移动,直接进行查询分析. 目 ...

  8. 如何在阿里云上使用Data Lake Analytics分析Table Store数据

    0. Data Lake Analytics(简称DLA)介绍 数据湖(Data Lake)是时下热门的概念,更多阅读可以参考: https://en.wikipedia.org/wiki/Data_ ...

  9. Data Lake Analytics的Geospatial分析函数

    2019独角兽企业重金招聘Python工程师标准>>> 0. 简介 为满足部分客户在云上做Geometry数据的分析需求,阿里云Data Lake Analytics(以下简称:DL ...

最新文章

  1. oracle的sequence是什么,关于Oracle的序列(Sequence)使用内容是什么呢?
  2. sr锁存器 数电_随机存取存储器 RAM || SRAM || DRAM || 数电
  3. 如何在 SAP CRM WebClient UI 里在 Context node 上下文里访问其他 Context Node 的数据
  4. regular expression in SAP jam integration
  5. 基于ZYNQ实时目标检测系统
  6. 【华为云技术分享】MongoDB经典故障系列六:CPU利用率太高怎么办?
  7. 为Unity项目生成文档(一)
  8. OpenShift Security (2) - 安装 Red Hat Advanced Cluster Security(RHACS)
  9. WEB前端性能优化常见方法
  10. pb中控件变颜色_基于GDI+技术开发工业仪表盘控件
  11. matlab实验教程,matlab实验教程
  12. JAVA项目开发团队分配
  13. cadence基础学习
  14. Solaris 查看系统信息命令
  15. vs2008 web创作组件安装失败
  16. (二十四)美萍酒店管理系统:散客开单
  17. 网站分析实战总结(一)
  18. html字体倾斜45度,CSS3+JS 很酷的45度角斜射式照片墙效果
  19. opencv——椭圆环截取图像(圆环截取类似)
  20. Swift函数式编程十三(函子、适用函子、单子)

热门文章

  1. Linux系统文件编程(1)
  2. android 定位 广播,android - 如何触发广播接收器在GPS开启/关闭? - SO中文参考 - www.soinside.com...
  3. python 中的__getattr__和__setattr__
  4. 单选按钮步骤流程向导 js_创建令人愉快的按钮的6个步骤
  5. React setStats数组不更新,百思不得其解。
  6. 初学Vue.js,从头来过~
  7. 细说flush、ob_flush的区别
  8. 物联网数据终端演进之道
  9. PHP面向对象常见的关键字和魔术方法
  10. luajit日记-FFI库