Icebergを使用するマネージドテーブルのクローン作成
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を使用してマネージドテーブルをディープクローンする
`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 Catalog に移行できます。クローンによって、すべてのデータとメタデータが 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を使用してください。「ディープクローンでテーブルプロパティを設定する」を参照してください。