Icebergを使う管理テーブルをクローンします

Icebergを DEEP CLONEで使った管理テーブルの完全で独立したコピーを作成できます。 ディープクローンは、Unity CatalogのIcebergを使ってデータファイルとテーブルのメタデータの両方を新しい管理テーブルにコピーします。

Icebergを使った管理テーブルはディープクローンのみをサポートします。 複製中の浅い複製とフォーマット変換はサポートされていません。

Iceberg テーブルの複製メソッド

使用する複製操作は、ソーステーブルとターゲットテーブルの種類によって異なります。

Source 対象 Operation
Icebergを用いたマネージドテーブル Icebergを用いたマネージドテーブル DEEP CLONE。
Foreign Iceberg Icebergを用いたマネージドテーブル DEEP CLONE。 Icebergを使った管理テーブルに、外国のIcebergテーブルをクローンする方法を参照してください。
Parquet または foreign Iceberg マネージドまたは外部の Delta Lake 増分クローン。 「Parquet テーブルと Apache Iceberg テーブルを Delta Lake に増分複製する」を参照してください。

既存のテーブルをクローンする代わりにクエリ結果からIcebergでマネージドテーブルを作成するには、 CREATE TABLE ... AS SELECTをご利用ください。 CREATE TABLE [USING]を参照してください。

SHALLOW CLONE は Iceberg テーブルではサポートされていません。 制限事項を参照してください。

必要条件

Icebergを使ってマネージドテーブルをディープクローンするには、以下が必要です:

  • Databricks Runtime 16.4 LTS 以降。
  • SELECT ソース テーブルに対する特権。
  • 既存のテーブルを置き換える場合は、ターゲット スキーマに対する特権を CREATE TABLE するか、ターゲット テーブルに対する特権を MODIFY します。
  • ターゲット カタログまたはスキーマで有効になっている予測最適化。

Icebergを使ってマネージドテーブルをディープクローン

Icebergを使って管理されたテーブルをコピーするには CREATE TABLE ... DEEP CLONE :

CREATE TABLE <catalog>.<schema>.<target-table>
DEEP CLONE <catalog>.<schema>.<source-table>;

既存のターゲット テーブルを置き換えるには:

CREATE OR REPLACE TABLE <catalog>.<schema>.<target-table>
DEEP CLONE <catalog>.<schema>.<source-table>;

ターゲットがまだ存在しない場合にのみターゲットを作成するには:

CREATE TABLE IF NOT EXISTS <catalog>.<schema>.<target-table>
DEEP CLONE <catalog>.<schema>.<source-table>;

完全な CREATE TABLE CLONE 構文については、 CREATE TABLE CLONEを参照してください。

実稼働テーブルをアーカイブする

アーカイブまたはコンプライアンスの目的で運用テーブルの独立したスナップショットを作成するには:

CREATE TABLE prod_catalog.archive.orders_snapshot_may2026
DEEP CLONE prod_catalog.main.orders;

開発環境にテーブルをコピーする

運用データに影響を与えずに安全な実験を行うために、運用テーブルを開発カタログに複製するには:

CREATE OR REPLACE TABLE dev_catalog.test.orders
DEEP CLONE prod_catalog.main.orders;

Icebergを使った管理テーブルに、外国のIcebergテーブルをクローンします

DEEP CLONEを使って、Icebergを使ってUnity Catalogの管理テーブルとして外部のIcebergテーブルを移行できます。 複製により、すべてのデータとメタデータが Unity カタログ ストレージにコピーされます。 外部カタログによって管理されている元のファイルは再利用されません。

CREATE TABLE <uc-catalog>.<schema>.<target-table>
DEEP CLONE <foreign-catalog>.<schema>.<source-table>;

クローンが完了すると、ターゲットテーブルは元のカタログとは独立してUnity Catalog内のIcebergを使った完全管理されたテーブルとなります。

Note

外部カタログからのコピーゼロ移行はサポートされていません。 制限事項を参照してください。

ディープ クローンでテーブルのプロパティを設定する

DEEP CLONE ステートメントで Iceberg テーブルのプロパティを設定することはできません。 複製されたテーブルのプロパティを追加またはオーバーライドするには、複製の完了後に ALTER TABLE SET TBLPROPERTIES を使用します。

たとえば、スナップショットとして使用される複製のソースを記録するカスタム プロパティを設定するには、次のようにします。

CREATE TABLE prod_catalog.archive.orders_snapshot
DEEP CLONE prod_catalog.main.orders;

ALTER TABLE prod_catalog.archive.orders_snapshot
SET TBLPROPERTIES (
  'archive.source' = 'prod_catalog.main.orders',
  'archive.created_date' = '2026-05-11'
);

クローンの動作

ディープ クローンの動作に関する重要な考慮事項:

  • ディープ クローンは、ソース テーブルの完全な独立したコピーです。 複製に対する変更はソースには影響せず、ソースに対する変更は複製に影響しません。
  • ディープ クローンには、独立したスナップショット履歴があります。 複製のタイム トラベルでは、ソースの履歴ではなく、複製の履歴が使用されます。
  • スキーマ、パーティション情報、およびテーブルのプロパティは、ディープ クローンにコピーされます。 Unity カタログ タグはコピーされません。
  • 作成後、Unity Catalog は予測最適化を使用して複製を個別に管理します。

制限事項

  • Icebergを使った管理テーブルでは浅いクローンはサポートされていません。
  • Unity Catalogは、Icebergを使った外部のIcebergテーブルを管理されたテーブルにゼロコピー変換する機能をサポートしていません。 DEEP CLONEを使用する必要があります。 複製操作中に、すべてのデータが Unity カタログ ストレージにコピーされます。
  • ディープ クローンはテーブル履歴をコピーしないため、タイム トラベル クエリに影響します。
  • 複製中にテーブル形式を変更することはできません。 ターゲットは常にIcebergを用いたマネージドテーブルです。
  • 複製中にテーブルのプロパティを設定することはできません。 ディープ クローンの完了後に ALTER TABLE SET TBLPROPERTIES を使用します。 詳細クローンのテーブル プロパティの設定を参照してください。