Mengakses tabel Databricks dari klien Delta

Halaman ini menjelaskan cara menggunakan Unity REST API untuk membuat, membaca, dan menulis ke Tabel terkelola Dan eksternal Unity Catalog dari klien Delta eksternal. Untuk daftar lengkap integrasi yang didukung, lihat Integrasi Katalog Unity.

Saran

Untuk informasi tentang cara membaca data Azure Databricks menggunakan Microsoft Fabric, lihat Microsoft Fabric dengan Azure Databricks.

Membuat, membaca, dan menulis menggunakan Unity REST API

Penting

Membuat dan menulis ke dalam tabel terkelola Unity Catalog dari klien Delta berstatus Pratinjau Umum.

Unity REST API menyediakan klien eksternal membuat, membaca, dan menulis akses ke tabel yang terdaftar ke Katalog Unity. Konfigurasikan akses menggunakan URL ruang kerja sebagai titik akhir. Jenis tabel berikut ini dapat diakses:

Jenis tabel Read Menulis Buat
Delta yang Dikelola Yes Ya* Ya*
Delta Eksternal Yes Yes Yes

* Didukung untuk tabel Delta terkelola dengan komit katalog.

Klien yang didukung

Apache Spark mendukung pembuatan, pembacaan, dan penulisan ke tabel Delta terkelola dan eksternal di Unity Catalog menggunakan Unity REST API.

Klien berikut didukung di Beta. Hubungi tim akun Azure Databricks Anda jika Anda tertarik menggunakannya:

  • Apache Flink
  • DuckDB
  • StreamNative
  • Starburst

Persyaratan

Azure Databricks mendukung akses Unity REST API ke tabel sebagai bagian dari Unity Catalog. Anda harus memiliki Katalog Unity yang diaktifkan di ruang kerja Anda untuk menggunakan endpoint ini.

Anda juga harus menyelesaikan langkah-langkah konfigurasi berikut untuk mengonfigurasi akses ke tabel dari klien Delta menggunakan Unity REST API:

Keterbatasan

  • Akses eksternal ke tabel UniForm dengan IcebergCompatV3 saat ini tidak didukung.
  • Klien eksternal tidak dapat mengubah delta.* atau databricks.* properti tabel, menambahkan atau menghapus fitur tabel, mengganti nama kolom, dan menambahkan atau menghilangkan CHECK batasan.
  • Klien eksternal tidak dapat melakukan operasi pemeliharaan tabel, seperti OPTIMIZE, , VACUUMdan ANALYZE, pada tabel Delta terkelola.
  • Klien eksternal tidak dapat membuat tabel dengan kolom yang dihasilkan, kolom default, atau kolom batasan.
  • Saat membuat tabel eksternal, Azure Databricks merekomendasikan penggunaan Apache Spark untuk memastikan bahwa definisi kolom dalam format yang kompatibel dengan Apache Spark. API tidak memvalidasi kebenaran spesifikasi kolom. Jika spesifikasi tidak kompatibel dengan Apache Spark, maka Databricks Runtime mungkin tidak dapat membaca tabel.

Nota

Untuk membaca tabel dengan filter baris atau masker kolom yang dilampirkan dari klien Delta eksternal, lihat Kontrol akses berbasis atribut lintas mesin (ABAC) untuk versi dan konfigurasi klien yang diperlukan.

Mengakses tabel Delta dengan Apache Spark menggunakan autentikasi PAT

Autentikasi PAT untuk klien Spark eksternal memerlukan:

  • Klien Unity Catalog Spark versi 0.5.0 atau lebih tinggi (io.unitycatalog:unitycatalog-spark)
  • Apache Spark 4.0 atau 4.1
  • Delta Spark 4.3.0 atau lebih tinggi
  • Token akses pribadi untuk prinsipal yang mengakses Unity Catalog. Lihat Mengotorisasi akses ke sumber daya Azure Databricks.

Konfigurasi berikut diperlukan untuk membaca atau menulis ke tabel Delta terkelola dan eksternal Unity Catalog menggunakan Apache Spark dengan autentikasi PAT:

"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>",
"spark.sql.catalog.<uc-catalog-name>.token": "<token>",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_4.1_2.13:4.3.0,io.unitycatalog:unitycatalog-spark_4.1_2.13:0.5.0,org.apache.hadoop:hadoop-azure:3.4.2"

Ganti variabel berikut:

  • <uc-catalog-name>: Nama katalog di Unity Catalog yang berisi tabel Anda.
  • <token>: Token akses pribadi (PAT) untuk pengguna utama yang mengonfigurasi integrasi.
  • <workspace-url>: URL Azure Databricks workspace, termasuk ID ruang kerja. Contohnya, adb-1234567890123456.12.azuredatabricks.net.

Nota

Versi paket yang ditunjukkan di atas adalah yang terbaru berdasarkan pembaruan terakhir halaman ini. Versi yang lebih baru mungkin tersedia. Verifikasi bahwa versi paket kompatibel dengan versi Spark Anda.

Untuk detail tambahan tentang mengonfigurasi Apache Spark untuk penyimpanan objek cloud, lihat dokumentasi OSS Katalog Unity.

Penting

Databricks Runtime 16.4 ke atas diperlukan untuk membaca dari, menulis ke, atau membuat tabel dengan commit katalog diaktifkan. Databricks Runtime 18.0 ke atas diperlukan untuk mengaktifkan atau menonaktifkan penerapan katalog pada tabel yang ada.

Untuk membuat tabel Delta terkelola dengan komitmen katalog, gunakan SQL berikut:

CREATE TABLE <uc-catalog-name>.<schema-name>.<table-name> (id INT, desc STRING)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported') USING delta;

Untuk membuat tabel Delta eksternal, gunakan SQL berikut:

CREATE TABLE <uc-catalog-name>.<schema-name>.<table-name> (id INT, desc STRING)
USING delta
LOCATION <path>;

Mengakses tabel Delta dengan Apache Spark menggunakan autentikasi OAuth

Azure Databricks juga mendukung autentikasi mesin-ke-mesin (M2M) OAuth. OAuth secara otomatis menangani token dan perpanjangan kredensial untuk autentikasi Katalog Unity.

Autentikasi OAuth untuk klien Spark eksternal memerlukan:

Konfigurasi berikut diperlukan untuk membuat, membaca, atau menulis ke tabel terkelola Unity Catalog dan tabel Delta eksternal dengan Apache Spark menggunakan autentikasi OAuth:

"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>",
"spark.sql.catalog.<uc-catalog-name>.auth.type": "oauth",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.uri": "<oauth-token-endpoint>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientId": "<oauth-client-id>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientSecret": "<oauth-client-secret>",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_4.1_2.13:4.3.0,io.unitycatalog:unitycatalog-spark_4.1_2.13:0.5.0,org.apache.hadoop:hadoop-azure:3.4.2"

Ganti variabel berikut:

  • <workspace-url>: URL Azure Databricks workspace, termasuk ID ruang kerja. Contohnya, adb-1234567890123456.12.azuredatabricks.net.

Nota

Versi paket yang ditunjukkan di atas adalah yang terbaru berdasarkan pembaruan terakhir halaman ini. Versi yang lebih baru mungkin tersedia. Verifikasi bahwa versi paket kompatibel dengan versi Spark Anda.