管理されたIcebergテーブルのクローンを作成
パブリックプレビュー
Unity Catalog で管理される Iceberg テーブルは、Databricks Runtime 16.4 LTS 以降で パブリック プレビュー で利用できます。
DEEP CLONE を使用して、マネージド Iceberg テーブルの完全な独立したコピーを作成できます。ディープクローンは、データファイルとテーブルメタデータの両方を、Unity Catalog 内の新しいマネージド Iceberg テーブルにコピーします。
管理対象の Iceberg テーブルは、深層クローンのみをサポートします。シャロークローンとクローン作成時の形式変換はサポートされていません。
Icebergテーブルのクローン作成メソッド
使用するクローン操作は、ソースとターゲットのテーブルの種類によって異なります。
ソース | ターゲット | オペレーション |
|---|---|---|
マネージド Iceberg | マネージド Iceberg |
|
Foreign Iceberg | マネージド Iceberg |
|
Parquet または 外部の 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 Catalog ストレージにコピーします。外部カタログによって管理されている元のファイルは再利用されません。
CREATE TABLE <uc-catalog>.<schema>.<target-table>
DEEP CLONE <foreign-catalog>.<schema>.<source-table>;
クローンが完了すると、ターゲットテーブルはUnity CatalogのフルマネージドのIcebergテーブルとなり、ソースカタログから独立します。
フォーリンカタログからのゼロコピー移行はサポートされていません。制限事項を参照してください。
ディープクローンのテーブルプロパティを設定
Iceberg テーブルプロパティは、DEEP CLONE ステートメントでは設定できません。クローンされたテーブルのプロパティを追加または上書きするには、クローン完了後に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 Catalogタグはコピーされません。
- 作成後、Unity Catalog はクローンを予測的最適化で独立して管理します。
制限事項
- マネージド Iceberg テーブルではシャロー クローンはサポートされていません。
- Unity Catalogは、外部Icebergテーブルから管理対象Icebergテーブルへのゼロコピー変換をサポートしていません。
DEEP CLONEを使用する必要があります。すべてのデータは、クローン操作中に Unity Catalog ストレージにコピーされます。 - ディープ クローンはテーブル履歴をコピーしないため、タイムトラベルクエリに影響します。
- クローン作成中にテーブル形式を変更することはできません。ターゲットは常にマネージドIcebergテーブルです。
- クローン時にテーブルのプロパティを設定することはできません。ディープクローンが完了した後で、
ALTER TABLE SET TBLPROPERTIESを使用してください。「ディープクローンでテーブルプロパティを設定する」を参照してください。