Kloning tabel terkelola yang menggunakan Iceberg

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

Tabel terkelola berbasis Iceberg 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
Tabel terkelola menggunakan Iceberg Tabel terkelola menggunakan Iceberg DEEP CLONE.
Gunung Es Asing Tabel terkelola menggunakan Iceberg DEEP CLONE. Lihat Kloning tabel Iceberg eksternal ke tabel terkelola menggunakan 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 terkelola menggunakan Iceberg 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 melakukan deep clone tabel yang dikelola menggunakan Iceberg, Anda membutuhkan:

  • 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.

Mengkloning secara mendalam tabel yang dikelola menggunakan Iceberg

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

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;

Klon tabel Iceberg eksternal menjadi tabel terkelola menggunakan Iceberg

Anda dapat menggunakan DEEP CLONE untuk memigrasikan tabel Iceberg eksternal ke Unity Catalog sebagai tabel terkelola menggunakan Iceberg. 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 clone selesai, tabel target adalah tabel yang sepenuhnya dikelola menggunakan Iceberg di Unity Catalog, independen 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 pada tabel terkelola yang menggunakan Iceberg.
  • Unity Catalog tidak mendukung konversi zero-copy dari tabel Iceberg asing ke tabel yang dikelola menggunakan Iceberg. 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. Targetnya selalu adalah tabel yang dikelola menggunakan Iceberg.
  • 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.