同义词(Synonym)
同义词(Synonym)为 Lakehouse 中的数据对象创建别名,让同一个对象可以用不同名称访问,无需复制数据。同义词属于 Schema,名称在同一 Schema 下必须唯一。
支持为以下对象创建同义词:table、table stream、dynamic table、materialized view、volume、function。
典型用途
| 场景 | 说明 |
|---|
| 跨 Schema 简化引用 | 在 schema02 中为 schema01 的表创建同义词,查询时无需写完整路径,数据实时一致 |
| 兼容旧名称 | 表重命名后,为旧名称创建同义词,存量 SQL 无需修改 |
| 抽象层隔离 | 保护客户端应用程序免受基础对象名称或位置变更的影响 |
创建语法
CREATE [TABLE|VOLUME|FUNCTION] SYNONYM [schema_name.]synonym_name FOR object [COMMENT ''];
object ::= workspace_name.schema_name.object_name | schema_name.object_name | object_name
对象类型关键字:
TABLE
TABLE
(默认):用于 table、table stream、dynamic table、materialized view。关键字可省略。
VOLUME
VOLUME
:为 volume 创建同义词时必须指定,否则系统默认寻找同名表对象。
FUNCTION
FUNCTION
:为 function 创建同义词时必须指定,否则系统默认寻找同名表对象。
删除语法
DROP [TABLE|VOLUME|FUNCTION] SYNONYM [IF EXISTS] [schema.]synonym_name;
权限管理
-- 授予创建同义词权限
GRANT CREATE SYNONYM ON SCHEMA schema_name TO USER user_name;
-- 授予删除同义词权限
GRANT DROP SYNONYM ON ALL SYNONYMS IN SCHEMA schema_name TO USER user_name;
同义词的查询权限与基对象权限相同:授予对同义词的权限等同于授予对基对象的权限,反之亦然。
使用示例
为 table 创建同义词
CREATE TABLE public.students (name STRING, class STRING);
-- 创建同义词
CREATE SYNONYM students_sy FOR public.students;
-- 通过同义词查询
SELECT * FROM students_sy;
-- 删除同义词
DROP SYNONYM students_sy;
为 table stream 创建同义词
CREATE SYNONYM students_stream_sy FOR public.students_stream;
DROP SYNONYM students_stream_sy;
为 dynamic table 创建同义词
CREATE SYNONYM event_group_minute_sy FOR public.event_group_minute;
DROP SYNONYM event_group_minute_sy;
为 materialized view 创建同义词
CREATE SYNONYM event_group_mv_sy FOR event_group_mv;
DROP SYNONYM event_group_mv_sy;
为 volume 创建同义词(VOLUME 关键字必填)
CREATE VOLUME SYNONYM hz_csv_volume_sy FOR public.hz_csv_volume;
DROP VOLUME SYNONYM hz_csv_volume_sy;
为 function 创建同义词(FUNCTION 关键字必填)
CREATE FUNCTION SYNONYM s_upper FOR public.swu_udf_upper;
DROP FUNCTION SYNONYM s_upper;
查看同义词
-- 列出当前 Schema 下的所有同义词
SHOW SYNONYMS;
-- 按条件过滤
SHOW SYNONYMS IN SCHEMA public WHERE synonym_name = 'students_sy';
-- 结果:
-- +--------------+-------------------------+-------------+-----------------------+
-- | synonym_name | create_time | target_type | target_name |
-- +--------------+-------------------------+-------------+-----------------------+
-- | students_sy | 2024-06-14 10:21:00.504 | TABLE | ql_ws.public.students |
-- +--------------+-------------------------+-------------+-----------------------+
相关文档