在Data Lake Analytics中使用视图

简介: 在Data Lake Analytics中使用视图 1. 概述 在Data Lake Analytics(以下简称DLA)中使用视图(VIEW)功能,可以大大简化对于重复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/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
相关实践学习
对象存储OSS快速上手——如何使用ossbrowser
本实验是对象存储OSS入门级实验。通过本实验,用户可学会如何用对象OSS的插件,进行简单的数据存、查、删等操作。
目录
相关文章
|
2天前
|
人工智能 弹性计算 运维
|
23天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
9天前
|
人工智能 缓存 安全
Claude Code 封号真实原因曝光,这次彻底不装了,直接针对国内开发者的账号下手?
Claude Code 封号潮背后:逆向扒出客户端隐写区域标记,Anthropic 政策收紧叠加 DeepSeek 7 月涨价,国产替代更紧迫。
|
14天前
|
人工智能 JSON 自然语言处理
让教学更智慧:用阿里云百炼工作流,自动生成中小学教材内容#小有可为#有温度的AI
通过可视化工作流编排,将大模型推理能力转化为标准化的教学内容生成引擎。教师只需输入教材标题和适用学段,即可自动获得结构完整、符合课程标准的章节内容,大幅降低备课门槛,助力教育资源均衡化。
502 127
|
18天前
|
存储 人工智能 监控
QoderWork完全指南:从入门到精通,把“AI实习生”变成你的全能工作搭档
阿里云2026年推出的桌面端AI工作助手QoderWork,不止聊天,更可动手干活:本地运行、安全可控,支持文件整理、数据分析、PPT生成、网页开发等;内置专家套件、多Agent协作与自定义Skills,让AI真正成为你身边的“AI实习生”。
|
7天前
|
人工智能 编解码 物联网
2026 最新Stable Diffusion 本地部署教程 下载安装使用详细图解(含官网安装包)
Stable Diffusion(SD)是2022年发布的开源文生图模型,由Stability AI等联合开发。支持文生图、图生图、局部重绘等,依托VAE降低算力需求,可在消费级显卡运行。本文提供秋葉aaaki制作的Windows整合包(含图形界面与插件),开箱即用,零配置启动。
|
9天前
|
人工智能 安全 程序员
终于,Claude Code 封号的原因被曝光了!竟然针对中国用户,植入隐形代码?!
通俗易懂地揭秘 Claude Code 封号的手段,分享一些自己对 AI 编程困境的思考,Codex、Cursor、DeepSeek、智谱 GLM、甚至是豆包,都有所行动了
499 1
|
10天前
|
人工智能 安全 Cloud Native
Higress 新发布:AI Gateway 能力增强,Gateway API 及其推理扩展持续打磨
增强 AI 网关能力,持续打磨 Gateway API 及其推理扩展。
416 125
|
17天前
|
人工智能 弹性计算 API
什么是 AlibabaCloud Agent Toolkit
Alibaba Cloud Agent Toolkit 是面向AI Agent的阿里云智能工具套件,集成OpenAPI、Terraform、CLI与文档能力,提供MCP插件、场景化Skills及执行审计机制,助AI准确查API、生成代码、规划架构、校验部署,实现安全、可靠、可追溯的云上智能运维。
439 2