Menambahkan sumber daya tabel Unity Catalog ke aplikasi Databricks

Tambahkan tabel Unity Catalog sebagai sumber daya Databricks Apps sehingga aplikasi Anda dapat mengkueri dan memodifikasi data yang disimpan di Unity Catalog dengan tata kelola dan kontrol akses. Tabel Unity Catalog menyediakan penyimpanan data terstruktur dengan izin halus, sehingga aplikasi Anda dapat membaca dan menulis data dengan aman tanpa kredensial hardcoding.

Persyaratan hak istimewa

Untuk mengakses tabel Unity Catalog, prinsipal layanan aplikasi harus memiliki hak istimewa USE CATALOG pada katalog induk, hak istimewa USE SCHEMA pada skema induk, dan hak istimewa SELECT atau MODIFY pada tabel. Saat Anda menambahkan sumber daya tabel, Azure Databricks secara otomatis memberikan hak istimewa ini ke perwakilan layanan aplikasi.

Agar pemberian otomatis ini berhasil, salah satu hal berikut harus benar untuk setiap hak istimewa:

  • Untuk USE CATALOG: Semua pengguna akun memiliki USE CATALOG hak istimewa pada katalog, atau Anda memiliki MANAGE hak istimewa pada katalog.
  • Untuk USE SCHEMA: Semua pengguna akun memiliki USE SCHEMA hak istimewa pada skema, atau Anda memiliki MANAGE hak istimewa pada skema.
  • Untuk SELECT atau MODIFY: Semua pengguna akun memiliki hak istimewa SELECT atau MODIFY pada tabel, atau Anda memiliki hak istimewa MANAGE pada tabel.

Lihat Referensi hak istimewa Katalog Unity.

Menambahkan sumber daya tabel Unity Catalog

Sebelum Anda menambahkan tabel sebagai sumber daya, tinjau prasyarat sumber daya aplikasi.

  1. Di bagian Sumber daya aplikasi saat Anda membuat atau mengedit aplikasi, klik + Tambahkantabel UC>.
  2. Pilih tabel Unity Catalog dari tabel yang tersedia di ruang kerja Anda. Tabel harus sudah ada di Katalog Unity.
  3. Pilih tingkat izin yang sesuai untuk aplikasi Anda:
    • Pilih: Memberikan izin aplikasi untuk mengkueri dan membaca data dari tabel. Ini sesuai untuk aplikasi yang hanya perlu membaca data.
    • Memodifikasi: Memberikan izin aplikasi untuk menyisipkan, memperbarui, dan menghapus data dalam tabel. Izin ini secara implisit mencakup SELECT, sehingga aplikasi juga dapat membaca data.
  4. (Opsional) Tentukan kunci sumber daya kustom, yang merupakan cara Anda mereferensikan tabel dalam konfigurasi aplikasi Anda. Kunci defaultnya adalah table.

Nota

MODIFY tidak tersedia untuk semua jenis tabel. Misalnya, tampilan tidak mendukung MODIFY akses hak istimewa. Jika tabel tidak mendukung MODIFY, hanya SELECT tersedia.

Variabel lingkungan

Saat Anda menyebarkan aplikasi dengan sumber daya tabel Unity Catalog, Azure Databricks mengekspos nama tiga tingkat lengkap tabel melalui variabel lingkungan yang dapat Anda referensikan menggunakan bidang valueFrom.

Konfigurasi contoh:

env:
  - name: UC_TABLE_NAME
    valueFrom: table # Use your custom resource key if different

Menggunakan tabel di aplikasi Anda:

import os
from databricks.sdk import WorkspaceClient

# Access the table name
table_name = os.getenv("UC_TABLE_NAME")

# Initialize workspace client
w = WorkspaceClient()

# Query the table using a SQL warehouse resource
result = w.statement_execution.execute_statement(
    warehouse_id=os.getenv("DATABRICKS_WAREHOUSE_ID"),  # Requires a SQL warehouse resource
    statement=f"SELECT * FROM {table_name} LIMIT 10"
)

Untuk informasi selengkapnya, lihat Menggunakan variabel lingkungan untuk mengakses sumber daya.

Menghapus sumber daya tabel Unity Catalog

Saat Anda menghapus sumber daya tabel Katalog Unity dari aplikasi, perwakilan layanan aplikasi kehilangan SELECT, MODIFY, dan ALL PRIVILEGES hak akses pada tabel. Azure Databricks juga mencoba mencabut izin katalog dan skema hierarkis. Tabel itu sendiri tetap tidak berubah dan terus tersedia untuk pengguna dan aplikasi lain yang memiliki izin yang sesuai.

Praktik terbaik

Pertimbangkan hal berikut saat Anda bekerja dengan sumber daya tabel Unity Catalog:

  • Berikan izin minimal. Gunakan SELECT kecuali aplikasi Anda perlu menulis data ke tabel.
  • Gabungkan sumber daya tabel dengan sumber daya gudang SQL saat aplikasi Anda perlu menjalankan kueri SQL terhadap tabel.
  • Gunakan sumber daya tabel terpisah untuk tabel yang berbeda daripada memberikan akses tingkat skema yang luas, sehingga Anda dapat menerapkan prinsip hak istimewa paling sedikit.
  • Pertimbangkan untuk menggunakan volume Unity Catalog untuk data yang tidak terstruktur dan tabel Unity Catalog untuk data terstruktur.