Bagikan melalui


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

Important

Tabel Delta Lake yang dikelola Unity Catalog umumnya tersedia. Tabel Apache Iceberg yang dikelola oleh Unity Catalog tersedia di Pratinjau Umum dan dapat diakses di Databricks Runtime 16.4 LTS dan versi yang lebih baru.

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 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 berfokus pada 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 secara otomatis mengoptimalkan biaya penyimpanan dan kecepatan kueri menggunakan teknologi berbasis AI seperti pengklusteran otomatis, pemadatan ukuran file, dan pengumpulan statistik cerdas. Tabel ini menyederhanakan manajemen data dengan fitur seperti pembersihan otomatis dan caching metadata, sambil memastikan interoperabilitas dengan alat pihak ketiga seperti Delta dan Iceberg.

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

Feature Benefits Aktifkan secara default? Dikonfigurasi?
Pengoptimalan prediktif Secara otomatis mengoptimalkan tata letak dan komputasi data Anda menggunakan AI, sehingga Anda tidak perlu menangani operasi secara manual untuk tabel terkelola. 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 mulai meluncurkan pengoptimalan prediktif secara default. Lihat Memeriksa apakah pengoptimalan prediktif diaktifkan.
Ya. Lihat Mengaktifkan pengoptimalan prediktif.
Pengklusteran cairan otomatis Untuk tabel dengan pengoptimalan prediktif, mengaktifkan 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 Penembolokan dalam memori metadata transaksi meningkatkan performa kueri dengan meminimalkan permintaan ke log transaksi yang disimpan di cloud. Fitur ini meningkatkan performa kueri. Yes Tidak. Penembolokan metadata selalu diaktifkan untuk tabel terkelola.
Penghapusan file otomatis setelah DROP TABLE perintah Jika Anda MENGHAPUS tabel terkelola, Azure Databricks menghapus data di penyimpanan cloud setelah 8 hari, mengurangi biaya penyimpanan. Untuk tabel eksternal, Anda harus masuk secara manual ke wadah penyimpanan Anda dan menghapus file. Yes 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-saja untuk klien Delta ke tabel Delta terkelola.
  • Iceberg REST Catalog (IRC): Menyediakan akses baca dan tulis untuk 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.