Bagikan melalui


Membuat dan mengelola katalog

Artikel ini memperlihatkan cara membuat dan mengelola katalog di Unity Catalog. Katalog berisi skema (database), dan skema berisi tabel, tampilan, volume, model, dan fungsi.

Catatan

Di ruang kerja yang diaktifkan untuk Katalog Unity secara otomatis, katalog ruang kerja dibuat untuk Anda secara default. Semua pengguna di ruang kerja Anda (dan hanya ruang kerja Anda) yang memiliki akses ke ruang kerja tersebut secara default. Lihat Langkah 1: Konfirmasikan bahwa ruang kerja Anda diaktifkan untuk Katalog Unity.

Catatan

Untuk mempelajari cara membuat katalog asing, objek Katalog Unity yang mencerminkan database dalam sistem data eksternal, lihat Membuat katalog asing. Lihat juga Mengelola dan bekerja dengan katalog asing.

Persyaratan

Untuk membuat katalog:

  • Anda harus menjadi admin metastore Azure Databricks atau memiliki CREATE CATALOG hak istimewa di metastore.

  • Anda harus memiliki metastore Unity Catalog yang ditautkan ke ruang kerja tempat Anda melakukan pembuatan katalog.

  • Kluster yang Anda gunakan untuk menjalankan buku catatan untuk membuat katalog harus menggunakan mode akses yang mematuhi Katalog Unity. Lihat Mode akses.

    Gudang SQL selalu mendukung Katalog Unity.

Membuat katalog

Untuk membuat katalog, Anda dapat menggunakan Catalog Explorer atau perintah SQL.

Penjelajah katalog

  1. Masuk ke ruang kerja yang ditautkan ke metastore.

  2. Klik Ikon katalogKatalog.

  3. Klik tombol Buat Katalog .

  4. Pilih jenis katalog yang ingin Anda buat:

    • Katalog standar : objek yang dapat diamankan yang mengatur aset data yang dikelola oleh Unity Catalog. Untuk semua kasus penggunaan kecuali Federasi Lakehouse.
    • Katalog asing : objek yang dapat diamankan di Unity Catalog yang mencerminkan database dalam sistem data eksternal menggunakan Federasi Lakehouse. Lihat Ringkasan penyiapan Federasi Lakehouse.
  5. (Opsional tetapi sangat disarankan) Tentukan lokasi penyimpanan terkelola. CREATE MANAGED STORAGE Memerlukan hak istimewa pada lokasi eksternal target. Lihat Menentukan lokasi penyimpanan terkelola di Katalog Unity.

    Penting

    Jika ruang kerja Anda tidak memiliki lokasi penyimpanan tingkat metastore, Anda harus menentukan lokasi penyimpanan terkelola saat membuat katalog.

  6. Klik Buat.

  7. (Opsional) Tentukan ruang kerja tempat katalog terikat.

    Secara default, katalog dibagikan dengan semua ruang kerja yang dilampirkan ke metastore saat ini. Jika katalog akan berisi data yang harus dibatasi untuk ruang kerja tertentu, buka tab Ruang Kerja dan tambahkan ruang kerja tersebut.

    Untuk informasi selengkapnya, lihat (Opsional) Menetapkan katalog ke ruang kerja tertentu.

  8. Tetapkan izin untuk katalog Anda. Lihat Hak istimewa Unity Catalog dan objek yang dapat diamankan.

