更新时间:2024-12-25 GMT+08:00
分享

SHALLOW CLONE

命令功能

SHALLOW CLONE 命令在特定版本创建现有Delta表的浅拷贝。被克隆的信息包括:schema、分区信息、数据文件路径等。

对克隆表所做的任何更改都只会影响克隆本身,而不会影响源表,只要它们不触及源数据。注意克隆表可能仍会指向源表的数据文件,当源表做了vacuum操作时,可能导致克隆表找不到文件。

命令格式

CREATE TABLE [target_db.]target_table

SHALLOW CLONE [source_db.]source_table|DELTA.`obs://bucket_name/tbl_path`

location 'obs://bucket_name/tbl_path'

参数描述

表1 SHALLOW CLONE参数描述

参数

描述

target_db

目标Database名称,由字母、数字和下划线(_)组成。

target_table

目标表名,由字母、数字和下划线(_)组成。

source_db

源Database名称,由字母、数字和下划线(_)组成。

source_table

源表名,由字母、数字和下划线(_)组成。

bucket_name

obs桶名称。

tbl_path

Delta表在obs桶中的存储位置。

constraint_name

约束名称。

boolExpression

约束条件表达式。

所需权限

  • SQL权限
表2 SHALLOW CLONE所需权限列表

权限描述

目标库的CREATE_TABLE权限

源表的SELECT权限

  • 细粒度权限:dli:database:createTable, dli:table:select。
  • LakeFormation提供的元数据服务,权限配置详见LakeFormation文档。

示例

CREATE OR REPLACE TABLE delta_table1 SHALLOW CLONE delta_table0 LOCATION 'obs://bucket0/db0/delta_table1';
CREATE TABLE delta.`obs://bucket0/db0/delta_table1` SHALLOW CLONE delta_table0 VERSION AS OF 10;

系统响应

可在执行历史或作业列表中查看任务运行成功或失败。

相关文档