Tabel terkelola Unity Catalog di Azure Databricks untuk Delta Lake dan Apache Iceberg

Halaman ini menjelaskan tabel terkelola Unity Catalog di Delta Lake dan Apache Iceberg, jenis tabel default dan yang direkomendasikan di Azure Databricks. Tabel ini sepenuhnya diatur dan dioptimalkan oleh Unity Catalog, menawarkan performa, keuntungan operasional, dan biaya penyimpanan dan komputasi yang lebih rendah dibandingkan dengan tabel eksternal dan asing, karena tabel terkelola belajar dari pola baca dan tulis Anda. Unity Catalog mengelola semua tanggung jawab baca, tulis, penyimpanan, dan pengoptimalan untuk tabel terkelola. Lihat Mengonversi tabel Delta eksternal ke tabel Katalog Unity terkelola.

File data untuk tabel terkelola disimpan dalam skema atau katalog yang berisinya. Lihat Menentukan lokasi penyimpanan terkelola di Unity Catalog.

Databricks merekomendasikan penggunaan tabel terkelola untuk memanfaatkan:

  • Mengurangi biaya penyimpanan dan komputasi.
  • Performa kueri yang lebih cepat di semua jenis klien.
  • Pemeliharaan dan pengoptimalan tabel otomatis.
  • Akses aman untuk klien non-Databricks melalui API terbuka.
  • Dukungan untuk format Delta Lake dan Iceberg.
  • Peningkatan otomatis ke fitur platform terbaru.

Tabel terkelola mendukung interoperabilitas dengan mengizinkan akses dari klien Delta Lake dan Iceberg. Melalui API terbuka dan penyedia kredensial, Unity Catalog memungkinkan mesin eksternal seperti Trino, DuckDB, Apache Spark, Daft, dan mesin terintegrasi dengan katalog REST seperti Iceberg dan Dremio untuk mengakses tabel terkelola. Untuk klien eksternal yang tidak mendukung API terbuka, Anda dapat menggunakan Mode Kompatibilitas untuk membaca tabel terkelola menggunakan klien Delta Lake atau Iceberg apa pun. Berbagi Delta, protokol sumber terbuka, memungkinkan berbagi data yang aman dan diatur dengan mitra dan platform eksternal.

Anda dapat bekerja dengan tabel terkelola di semua bahasa dan produk yang didukung di Azure Databricks. Anda memerlukan hak istimewa tertentu untuk membuat, memperbarui, menghapus, atau mengkueri tabel terkelola. Lihat Kelola hak akses di Unity Catalog.

Note

Halaman ini hanya menjelaskan tabel terkelola Katalog Unity. Untuk tabel terkelola di metastore Apache Hive warisan, lihat Objek database di metastore Apache Hive warisan.

Mengapa menggunakan tabel terkelola Unity Catalog?

Tabel terkelola Unity Catalog mengoptimalkan biaya penyimpanan dan kecepatan kueri, dan memungkinkan interoperabilitas dengan alat pihak ketiga untuk Delta Lake dan Apache Iceberg. Untuk menyederhanakan manajemen dan performa data, tabel terkelola ini menggunakan teknologi yang didukung AI, seperti pemadatan ukuran file dan pengumpulan statistik cerdas.

Fitur berikut ini unik untuk tabel terkelola Unity Catalog, dan tidak tersedia untuk tabel eksternal dan tabel asing:

Feature Benefits Aktifkan secara default? Dapat dikonfigurasi?
Penerapan katalog Memungkinkan transaksi multistatement lintas tabel, perencanaan kueri yang lebih cepat dengan menyajikan metadata secara langsung dari Unity Catalog, perubahan skema dan batasan yang dapat diterapkan, serta operasi tulis yang aman dari mesin eksternal. Tidak. Ya.
Atur delta.feature.catalogManaged properti tabel. Lihat Aktifkan komit katalog.
Pengoptimalan prediktif Optimalisasi prediktif secara otomatis mengoptimalkan tata letak data dan komputasi Anda menggunakan AI, tanpa memerlukan operasi pemeliharaan manual. Databricks merekomendasikan untuk mengaktifkan pengoptimalan prediktif untuk semua tabel terkelola untuk mengurangi biaya penyimpanan dan komputasi.
Pengoptimalan prediktif secara otomatis berjalan:
Ya, untuk semua akun baru yang dibuat pada atau setelah 11 November 2024.
Untuk akun saat ini, Azure Databricks secara bertahap mengaktifkan pengoptimalan prediktif secara default. Lihat Memverifikasi apakah pengoptimalan prediktif diaktifkan.
Ya. Lihat Mengaktifkan pengoptimalan prediktif.
Transaksi multi-pernyataan Memungkinkan Anda menjalankan beberapa pernyataan SQL pada satu atau beberapa tabel sebagai satu commit atomik, dengan jaminan ACID. Semua perubahan berhasil bersama-sama atau digulung balik bersama-sama. Gunakan untuk prosedur tersimpan dan pembuatan skrip SQL dalam beban kerja pergudangan misi penting.
Transaksi yang menulis ke dalam tabel Delta Lake terkelola berada dalam Pratinjau Umum.
Transaksi yang menulis ke tabel Apache Iceberg terkelola ada di Pratinjau Privat.
Tidak. Ya. Gunakan BEGIN ATOMIC ... END; untuk transaksi non-interaktif atau BEGIN TRANSACTION; ... COMMIT; untuk transaksi interaktif. Lihat Mode transaksi.
Pengklusteran cairan otomatis Untuk tabel dengan pengoptimalan prediktif, pengklusteran cairan otomatis memungkinkan Azure Databricks untuk memilih kunci pengklusteran secara cerdas. Saat pola kueri berubah, Azure Databricks secara otomatis memperbarui kunci pengklusteran untuk meningkatkan performa dan biaya yang lebih rendah. Tidak. Ya. Lihat Mengaktifkan pengklusteran cairan.
Penembolokan metadata Caching dalam memori metadata transaksi meningkatkan kinerja kueri dengan meminimalkan permintaan ke log transaksi yang disimpan di cloud. Ya. Tidak. Penyimpanan sementara metadata selalu diaktifkan untuk tabel dikelola.
Indeks pencarian teks lengkap Indeks pencarian teks lengkap mempercepat pencarian substring dan kata kunci pada kolom teks tabel terkelola. Saat indeks berlaku, Azure Databricks melewati file yang tidak dapat berisi baris yang cocok, mengurangi jumlah data yang dipindai.
Indeks pencarian teks penuh mempercepat pencarian substring dan kata menggunakan fungsi search dan isearch.
Indeks pencarian teks lengkap berada di Beta dan memerlukan Databricks Runtime 18.2 ke atas.
Tidak. Ya. Buat dengan CREATE INDEX (sekunder) atau CREATE SEARCH INDEX (teks lengkap).
Penghapusan file otomatis setelah DROP TABLE perintah Jika Anda DROP tabel terkelola, Azure Databricks menghapus data di penyimpanan cloud setelah 8 hari untuk mengurangi biaya penyimpanan Anda. Untuk tabel eksternal, Anda harus menghapus file secara manual dari wadah penyimpanan Anda. Ya. Tidak. Untuk tabel terkelola, file selalu dihapus secara otomatis setelah 8 hari.

Mengakses data Databricks menggunakan sistem eksternal

Tabel terkelola mendukung interoperabilitas dengan mengizinkan akses dari klien Delta Lake dan Iceberg. Melalui API terbuka dan pemberian kredensial, Unity Catalog memungkinkan mesin eksternal seperti Trino, DuckDB, Apache Spark, Daft, dan mesin katalog REST Iceberg terintegrasi seperti Dremio dan Snowflake untuk mengakses tabel terkelola. Lihat integrasi untuk daftar mesin eksternal yang didukung, atau periksa dokumentasi mesin Anda jika tidak disertakan dalam daftar ini.