Sql

  1. Jalankan perintah SQL berikut ini di notebook atau editor Databricks SQL. Item dalam tanda kurung bersifat opsional. Ganti nilai tempat penampung:

    • <catalog-name>: Nama untuk katalog.

    • <location-path>: Opsional tetapi sangat disarankan. Berikan jalur lokasi penyimpanan jika Anda ingin tabel terkelola dalam katalog ini disimpan di lokasi yang berbeda dari penyimpanan akar default yang dikonfigurasi untuk metastore.

      Penting

      Jika ruang kerja Anda tidak memiliki lokasi penyimpanan tingkat metastore, Anda harus menentukan lokasi penyimpanan terkelola saat membuat katalog.

      Jalur ini harus ditentukan dalam konfigurasi lokasi eksternal, dan Anda harus memiliki CREATE MANAGED STORAGE hak istimewa pada konfigurasi lokasi eksternal. Anda dapat menggunakan jalur yang ditentukan dalam konfigurasi lokasi eksternal atau subpath (dengan kata lain, 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance' atau 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance/product'). Memerlukan Databricks Runtime 11.3 ke atas.

    • <comment>: Deskripsi opsional atau komentar lainnya.

    Catatan

    Jika Anda membuat katalog asing (objek yang dapat diamankan di Katalog Unity yang mencerminkan database dalam sistem data eksternal, digunakan untuk Federasi Lakehouse), perintah SQL adalah CREATE FOREIGN CATALOG dan opsinya berbeda. Lihat Membuat katalog asing.

    CREATE CATALOG [ IF NOT EXISTS ] <catalog-name>
       [ MANAGED LOCATION '<location-path>' ]
       [ COMMENT <comment> ];
    

    Misalnya, untuk membuat katalog bernama example:

    CREATE CATALOG IF NOT EXISTS example;
    

    Jika Anda ingin membatasi akses katalog ke ruang kerja tertentu di akun Anda, juga dikenal sebagai pengikatan katalog ruang kerja, lihat Mengikat katalog ke satu atau beberapa ruang kerja.

    Untuk deskripsi parameter, lihat MEMBUAT KATALOG.

  2. Tetapkan hak istimewa ke katalog. Lihat Hak istimewa Unity Catalog dan objek yang dapat diamankan.

Saat Anda membuat katalog, dua skema (database) secara otomatis dibuat: default dan information_schema.

Anda juga dapat membuat katalog dengan menggunakan penyedia Databricks Terraform dan databricks_catalog. Anda dapat mengambil informasi tentang katalog dengan menggunakan databricks_catalogs.

(Opsional) Menetapkan katalog ke ruang kerja tertentu

Jika Anda menggunakan ruang kerja untuk mengisolasi akses data pengguna, Anda mungkin ingin membatasi akses katalog ke ruang kerja tertentu di akun Anda, juga dikenal sebagai pengikatan katalog ruang kerja. Defaultnya adalah berbagi katalog dengan semua ruang kerja yang dilampirkan ke metastore saat ini.

Anda dapat mengizinkan akses baca dan tulis ke katalog dari ruang kerja (default), atau Anda dapat menentukan akses baca-saja. Jika Anda menentukan baca-saja, maka semua operasi tulis diblokir dari ruang kerja tersebut ke katalog tersebut.

Kasus penggunaan umum untuk mengikat katalog ke ruang kerja tertentu meliputi:

  • Memastikan bahwa pengguna hanya dapat mengakses data produksi dari lingkungan ruang kerja produksi.
  • Memastikan bahwa pengguna hanya dapat memproses data sensitif dari ruang kerja khusus.
  • Memberi pengguna akses baca-saja ke data produksi dari ruang kerja pengembang untuk mengaktifkan pengembangan dan pengujian.

Catatan

Anda juga dapat mengikat lokasi eksternal dan kredensial penyimpanan ke ruang kerja tertentu, membatasi kemampuan untuk mengakses data di lokasi eksternal ke pengguna istimewa di ruang kerja tersebut. Lihat (Opsional) Menetapkan lokasi eksternal ke ruang kerja tertentu dan (Opsional) Menetapkan kredensial penyimpanan ke ruang kerja tertentu.

Contoh pengikatan katalog ruang kerja

Ambil contoh isolasi produksi dan pengembangan. Jika Anda menentukan bahwa katalog data produksi Anda hanya dapat diakses dari ruang kerja produksi, ini menggantikan setiap pemberian individu yang dikeluarkan untuk pengguna.

Diagram pengikatan ruang kerja katalog

Dalam diagram ini, prod_catalog terikat ke dua ruang kerja produksi. Misalkan pengguna telah diberikan akses ke tabel di yang dipanggil prod_catalogmy_table (menggunakan GRANT SELECT ON my_table TO <user>). Jika pengguna mencoba mengakses my_table di ruang kerja Dev, mereka menerima pesan kesalahan. Pengguna hanya dapat mengakses my_table dari ruang kerja Prod ETL dan Prod Analytics.

