同义词(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 | -- +--------------+-------------------------+-------------+-----------------------+

相关文档

联系我们
预约咨询
微信咨询
电话咨询