API terbuka berikut menyediakan akses sistem eksternal ke tabel terkelola Unity Catalog:

  • Unity REST API: Menyediakan akses baca, tulis, dan buat untuk klien Delta ke tabel Delta terkelola.
  • Iceberg REST Catalog (IRC): Menyediakan akses baca, tulis, dan buat akses bagi klien Iceberg ke tabel Iceberg terkelola dan akses baca-saja ke tabel Delta dengan bacaan Iceberg diaktifkan (UniForm).

Kedua API mendukung penyediaan kredensial, yang menyediakan kredensial sementara yang memiliki cakupan spesifik dan mewarisi hak istimewa dari prinsipal Azure Databricks yang meminta, mempertahankan kontrol tata kelola serta keamanan.

Selain itu, Berbagi Delta adalah protokol sumber terbuka yang memungkinkan akses data yang aman dan diatur ke mitra dan platform eksternal. Anda dapat menggunakan Delta Sharing untuk memberikan mitra akses sementara yang hanya dapat dibaca.

Semua operasi baca dan tulis ke tabel terkelola harus menggunakan nama tabel dan nama katalog serta skema jika ada. Contohnya, catalog_name.schema_name.table_name. Akses berbasis jalur ke tabel terkelola Unity Catalog tidak didukung (kecuali dalam Mode Kompatibilitas) karena melewati kontrol akses Katalog Unity dan mencegah fitur tabel terkelola berfungsi dengan baik.

Membuat tabel terkelola

Untuk membuat tabel terkelola, Anda harus memiliki:

  • USE SCHEMA pada skema induk tabel.
  • USE CATALOG pada katalog induk tabel.
  • CREATE TABLE pada skema induk tabel.

Gunakan sintaks SQL berikut untuk membuat tabel terkelola kosong menggunakan SQL. Ganti nilai placeholder ini:

  • <catalog-name>: Nama katalog yang akan berisi tabel.
  • <schema-name>: Nama skema yang berisi tabel.
  • <table-name>: Nama untuk tabel.
  • <column-specification>: Nama dan jenis data setiap kolom.
-- Create a managed Delta table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
  <column-specification>
);

-- Create a managed Iceberg table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
  <column-specification>
)
USING iceberg;

Untuk mempertahankan performa pada baca dan tulis, Azure Databricks secara berkala menjalankan operasi untuk mengoptimalkan metadata tabel Iceberg terkelola. Tugas ini dilakukan menggunakan komputasi tanpa server, yang memiliki MODIFY izin pada tabel Iceberg. Operasi ini hanya menulis ke metadata tabel, dan komputasi hanya mempertahankan izin ke tabel selama durasi pekerjaan.

Note

Untuk membuat tabel Iceberg, tentukan USING icebergsecara eksplisit . Jika tidak, Azure Databricks membuat tabel Delta Lake secara default.

Anda dapat membuat tabel terkelola dari hasil kueri atau operasi penulisan DataFrame. Artikel berikut menunjukkan beberapa pola yang dapat Anda gunakan untuk membuat tabel terkelola di Azure Databricks:

Hapus tabel terkelola

Untuk menghapus tabel terkelola, Anda harus memiliki:

  • MANAGE pada tabel atau Anda harus menjadi pemilik tabel.
  • USE SCHEMA pada skema induk tabel.
  • USE CATALOG pada katalog induk tabel.

Untuk menghilangkan tabel terkelola, jalankan perintah SQL berikut:

DROP TABLE IF EXISTS catalog_name.schema_name.table_name;

Katalog Unity mendukung UNDROP TABLE perintah untuk memulihkan tabel terkelola yang dihilangkan selama 8 hari. Setelah 8 hari, Azure Databricks menandai data mendasar untuk dihapus dari penyewa awan Anda dan secara otomatis menghapus file selama pemeliharaan tabel. Lihat UNDROP.