マネージド Iceberg テーブルを複製する

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

マネージド Iceberg テーブルでは、ディープ 複製のみがサポートされます。 複製中の浅い複製とフォーマット変換はサポートされていません。

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

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

Source 対象 Operation
マネージド・アイスバーグ マネージド・アイスバーグ DEEP CLONE
Foreign 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 テーブルをディープ クローンする

CREATE TABLE ... DEEP CLONEを使用して、管理された Iceberg テーブルをコピーします。

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 テーブルをマネージド Iceberg テーブルとして Unity カタログに移行できます。 複製により、すべてのデータとメタデータが Unity カタログ ストレージにコピーされます。 外部カタログによって管理されている元のファイルは再利用されません。

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

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