Pengikatan katalog ruang kerja dihormati di semua area platform. Misalnya, jika Anda mengkueri skema informasi, Anda hanya melihat katalog yang dapat diakses di ruang kerja tempat Anda mengeluarkan kueri. Silsilah data dan UI pencarian juga hanya menampilkan katalog yang ditetapkan ke ruang kerja (baik menggunakan pengikatan atau secara default).

Mengikat katalog ke satu atau beberapa ruang kerja

Untuk menetapkan katalog ke ruang kerja tertentu, Anda dapat menggunakan Catalog Explorer atau REST API Unity Catalog.

Izin diperlukan: Admin metastore atau pemilik katalog.

Catatan

Admin Metastore dapat melihat semua katalog di metastore menggunakan Catalog Explorer—dan pemilik katalog dapat melihat semua katalog yang mereka miliki di metastore—terlepas dari apakah katalog ditetapkan ke ruang kerja saat ini. Katalog yang tidak ditetapkan ke ruang kerja tampak berwarna abu-abu, dan tidak ada objek anak yang terlihat atau dapat dikueri.

Penjelajah katalog

  1. Masuk ke ruang kerja yang ditautkan ke metastore.

  2. Klik Ikon katalogKatalog.

  3. Di panel Katalog , di sebelah kiri, klik nama katalog.

    Panel Penjelajah Katalog utama default ke daftar Katalog . Anda juga dapat memilih katalog di sana.

  4. Pada tab Ruang Kerja, kosongkan kotak centang Semua ruang kerja memiliki akses .

    Jika katalog Anda sudah terikat ke satu atau beberapa ruang kerja, kotak centang ini sudah dihapus.

  5. Klik Tetapkan ke ruang kerja dan masukkan atau temukan ruang kerja yang ingin Anda tetapkan.

  6. (Opsional) Batasi akses ruang kerja ke baca-saja.

    Pada menu Kelola tingkat akses, pilih Ubah akses ke baca-saja.

    Anda dapat membalikkan pilihan ini kapan saja dengan mengedit katalog dan memilih Ubah akses untuk membaca &menulis.

Untuk mencabut akses, buka tab Ruang Kerja, pilih ruang kerja, dan klik Cabut.

Api

