Kloning dangkal untuk tabel Unity Catalog
Penting
Dukungan kloning dangkal untuk tabel yang dikelola Unity Catalog ada di Public Preview di Databricks Runtime 13.3 dan versi ke atas. Dukungan kloning dangkal untuk tabel eksternal Unity Catalog dalam Pratinjau Umum tersedia di Databricks Runtime 14.2 dan versi di atasnya.
Anda dapat menggunakan kloning dangkal untuk membuat tabel Unity Catalog baru dari tabel Unity Catalog yang ada. Dukungan kloning dangkal untuk Unity Catalog memungkinkan Anda membuat tabel dengan hak istimewa kontrol akses yang independen dari tabel induk mereka tanpa perlu menyalin file data yang mendasar.
Penting
Anda hanya dapat mengkloning tabel terkelola Unity Catalog ke tabel terkelola Unity Catalog dan tabel eksternal Unity Catalog ke tabel eksternal Unity Catalog.
VACUUM
perilaku berbeda antara tabel yang dikelola dan tabel eksternal. Lihat klon dangkal Vacuum dan Unity Catalog.
Untuk informasi selengkapnya tentang klon Delta, lihat Mengkloning tabel di Azure Databricks.
Untuk informasi selengkapnya tentang tabel Unity Catalog, lihat Apa itu tabel dan tampilan?.
Membuat kloning dangkal pada Unity Catalog
Anda dapat membuat kloning dangkal di Unity Catalog menggunakan sintaks yang sama yang tersedia untuk kloning dangkal di seluruh produk, seperti yang ditunjukkan dalam contoh sintaks berikut:
CREATE TABLE <catalog-name>.<schema-name>.<target-table-name> SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>
Untuk membuat kloning dangkal pada Unity Catalog, Anda harus memiliki hak istimewa yang memadai pada sumber daya sumber dan target, seperti yang dirinci dalam tabel berikut:
Sumber daya | Izin yang diperlukan |
---|---|
Tabel sumber | SELECT |
Skema sumber | USE SCHEMA |
Katalog sumber | USE CATALOG |
Skema target |
USE SCHEMA , CREATE TABLE |
Katalog Target | USE CATALOG |
Lokasi eksternal target (hanya tabel eksternal) | CREATE EXTERNAL TABLE |
Seperti pernyataan CREATE TABLE lainnya, pengguna yang membuat klon dangkal adalah pemilik tabel target. Pemilik tabel kloning target dapat mengontrol hak akses untuk tabel tersebut secara independen dari tabel sumber.
Catatan
Pemilik tabel kloning mungkin berbeda dari pemilik tabel sumber.
Mengkueri atau memodifikasi tabel kloning dangkal pada Unity Catalog
Penting
Instruksi di bagian ini menjelaskan hak istimewa yang diperlukan untuk komputasi yang dikonfigurasi dengan mode akses standar (sebelumnya mode akses bersama). Untuk mode akses khusus (sebelumnya mode akses pengguna tunggal), lihat Bekerja dengan tabel yang dikloning secara dangkal dalam mode akses khusus.
Untuk mengkueri kloning dangkal pada Unity Catalog, Anda harus memiliki hak istimewa yang memadai pada tabel dan berisi sumber daya, seperti yang dirinci dalam tabel berikut:
Sumber daya | Izin yang diperlukan |
---|---|
Katalog | USE CATALOG |
Skema | USE SCHEMA |
Meja | SELECT |
Anda juga harus memiliki MODIFY
izin pada target operasi kloning untuk menyelesaikan tindakan berikut:
- Sisipkan rekaman
- Hapus rekaman
- Memperbarui rekaman
MERGE
CREATE TABLE
DROP TABLE
Klon dangkal Vacuum dan Unity Catalog
Penting
Perilaku ini ada di Pratinjau Umum di Databricks Runtime 13.3 LTS ke atas untuk tabel terkelola dan Databricks Runtime 14.2 ke atas untuk tabel eksternal.
Saat Anda menggunakan tabel Unity Catalog untuk sumber dan target operasi kloning dangkal, Unity Catalog mengelola file data yang mendasar untuk meningkatkan keandalan untuk sumber dan target operasi kloning. Menjalankan VACUUM
pada sumber klon dangkal tidak merusak tabel kloning.
Biasanya, ketika VACUUM
mengidentifikasi file yang valid untuk ambang retensi tertentu, hanya metadata untuk tabel saat ini yang dipertimbangkan. Dukungan kloning dangkal untuk Unity Catalog melacak hubungan antara semua tabel kloning dan file data sumber, sehingga file yang valid diperluas untuk menyertakan file data yang diperlukan untuk mengembalikan kueri untuk tabel kloning dangkal serta tabel sumber.
Ini berarti bahwa untuk kloning dangkal Unity Catalog VACUUM
semantik, file data yang valid adalah file apa pun yang berada dalam ambang retensi yang ditentukan dalam tabel sumber atau tabel hasil kloning apa pun. Tabel terkelola dan tabel eksternal memiliki semantik yang sedikit berbeda.
Pelacakan metadata yang disempurnakan ini mengubah bagaimana operasi VACUUM
memengaruhi file data yang mendukung tabel Delta, dengan semantik berikut:
- Untuk tabel terkelola,
VACUUM
operasi terhadap sumber atau target operasi kloning dangkal dapat menghapus file data dari tabel sumber. - Untuk tabel eksternal, operasi
VACUUM
hanya menghapus file data dari tabel sumber saat dijalankan terhadap tabel sumber. - Hanya file data yang tidak dianggap valid untuk tabel sumber atau kloning dangkal terhadap sumber yang dihapus.
- Jika beberapa kloning dangkal didefinisikan terhadap satu tabel sumber, menjalankan
VACUUM
pada salah satu tabel kloning tidak menghapus file data yang valid untuk tabel kloning lainnya.
Catatan
Databricks merekomendasikan untuk tidak pernah berjalan VACUUM
dengan pengaturan retensi kurang dari 7 hari untuk menghindari kerusakan transaksi jangka panjang yang sedang berlangsung. Jika Anda perlu menjalankan VACUUM
dengan ambang batas retensi yang lebih rendah, pastikan Anda memahami bagaimana kloning dangkal VACUUM
di Unity Catalog berbeda dengan cara VACUUM
berinteraksi dengan tabel kloning lainnya di Azure Databricks. Lihat Menggandakan tabel di Azure Databricks.
Bekerja dengan tabel kloning dangkal dalam mode akses khusus
Saat bekerja dengan Unity Catalog kloning dangkal dalam mode akses khusus, Anda harus memiliki izin atas sumber daya untuk tabel sumber kloning serta tabel target.
Ini berarti bahwa untuk kueri sederhana selain izin yang diperlukan pada tabel target, Anda harus memiliki izin USE
pada katalog sumber dan skema dan izin SELECT
pada tabel sumber. Untuk kueri apa pun yang akan memperbarui atau menyisipkan rekaman ke tabel target, Anda juga harus memiliki izin MODIFY
pada tabel sumber.
Databricks merekomendasikan untuk bekerja dengan klon Unity Catalog pada komputasi dengan mode akses standar karena ini memungkinkan evolusi izin independen untuk target klon dangkal Unity Catalog dan tabel sumbernya.
Batasan
- Klon dangkal pada tabel eksternal harus berupa tabel eksternal. Kloning dangkal pada tabel yang dikelola haruslah tabel yang dikelola.
- Anda tidak dapat menggunakan
REPLACE
atauCREATE OR REPLACE
untuk menimpa klon dangkal yang ada. Sebagai gantinya,DROP
kloning dangkal dan jalankan pernyataanCREATE
baru. - Anda tidak dapat berbagi kloning dangkal menggunakan Berbagi Delta.
- Anda tidak dapat menumpuk kloning dangkal, yang berarti Anda tidak dapat membuat kloning dangkal dari kloning dangkal.
- Untuk tabel terkelola, menghilangkan tabel sumber merusak tabel target untuk kloning dangkal. File data yang mendukung tabel eksternal tidak dihapus oleh operasi
DROP TABLE
, sehingga klon tabel eksternal yang dangkal tidak terpengaruh dengan menghilangkan sumbernya. - Katalog Unity memungkinkan pengguna untuk
UNDROP
tabel terkelola selama sekitar 7 hari setelah perintahDROP TABLE
. Dalam Databricks Runtime 13.3 LTS ke atas, klon dangkal yang dikelola berdasarkan tabel terkelola yang dihilangkan terus berfungsi selama periode 7 hari ini. Jika Anda tidakUNDROP
tabel sumber di jendela ini, salinan dangkal akan berhenti berfungsi setelah file data tabel sumber dikumpulkan sebagai sampah.