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'
参数描述
参数 |
描述 |
---|---|
target_db |
目标Database名称,由字母、数字和下划线(_)组成。 |
target_table |
目标表名,由字母、数字和下划线(_)组成。 |
source_db |
源Database名称,由字母、数字和下划线(_)组成。 |
source_table |
源表名,由字母、数字和下划线(_)组成。 |
bucket_name |
obs桶名称。 |
tbl_path |
Delta表在obs桶中的存储位置。 |
constraint_name |
约束名称。 |
boolExpression |
约束条件表达式。 |
所需权限
- SQL权限
权限描述 |
---|
目标库的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;
系统响应
可在执行历史或作业列表中查看任务运行成功或失败。