Menggandakan tabel Iceberg terkelola

Anda dapat membuat salinan lengkap dan independen dari tabel Iceberg terkelola menggunakan DEEP CLONE. Deep clone menyalin baik file data maupun metadata tabel ke dalam tabel Iceberg terkelola yang baru di Unity Catalog.

Tabel Iceberg terkelola hanya mendukung kloning mendalam. Kloning dangkal maupun konversi format selama proses kloning tidak didukung.

Metode kloning untuk tabel Iceberg

Operasi kloning yang Anda gunakan tergantung pada jenis tabel sumber dan target Anda:

Sumber Target Pengoperasian
Gunung Es Terkelola Gunung Es Terkelola DEEP CLONE.
Gunung Es Asing Gunung Es Terkelola DEEP CLONE. Lihat Mengkloning tabel Iceberg asing untuk mengelola Iceberg.
Parquet atau Iceberg asing Delta Lake terkelola atau eksternal Kloning bertahap. Lihat Pengkloningan bertahap tabel Parquet dan Apache Iceberg ke Delta Lake.

Untuk membuat tabel Iceberg terkelola dari hasil kueri alih-alih mengkloning tabel yang sudah ada, gunakan CREATE TABLE ... AS SELECT. Lihat CREATE TABLE [MENGGUNAKAN].

SHALLOW CLONE tidak didukung untuk tabel Iceberg. Lihat Batasan.

Requirements

Untuk membuat klon mendalam dari tabel Iceberg terkelola, Anda memerlukan:

  • Databricks Runtime 16.4 LTS atau lebih tinggi.
  • SELECT izin akses pada tabel sumber.
  • Jika mengganti tabel yang ada, CREATE TABLE hak istimewa pada skema target, atau MODIFY hak istimewa pada tabel target.
  • Pengoptimalan prediktif diaktifkan pada katalog atau skema target.

Buat klon mendalam tabel Iceberg terkelola

Gunakan CREATE TABLE ... DEEP CLONE untuk menyalin tabel Iceberg terkelola:

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

Untuk mengganti tabel target yang sudah ada:

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

Untuk membuat target hanya jika belum ada:

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

Untuk sintaks penuh CREATE TABLE CLONE , lihat CREATE TABLE CLONE.

Mengarsipkan tabel produksi

Untuk membuat salinan snapshot independen dari tabel produksi untuk keperluan pengarsipan atau kepatuhan:

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

Menyalin tabel ke lingkungan pengembangan

Untuk mengkloning tabel produksi ke katalog pengembangan untuk eksperimen yang aman tanpa memengaruhi data produksi:

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

Mengkloning tabel Iceberg asing untuk mengelola Iceberg

Anda dapat menggunakan DEEP CLONE untuk memigrasikan tabel Iceberg asing ke Unity Catalog sebagai tabel Iceberg terkelola. Kloning menyalin semua data dan metadata ke penyimpanan Katalog Unity. File asli yang dikelola oleh katalog eksternal tidak digunakan kembali.

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

Setelah kloning selesai, tabel target adalah tabel Iceberg yang dikelola sepenuhnya di Unity Catalog, terlepas dari katalog sumber.

Note

Migrasi zero-copy dari katalog eksternal tidak didukung. Lihat Batasan.

Mengatur properti tabel pada klon mendalam

Anda tidak dapat mengatur properti tabel Iceberg dalam DEEP CLONE pernyataan. Untuk menambahkan atau mengambil alih properti pada tabel kloning, gunakan ALTER TABLE SET TBLPROPERTIES setelah kloning selesai.

Misalnya, untuk mengatur properti kustom untuk merekam sumber kloning yang digunakan sebagai rekam jepret:

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'
);

Perilaku pengklonan

Pertimbangan penting untuk perilaku kloning mendalam:

  • Klon mendalam adalah salinan tabel sumber yang lengkap dan independen. Perubahan pada kloning tidak memengaruhi sumber, dan perubahan pada sumber tidak memengaruhi kloning.
  • Klon mendalam memiliki riwayat rekam jepret independen. Perjalanan waktu pada kloning menggunakan sejarah kloning, bukan sejarah sumber.
  • Skema, informasi partisi, dan properti tabel disalin ke klon mendalam. Tag Unity Catalog tidak disalin.
  • Setelah pembuatan, Unity Catalog mengelola kloning secara independen dengan pengoptimalan prediktif.

Batasan

  • Kloning dangkal tidak didukung untuk tabel Iceberg terkelola.
  • Unity Catalog tidak mendukung konversi nol salinan tabel Iceberg asing ke tabel Iceberg yang dikelola. Anda harus menggunakan DEEP CLONE. Semua data disalin ke penyimpanan Katalog Unity selama operasi kloning.
  • Kloning mendalam tidak menyalin riwayat tabel, sehingga memengaruhi kueri time travel.
  • Anda tidak dapat mengubah format tabel selama kloning. Target selalu adalah tabel Iceberg terkelola.
  • Anda tidak dapat mengatur properti tabel selama kloning. Gunakan ALTER TABLE SET TBLPROPERTIES setelah proses deep clone selesai. Lihat Mengatur properti tabel pada klon dalam.