共用方式為


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 目錄中不支援淺層複製。 請參閱 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]

參數

  • IF NOT EXISTS

    如果指定,則如果 table_name 已經存在,則會忽略 語句。

  • [CREATE OR]取代

    如果指定了 CREATE OR,若資料表存在則會取代它;若不存在則會新建該資料表。 CREATE OR沒有 table_name 必須存在。

  • table_name

    要建立之 Delta Lake 數據表的名稱。 名稱不得包含 時態規格或選項規格。 如果未指定名稱,則會在目前的架構中建立數據表。 table_name除非已指定 或 REPLACE ,否則IF NOT EXISTS不得已經存在。

  • 淺層複製或深層複製

    如果您指定 SHALLOW CLONE,Azure Databricks 會建立源表定義的複本,但仍會參考源表的檔案。 當您指定 DEEP CLONE(預設)時,Azure Databricks 將製作源數據表的完整且獨立的複本。

  • source_table_name

    要複製之 Delta Lake 數據表的名稱。 名稱可能包含 時態規格或選項規格

  • TBLPROPERTIES

    選擇性地設定一或多個使用者定義的屬性。

  • 位置路徑

    選擇性地建立外部數據表,並提供的位置做為儲存數據的路徑。 如果 table_name 本身是路徑,而不是數據表標識符,則作業將會失敗。 path 必須是 STRING 常值。

範例

您可以 CREATE TABLE CLONE 用於複雜的作業,例如數據遷移、數據封存、機器學習流程重現、短期實驗和數據共用。 請參閱 在 Azure Databricks上複製數據表。