CREATE TABLE CLONE
适用于: Databricks SQL Databricks Runtime
将源 Delta 表克隆到特定版本的目标位置。 克隆可以是深层克隆,也可以是浅表克隆:深层克隆会复制源中的数据,而浅表克隆则不复制。 还可以克隆源 Parquet 和 Iceberg 表。 请参阅将 Parquet 表和 Iceberg 表增量克隆到 Delta Lake。
在 Databricks SQL 和 Databricks Runtime 13.3 LTS 及更高版本中,可以对 Unity Catalog 托管表使用浅表克隆。 在 Databricks Runtime 12.2 LTS 及更低版本中,Unity Catalog 不支持浅表克隆。 请参阅适用于 Unity Catalog 表的浅表克隆。
重要
浅表克隆和深层克隆之间存在重要差异,这也决定了如何更好地使用它们。 请参阅克隆 Azure Databricks 上的表。
语法
CREATE TABLE [IF NOT EXISTS] table_name
[SHALLOW | DEEP] CLONE source_table_name [TBLPROPERTIES clause] [LOCATION path]
[CREATE OR] REPLACE TABLE table_name
[SHALLOW | DEEP] CLONE source_table_name [TBLPROPERTIES clause] [LOCATION path]
parameters
IF NOT EXISTS
如果已指定,则忽略语句(如果已存在
table_name
)。[CREATE OR] REPLACE
如果已指定
CREATE OR
,则替换表(如果存在)和新建表(如果不存在)。 在没有CREATE OR
的情况下,table_name
必须存在。-
要创建的 Delta Lake 表的名称。 名称不得包含时态规范。 如果未限定该名称,则会在当前架构中创建该表。 不得存在
table_name
,除非已指定REPLACE
或IF NOT EXISTS
。 SHALLOW CLONE 或 DEEP CLONE
如果指定
SHALLOW CLONE
,Azure Databricks 将复制源表的定义,但引用源表的文件。 如果指定DEEP CLONE
(默认),Azure Databricks 将创建源表的完整独立副本。-
要克隆的 Delta Lake 表的名称。 该名称可能包含时态规范。
-
(可选)设置一个或多个用户定义的属性。
LOCATION path
(可选)创建一个外部表,并将所提供的位置作为存储数据的路径。 如果
table_name
本身是路径而不是表标识符,则此操作会失败。path
必须是字符串字面量。
示例
可以使用 CREATE TABLE CLONE
执行复杂的操作,例如数据迁移、数据存档、机器学习流复现、短期试验和数据共享。 请参阅克隆 Azure Databricks 上的表。