適用対象: Databricks SQL
Databricks Runtime
ソース Delta、マネージド Apache Iceberg、または Apache Parquet テーブルを、特定のバージョンのターゲットの場所に複製します。 複製は、深い複製でも浅いクローンでもかまいません。ディープ クローンはデータをコピーし、浅いクローンではコピーせずにソース データを参照します。
- Delta テーブル、 Parquet テーブル、 Foreign Iceberg テーブルでは、深い複製と浅い複製の両方がサポートされます。
- マネージド Iceberg テーブルではディープ 複製のみがサポートされ、複製中にテーブル形式を変更することはできません。
詳細については、「 Parquet テーブルと Apache 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]
パラメーター
存在しない場合
指定した場合、
table_name
が既に存在するとステートメントは無視されます。[作成または] 置換
CREATE OR
が指定されている場合、テーブルが存在していれば置き換えられ、存在しない場合は新しく作成されます。CREATE OR
がない 場合は、table_name
が存在している必要があります。-
作成されるテーブルの名前。 名前には、一時的な仕様またはオプションの仕様を含めることはできません。 名前が修飾されていない場合、テーブルは現在のスキーマに作成されます。
REPLACE
またはIF NOT EXISTS
が指定されていない限り、table_name
はまだ存在してはなりません。 シャロー クローンまたはディープ クローン
Azure Databricks
SHALLOW CLONE
指定すると、ソース テーブルの定義のコピーが作成されますが、ソース テーブルのファイルを参照します。DEEP CLONE
(既定値) を指定すると、Azure Databricks により、ソース テーブルの完全かつ独立したコピーが作成されます。管理された Iceberg テーブルでは、浅い複製ではなく、詳細な複製のみがサポートされます。
-
複製するテーブルの名前。 名前には、一時的な仕様またはオプションの仕様を含めることができます。
-
必要に応じて、1 つ以上のユーザー定義プロパティを設定します。
場所のパス
必要に応じて、データが格納されるパスとして指定された場所含む外部テーブルが作成されます。
table_name
自体がテーブル識別子ではなくパスである場合、操作は失敗します。path
は文字列リテラルである必要があります。
例
CREATE TABLE CLONE
は、データ移行、データ アーカイブ、機械学習フローの再現、短期の実験、データ共有など、複雑な操作に使用できます。 「Azure Databricks でテーブルを複製する」を参照してください。