文档首页/ MapReduce服务 MRS/ 组件操作指南(LTS版)/ 使用Iceberg(MRS 3.6.0.1及之后版本)/ 基于Spark使用Iceberg/ Iceberg DDL语法说明/ VIEW
更新时间:2026-06-11 GMT+08:00
VIEW
Iceberg视图的设计目标是提供引擎无关的视图定义,确保同一视图可以在不同的查询引擎中保持一致的行为和结果,增强了数据查询的灵活性和兼容性。
Iceberg视图是SQL视图的一种通用表示形式,旨在跨多个查询引擎进行解析。以下内容介绍如何在Spark 3.4及之后版本中创建和管理视图。
基本语法
- 创建视图
CREATE VIEW <viewName> AS SELECT * FROM <tableName>;
使用IF NOT EXISTS可避免因视图已存在而导致语句执行失败:
CREATE VIEW IF NOT EXISTS <viewName> AS SELECT * FROM <tableName>;
创建包含注释的视图,其中可包含与源表不同的列别名和列注释:
CREATE VIEW <viewName> (ID COMMENT 'Unique ID', ZIP COMMENT 'Zipcode') COMMENT 'View Comment' AS SELECT id, zip FROM <tableName>;
- 创建包含属性的视图:
CREATE VIEW <viewName> TBLPROPERTIES ('key1' = 'val1', 'key2' = 'val2') AS SELECT * FROM <tableName>;查看视图的属性:
SHOW TBLPROPERTIES <viewName>;
- 删除视图
- 删除已存在的视图:
DROP VIEW <viewName>;
- 如果视图不存在时不希望语句执行失败,可使用IF EXISTS关键字:
DROP VIEW IF EXISTS <viewName>;
- 删除已存在的视图:
- 更新视图
如果需要更新视图的Schema、属性或底层SQL语句,可使用CREATE OR REPLACE语句覆盖原有视图:
CREATE OR REPLACE VIEW <viewName> (updated_id COMMENT 'updated ID') TBLPROPERTIES ('key1' = 'new_val1') AS SELECT id FROM <tableName>; - 设置或移除视图属性
- 使用ALTER VIEW ... SET TBLPROPERTIES为已存在的视图设置属性:
ALTER VIEW <viewName> SET TBLPROPERTIES ('key1' = 'val1', 'key2' = 'val2'); - 使用ALTER VIEW ... UNSET TBLPROPERTIES从已存在的视图中移除属性:
ALTER VIEW <viewName> UNSET TBLPROPERTIES ('key1', 'key2');
- 使用ALTER VIEW ... SET TBLPROPERTIES为已存在的视图设置属性:
- 查看视图
查看当前已设置的命名空间(通过USE <namespace>设置)中的所有视图:
SHOW VIEWS;
查看指定目录或命名空间中的所有可用视图:
- 查看指定命名空间(namespace)中的所有视图:
SHOW VIEWS IN <namespace>;
- 查看指定目录和命名空间组合中的所有视图:
SHOW VIEWS IN <catalog>.<namespace>;
- 查看指定命名空间(namespace)中的所有视图:
- 查看创建视图的语句:
SHOW CREATE TABLE <viewName>;
- 使用DESCRIBE查看视图详情:
DESCRIBE [EXTENDED] <viewName>;
父主题: Iceberg DDL语法说明