Ada dua API dan dua langkah yang diperlukan untuk menetapkan katalog ke ruang kerja. Dalam contoh berikut, ganti <workspace-url> dengan nama instans ruang kerja Anda. Untuk mempelajari cara mendapatkan nama instans ruang kerja dan ID ruang kerja, lihat Mendapatkan pengidentifikasi untuk objek ruang kerja. Untuk mempelajari tentang mendapatkan token akses, lihat Autentikasi untuk otomatisasi Azure Databricks - gambaran umum.

  1. catalogs Gunakan API untuk mengatur katalog isolation mode ke ISOLATED:

    curl -L -X PATCH 'https://<workspace-url>/api/2.1/unity-catalog/catalogs/<my-catalog> \
    -H 'Authorization: Bearer <my-token> \
    -H 'Content-Type: application/json' \
    --data-raw '{
     "isolation_mode": "ISOLATED"
     }'
    

    isolation mode Defaultnya adalah OPEN untuk semua ruang kerja yang dilampirkan ke metastore.

  2. Gunakan API pembaruan bindings untuk menetapkan ruang kerja ke katalog:

    curl -L -X PATCH 'https://<workspace-url>/api/2.1/unity-catalog/bindings/catalog/<my-catalog> \
    -H 'Authorization: Bearer <my-token> \
    -H 'Content-Type: application/json' \
    --data-raw '{
      "add": [{"workspace_id": <workspace-id>, "binding_type": <binding-type>}...],
      "remove": [{"workspace_id": <workspace-id>, "binding_type": "<binding-type>}...]
    }'
    

    "add" Gunakan properti dan "remove" untuk menambahkan atau menghapus pengikatan ruang kerja. <binding-type> dapat berupa “BINDING_TYPE_READ_WRITE” (default) atau “BINDING_TYPE_READ_ONLY”.

Untuk mencantumkan semua penetapan ruang kerja untuk katalog, gunakan API daftar bindings :

   curl -L -X GET 'https://<workspace-url>/api/2.1/unity-catalog/bindings/catalog/<my-catalog> \
   -H 'Authorization: Bearer <my-token> \

Membatalkan ikatan katalog dari ruang kerja

Instruksi untuk mencabut akses ruang kerja ke katalog menggunakan Catalog Explorer atau bindings API disertakan dalam Ikat katalog ke satu atau beberapa ruang kerja.

Penting

Jika ruang kerja Anda diaktifkan untuk Katalog Unity secara otomatis dan Anda memiliki katalog ruang kerja, admin ruang kerja memiliki katalog tersebut dan memiliki semua izin pada katalog tersebut di ruang kerja saja. Jika Anda membatalkan ikatan katalog tersebut atau mengikatnya ke katalog lain, Anda harus memberikan izin yang diperlukan secara manual kepada anggota grup admin ruang kerja sebagai pengguna individual atau menggunakan grup tingkat akun, karena grup admin ruang kerja adalah grup lokal ruang kerja. Untuk informasi selengkapnya tentang grup akun vs grup ruang kerja-lokal, lihat Perbedaan antara grup akun dan grup ruang kerja-lokal.

Menambahkan skema ke katalog Anda

Untuk mempelajari cara menambahkan skema (database) ke katalog Anda. lihat Membuat dan mengelola skema (database).

Lihat detail katalog

Untuk melihat informasi tentang katalog, Anda bisa menggunakan Catalog Explorer atau perintah SQL.

Penjelajah katalog

  1. Masuk ke ruang kerja yang ditautkan ke metastore.

  2. Klik Ikon katalogKatalog.

  3. Di panel Katalog , temukan katalog dan klik namanya.

    Beberapa detail tercantum di bagian atas halaman. Orang lain dapat dilihat di tab Skema, Detail, Izin, dan Ruang Kerja.

Sql

Jalankan perintah SQL berikut ini di notebook atau editor Databricks SQL. Item dalam tanda kurung bersifat opsional. Ganti tempat penampung <catalog-name>.

Untuk detailnya, lihat MENDESKRIPSIKAN KATALOG.

DESCRIBE CATALOG <catalog-name>;

Gunakan CATALOG EXTENDED untuk mendapatkan detail lengkap.

Menghapus katalog

Untuk menghapus (atau menghilangkan) katalog, Anda bisa menggunakan Catalog Explorer atau perintah SQL. Untuk menjatuhkan katalog, Anda harus menjadi pemiliknya.

Penjelajah katalog

Anda harus menghapus semua skema dalam katalog kecuali information_schema sebelum Anda dapat menghapus katalog. Ini termasuk skema yang dibuat default secara otomatis.

  1. Masuk ke ruang kerja yang ditautkan ke metastore.
  2. Klik Ikon katalogKatalog.
  3. Di panel Katalog , di sebelah kiri, klik katalog yang ingin Anda hapus.
  4. Di panel detail, klik menu tiga titik di sebelah kiri tombol Buat database dan pilih Hapus.
  5. Pada dialog Hapus katalog, klik Hapus.

Sql

Jalankan perintah SQL berikut ini di notebook atau editor Databricks SQL. Item dalam tanda kurung bersifat opsional. Ganti tempat penampung <catalog-name>.

Untuk deskripsi parameter, lihat DROP CATALOG.

Jika Anda menggunakan DROP CATALOG tanpa CASCADE opsi , Anda harus menghapus semua skema dalam katalog kecuali information_schema sebelum Anda dapat menghapus katalog. Ini termasuk skema yang dibuat default secara otomatis.

DROP CATALOG [ IF EXISTS ] <catalog-name> [ RESTRICT | CASCADE ]

Misalnya, untuk menghapus katalog bernama vaccine dan skemanya:

DROP CATALOG vaccine CASCADE

Mengelola katalog default

Katalog default dikonfigurasi untuk setiap ruang kerja yang diaktifkan untuk Katalog Unity. Katalog default memungkinkan Anda melakukan operasi data tanpa menentukan katalog. Jika Anda menghilangkan nama katalog tingkat atas saat Anda melakukan operasi data, katalog default diasumsikan.

Admin ruang kerja dapat melihat atau mengalihkan katalog default menggunakan admin Pengaturan UI. Anda juga dapat mengatur katalog default untuk kluster menggunakan konfigurasi Spark.

Perintah yang tidak menentukan katalog (misalnya GRANT CREATE TABLE ON SCHEMA myschema TO mygroup) dievaluasi untuk katalog dalam urutan berikut:

  1. Apakah katalog diatur untuk sesi menggunakan USE CATALOG pernyataan atau pengaturan JDBC?
  2. Apakah konfigurasi spark.databricks.sql.initial.catalog.namespace Spark diatur pada kluster?
  3. Apakah ada katalog default ruang kerja yang ditetapkan untuk kluster?

Konfigurasi katalog default saat Katalog Unity diaktifkan

Katalog default yang awalnya dikonfigurasi untuk ruang kerja Anda bergantung pada bagaimana ruang kerja Anda diaktifkan untuk Katalog Unity:

  • Untuk beberapa ruang kerja yang diaktifkan untuk Katalog Unity secara otomatis, katalog ruang kerja ditetapkan sebagai katalog default. Lihat Pengaktifan Otomatis Katalog Unity.
  • Untuk semua ruang kerja lainnya, hive_metastore katalog ditetapkan sebagai katalog default.

Jika Anda beralih dari metastore Apache Hive ke Unity Catalog dalam ruang kerja yang ada, biasanya masuk akal untuk digunakan hive_metastore sebagai katalog default untuk menghindari berdampak pada kode yang ada yang mereferensikan metastore apache Hive.

Mengubah katalog default

Admin ruang kerja dapat mengubah katalog default untuk ruang kerja. Siapa pun yang memiliki izin untuk membuat atau mengedit kluster dapat mengatur katalog default yang berbeda untuk kluster.

Peringatan

Mengubah katalog default dapat memutus operasi data yang ada yang bergantung padanya.

Untuk mengonfigurasi katalog default yang berbeda untuk ruang kerja:

  1. Masuk ke ruang kerja Anda sebagai admin ruang kerja.
  2. Klik nama pengguna Anda di bilah atas ruang kerja dan pilih Pengaturan dari menu dropdown.
  3. Klik tab Tingkat Lanjut.
  4. Pada katalog Default untuk baris ruang kerja, masukkan nama katalog dan klik Simpan.

Mulai ulang gudang dan kluster SQL Anda agar perubahan diterapkan. Semua gudang dan kluster SQL baru dan yang dimulai ulang akan menggunakan katalog ini sebagai default ruang kerja.

Anda juga dapat mengambil alih katalog default untuk kluster tertentu dengan mengatur konfigurasi Spark berikut pada kluster. Pendekatan ini tidak tersedia untuk gudang SQL:

spark.databricks.sql.initial.catalog.name

Untuk petunjuknya, lihat Konfigurasi Spark.

Menampilkan katalog default saat ini

Untuk mendapatkan katalog default saat ini untuk ruang kerja Anda, Anda bisa menggunakan pernyataan SQL di buku catatan atau kueri Editor SQL. Admin ruang kerja bisa mendapatkan katalog default menggunakan Admin Pengaturan UI.

Pengaturan admin

  1. Masuk ke ruang kerja Anda sebagai admin ruang kerja.
  2. Klik nama pengguna Anda di bilah atas ruang kerja dan pilih Pengaturan dari menu dropdown.
  3. Klik tab Tingkat Lanjut.
  4. Pada katalog Default untuk baris ruang kerja, lihat nama katalog.

Sql

Jalankan perintah berikut dalam buku catatan atau kueri Editor SQL yang berjalan di gudang SQL atau kluster yang mematuhi Katalog Unity. Katalog default ruang kerja dikembalikan selama tidak ada USE CATALOG pernyataan atau pengaturan JDBC yang telah diatur pada sesi, dan selama tidak ada spark.databricks.sql.initial.catalog.namespace konfigurasi yang diatur untuk kluster.

SELECT current_catalog();