Bagikan melalui


Membaca data yang dibagikan menggunakan Berbagi Delta Databricks-ke-Databricks (untuk penerima)

Artikel ini menjelaskan cara membaca data yang telah dibagikan dengan Anda menggunakan protokol Berbagi Databricks-ke-Databricks Delta, di mana Databricks mengelola koneksi aman untuk berbagi data. Tidak seperti protokol berbagi terbuka Berbagi Delta, protokol Databricks-to-Databricks tidak memerlukan file kredensial (keamanan berbasis token).

Berbagi Databricks-ke-Databricks mengharuskan Anda, sebagai penerima, memiliki akses ke ruang kerja Databricks yang diaktifkan untuk Unity Catalog.

Jika Anda tidak memiliki ruang kerja Databricks yang diaktifkan untuk Katalog Unity, maka data harus dibagikan dengan Anda menggunakan protokol berbagi terbuka Berbagi Delta, dan artikel ini tidak berlaku untuk Anda. Lihat Membaca data yang dibagikan menggunakan berbagi terbuka Berbagi Delta (untuk penerima).

Bagaimana cara membuat data bersama tersedia untuk tim saya?

Untuk membaca data dan notebook yang telah dibagikan dengan Anda menggunakan protokol Databricks-to-Databricks, Anda harus menjadi pengguna di ruang kerja Databricks yang diaktifkan untuk Unity Catalog. Anggota tim Anda menyediakan penyedia data dengan pengidentifikasi unik untuk metastore Katalog Unity Anda, dan penyedia data menggunakan pengidentifikasi tersebut untuk membuat koneksi berbagi yang aman dengan organisasi Anda. Data bersama kemudian tersedia untuk akses baca di ruang kerja Anda, dan pembaruan apa pun yang dilakukan penyedia data ke tabel, tampilan, volume, dan partisi bersama tercermin di ruang kerja Anda mendekati real time.

Catatan

Pembaruan untuk tabel, tampilan, dan volume data bersama muncul di ruang kerja Anda mendekati real time. Namun, perubahan kolom (menambahkan, mengganti nama, menghapus) mungkin tidak muncul di Catalog Explorer hingga satu menit. Demikian juga, berbagi dan pembaruan baru untuk berbagi (seperti menambahkan tabel baru ke berbagi) di-cache selama satu menit sebelum tersedia untuk Anda lihat dan kueri.

Untuk membaca data yang telah dibagikan dengan Anda:

  1. Pengguna di tim Anda menemukan berbagi—kontainer untuk tabel, tampilan, volume, dan notebook yang telah dibagikan dengan Anda—dan menggunakan berbagi tersebut untuk membuat katalog—kontainer tingkat atas untuk semua data di Databricks Unity Catalog.
  2. Pengguna di tim Anda memberikan atau menolak akses ke katalog dan objek di dalam katalog (skema, tabel, tampilan, dan volume) kepada anggota tim Anda lainnya.
  3. Anda membaca data dalam tabel, tampilan, dan volume yang telah Anda berikan aksesnya sama seperti aset data lainnya di Databricks yang dapat Anda akses baca-saja (SELECT atau READ VOLUME) .
  4. Anda mempratinjau dan mengkloning notebook di berbagi, selama Anda memiliki USE CATALOG hak istimewa pada katalog.

Izin diperlukan

Agar dapat mencantumkan dan melihat detail tentang semua penyedia dan berbagi penyedia, Anda harus menjadi admin metastore atau memiliki USE PROVIDER hak istimewa. Pengguna lain hanya memiliki akses ke penyedia dan berbagi yang mereka miliki.

Untuk membuat katalog dari berbagi penyedia, Anda harus menjadi admin metastore, pengguna yang memiliki CREATE_CATALOG hak istimewa dan USE PROVIDER untuk metastore Katalog Unity Anda, atau pengguna yang memiliki CREATE_CATALOG hak istimewa dan kepemilikan objek penyedia.

Kemampuan untuk memberikan akses baca-saja ke skema (database), tabel, tampilan, dan volume dalam katalog yang dibuat dari berbagi mengikuti hierarki hak istimewa Katalog Unity yang khas. Kemampuan untuk melihat buku catatan dalam katalog yang dibuat dari berbagi memerlukan USE CATALOG hak istimewa pada katalog. Lihat Mengelola izin untuk skema, tabel, dan volume dalam katalog Berbagi Delta.

Melihat penyedia dan berbagi

Untuk mulai membaca data yang telah dibagikan dengan Anda oleh penyedia data, Anda perlu mengetahui nama penyedia dan berbagi objek yang disimpan di metastore Katalog Unity Anda setelah penyedia berbagi data dengan Anda.

Objek penyedia mewakili metastore Unity Catalog, platform cloud, dan wilayah organisasi yang berbagi data dengan Anda.

Objek berbagi mewakili tabel, volume, dan tampilan yang telah dibagikan penyedia dengan Anda.

Menampilkan semua penyedia yang telah berbagi data dengan Anda

Untuk melihat daftar penyedia data yang tersedia, Anda bisa menggunakan Catalog Explorer, Databricks Unity Catalog CLI, atau SHOW PROVIDERS perintah SQL di notebook Azure Databricks atau editor kueri Databricks SQL.

Izin yang diperlukan: Anda harus menjadi admin metastore atau memiliki USE PROVIDER hak istimewa. Pengguna lain hanya memiliki akses ke penyedia dan berbagi penyedia yang mereka miliki.

Untuk detailnya, lihat Menampilkan penyedia.

Lihat detail penyedia

Untuk melihat detail tentang penyedia, Anda bisa menggunakan Catalog Explorer, Databricks Unity Catalog CLI, atau DESCRIBE PROVIDER perintah SQL di buku catatan Azure Databricks atau editor kueri Databricks SQL.

Izin yang diperlukan: Anda harus menjadi admin metastore, memiliki USE PROVIDER hak istimewa, atau memiliki objek penyedia.

Untuk detailnya, lihat Menampilkan detail penyedia.

Menampilkan berbagi

Untuk melihat berbagi yang telah dibagikan penyedia dengan Anda, Anda bisa menggunakan Catalog Explorer, Databricks Unity Catalog CLI, atau SHOW SHARES IN PROVIDER perintah SQL di buku catatan Azure Databricks atau editor kueri Databricks SQL.

Izin yang diperlukan: Anda harus menjadi admin metastore, memiliki USE PROVIDER hak istimewa, atau memiliki objek penyedia.

Untuk detailnya, lihat Menampilkan berbagi yang telah dibagikan penyedia dengan Anda.

Mengakses data dalam tabel atau volume bersama

Untuk membaca data dalam tabel atau volume bersama:

  1. Pengguna istimewa harus membuat katalog dari berbagi yang berisi tabel atau volume. Ini bisa menjadi admin metastore, pengguna yang memiliki CREATE_CATALOG hak istimewa dan USE PROVIDER untuk metastore Katalog Unity Anda, atau pengguna yang memiliki CREATE_CATALOG hak istimewa dan kepemilikan objek penyedia.
  2. Pengguna atau pengguna dengan hak istimewa yang sama harus memberi Anda akses ke tabel atau volume bersama.
  3. Anda dapat mengakses tabel atau volume seperti halnya aset data lain yang terdaftar di metastore Unity Catalog Anda.

Membuat katalog dari berbagi

Untuk membuat data dalam berbagi dapat diakses oleh tim Anda, Anda harus membuat katalog dari berbagi. Untuk membuat katalog dari berbagi, Anda bisa menggunakan Catalog Explorer, Databricks Unity Catalog CLI, atau perintah SQL di buku catatan Azure Databricks atau editor kueri Databricks SQL.

Izin diperlukan: Admin metastore, pengguna yang memiliki CREATE_CATALOG hak istimewa dan USE PROVIDER untuk metastore Katalog Unity Anda, atau pengguna yang memiliki CREATE_CATALOG hak istimewa dan kepemilikan objek penyedia.

Catatan

Jika berbagi menyertakan tampilan, Anda harus menggunakan nama katalog yang berbeda dari nama katalog yang berisi tampilan di metastore penyedia.

Penjelajah Katalog

  1. Di ruang kerja Azure Databricks Anda, klik Ikon katalog Katalog untuk membuka Catalog Explorer.

  2. Di bagian atas panel Katalog , klik ikon gerigi Ikon gigi dan pilih Berbagi Delta.

    Atau, dari halaman Akses cepat, klik tombol Berbagi > Delta.

  3. Pada tab Dibagikan dengan saya , temukan dan pilih penyedia.

  4. Pada tab Berbagi , temukan berbagi dan klik Buat katalog pada baris berbagi.

  5. Masukkan nama untuk katalog dan komentar opsional.

  6. Klik Buat.

Atau, saat membuka Catalog Explorer, Anda dapat mengklik Buat Katalog di kanan atas untuk membuat katalog bersama. Lihat Membuat katalog.

SQL

Jalankan perintah berikut ini di buku catatan atau editor kueri Databricks SQL.

CREATE CATALOG [IF NOT EXISTS] <catalog-name>
USING SHARE <provider-name>.<share-name>;

CLI

databricks catalogs create <catalog-name> /
--provider-name <provider-name> /
--share-name <share-name>

Katalog yang dibuat dari berbagi memiliki jenis katalog Berbagi Delta. Anda bisa menampilkan jenis pada halaman detail katalog di Catalog Explorer atau dengan menjalankan perintah DESCRIBE CATALOG SQL di buku catatan atau kueri Databricks SQL. Semua katalog bersama tercantum di bawah Katalog > Bersama di panel kiri Catalog Explorer.

Katalog Berbagi Delta dapat dikelola dengan cara yang sama seperti katalog reguler di metastore Katalog Unity. Anda dapat melihat, memperbarui, dan menghapus katalog Berbagi Delta menggunakan Catalog Explorer, Databricks CLI, dan dengan menggunakan SHOW CATALOGSperintah , , ALTER CATALOGDESCRIBE CATALOG, dan DROP CATALOG SQL.

Struktur namespace layanan 3 tingkat di bawah katalog Berbagi Delta yang dibuat dari berbagi sama dengan yang ada di bawah katalog reguler di Unity Catalog: catalog.schema.table atau catalog.schema.volume.

Data tabel dan volume di bawah katalog bersama bersifat baca-saja, yang berarti Anda dapat melakukan operasi baca seperti:

  • DESCRIBE, SHOW, dan SELECT untuk tabel.
  • DESCRIBE VOLUME, , LIST <volume-path>SELECT * FROM <format>.'<volume_path>', dan COPY INTO untuk volume.

Notebook dalam katalog bersama dapat dipratinjau dan dikloning oleh pengguna mana pun di USE CATALOG katalog.

Model dalam katalog bersama dapat dibaca dan dimuat untuk inferensi oleh pengguna mana pun dengan hak istimewa berikut: EXECUTE hak istimewa pada model terdaftar, plus USE SCHEMA dan USE CATALOG hak istimewa pada skema dan katalog yang berisi model.

Mengelola izin untuk skema, tabel, dan volume dalam katalog Berbagi Delta

Secara default, pembuat katalog adalah pemilik semua objek data di bawah katalog Berbagi Delta dan dapat mengelola izin untuk salah satunya.

Hak istimewa diwariskan ke bawah, meskipun beberapa ruang kerja mungkin masih berada di model keamanan warisan yang tidak memberikan warisan. Lihat Model pewarisan. Setiap pengguna yang SELECT diberikan hak istimewa pada katalog akan memiliki SELECT hak istimewa pada semua skema dan tabel dalam katalog kecuali hak istimewa tersebut dicabut. Demikian juga, setiap pengguna yang diberikan READ VOLUME hak istimewa pada katalog akan memiliki READ VOLUME hak istimewa pada semua volume dalam katalog kecuali hak istimewa tersebut dicabut. Anda tidak dapat memberikan hak istimewa yang memberikan akses tulis atau perbarui ke katalog atau objek Berbagi Delta dalam katalog Berbagi Delta.

Pemilik katalog dapat mendelegasikan kepemilikan objek data kepada pengguna atau grup lain, sehingga memberi pengguna tersebut kemampuan untuk mengelola izin objek dan siklus hidup.

Untuk informasi terperinci tentang mengelola hak istimewa pada objek data menggunakan Unity Catalog, lihat Mengelola hak istimewa di Unity Catalog.

Membaca data dalam tabel bersama

Anda dapat membaca data dalam tabel bersama menggunakan salah satu alat yang tersedia untuk Anda sebagai pengguna Azure Databricks: Catalog Explorer, notebook, kueri SQL, Databricks CLI, dan DATAbricks REST API. Anda harus memiliki SELECT hak istimewa di atas meja.

Membaca data dalam volume bersama

Anda dapat membaca data dalam volume bersama menggunakan salah satu alat yang tersedia untuk Anda sebagai pengguna Azure Databricks: Catalog Explorer, notebook, kueri SQL, Databricks CLI, dan DATAbricks REST API. Anda harus memiliki READ VOLUME hak istimewa pada volume.

Memuat model bersama untuk inferensi

Untuk detail tentang memuat model bersama dan menggunakannya untuk inferensi batch, lihat Memuat model untuk inferensi.

Mengkueri data riwayat tabel

Jika riwayat dibagikan bersama dengan tabel, Anda bisa mengkueri data tabel pada versi atau tanda waktu. Memerlukan Databricks Runtime 12.2 LTS atau lebih tinggi.

Contohnya:

SELECT * FROM vaccine.vaccine_us.vaccine_us_distribution VERSION AS OF 3;
SELECT * FROM vaccine.vaccine_us.vaccine_us_distribution TIMESTAMP AS OF "2023-01-01 00:00:00";

Selain itu, jika umpan data perubahan (CDF) diaktifkan dengan tabel, Anda dapat mengkueri CDF. Versi dan tanda waktu didukung:

SELECT * FROM table_changes('vaccine.vaccine_us.vaccine_us_distribution', 0, 3);
SELECT * FROM table_changes('vaccine.vaccine_us.vaccine_us_distribution', "2023-01-01 00:00:00", "2022-02-01 00:00:00");

Untuk informasi selengkapnya tentang mengubah umpan data, lihat Menggunakan umpan data perubahan Delta Lake di Azure Databricks.

Mengkueri tabel menggunakan Streaming Terstruktur Apache Spark

Jika tabel dibagikan dengan riwayat, Anda dapat menggunakannya sebagai sumber untuk Streaming Terstruktur Spark. Memerlukan Databricks Runtime 12.2 LTS atau lebih tinggi.

Opsi yang didukung:

  • ignoreDeletes: Abaikan transaksi yang menghapus data.
  • ignoreChanges: Memproses ulang pembaruan jika file ditulis ulang dalam tabel sumber karena operasi perubahan data seperti UPDATE, , MERGE INTODELETE (dalam partisi), atau OVERWRITE. Baris yang tidak berubah masih dapat dipancarkan. Oleh karena itu konsumen hilir Anda harus dapat menangani duplikat. Penghapusan tidak disebarkan ke hilir. ignoreChanges subsum ignoreDeletes. Oleh karena itu, jika Anda menggunakan ignoreChanges, aliran Anda tidak akan terganggu oleh penghapusan atau pembaruan ke tabel sumber.
  • startingVersion: Versi tabel bersama untuk memulai. Semua perubahan tabel mulai dari versi ini (inklusif) akan dibaca oleh sumber streaming.
  • startingTimestamp: Stempel waktu untuk memulai. Semua perubahan tabel yang diterapkan pada atau setelah stempel waktu (inklusif) akan dibaca oleh sumber streaming. Contoh: "2023-01-01 00:00:00.0"
  • maxFilesPerTrigger: Jumlah file baru yang akan dipertimbangkan dalam setiap mikro-batch.
  • maxBytesPerTrigger: Jumlah data yang diproses di setiap mikro-batch. Opsi ini mengatur "maks lunak", yang berarti bahwa batch memproses kira-kira jumlah data ini dan mungkin memproses lebih dari batas untuk membuat kueri streaming bergerak maju dalam kasus ketika unit input terkecil lebih besar dari batas ini.
  • readChangeFeed: Streaming membaca umpan data perubahan tabel bersama.

Opsi yang tidak didukung:

  • Trigger.availableNow

Sampel kueri Streaming Terstruktur

Scala
spark.readStream.format("deltaSharing")
.option("startingVersion", 0)
.option("ignoreChanges", true)
.option("maxFilesPerTrigger", 10)
.table("vaccine.vaccine_us.vaccine_us_distribution")
Python
spark.readStream.format("deltaSharing")\
.option("startingVersion", 0)\
.option("ignoreDeletes", true)\
.option("maxBytesPerTrigger", 10000)\
.table("vaccine.vaccine_us.vaccine_us_distribution")

Jika umpan data perubahan (CDF) diaktifkan dengan tabel, Anda dapat melakukan streaming membaca CDF.

spark.readStream.format("deltaSharing")
.option("readChangeFeed", "true")
.table("vaccine.vaccine_us.vaccine_us_distribution")

Membaca tabel dengan vektor penghapusan atau pemetaan kolom diaktifkan

Penting

Fitur ini ada di Pratinjau Publik.

Vektor penghapusan adalah fitur pengoptimalan penyimpanan yang dapat diaktifkan penyedia Anda pada tabel Delta bersama. Lihat Apa itu vektor penghapusan?.

Azure Databricks juga mendukung pemetaan kolom untuk tabel Delta. Lihat Mengganti nama dan meletakkan kolom dengan pemetaan kolom Delta Lake.

Jika penyedia Anda berbagi tabel dengan vektor penghapusan atau pemetaan kolom diaktifkan, Anda dapat melakukan pembacaan batch pada tabel menggunakan gudang SQL atau kluster yang menjalankan Databricks Runtime 14.1 atau lebih tinggi. KUERI CDF dan streaming memerlukan Databricks Runtime 14.2 atau lebih tinggi.

Anda dapat melakukan kueri batch apa adanya, karena kueri tersebut dapat diselesaikan responseFormat secara otomatis berdasarkan fitur tabel tabel bersama.

Untuk membaca umpan data perubahan (CDF) atau untuk melakukan kueri streaming pada tabel bersama dengan vektor penghapusan atau pemetaan kolom diaktifkan, Anda harus mengatur opsi responseFormat=deltatambahan .

Contoh berikut menunjukkan kueri batch, CDF, dan streaming:

import org.apache.spark.sql.SparkSession

// Batch query
spark.read.format("deltaSharing").table(<tableName>)

// CDF query
spark.read.format("deltaSharing")
  .option("readChangeFeed", "true")
  .option("responseFormat", "delta")
  .option("startingVersion", 1)
  .table(<tableName>)

// Streaming query
spark.readStream.format("deltaSharing").option("responseFormat", "delta").table(<tableName>)

Membaca tampilan bersama

Penting

Fitur ini ada di Pratinjau Publik.

Catatan

Berbagi tampilan hanya didukung dalam berbagi Databricks-ke-Databricks.

Membaca tampilan bersama sama dengan membaca tabel bersama, dengan pengecualian ini:

Persyaratan komputasi:

  • Jika akun Azure Databricks Anda berbeda dari penyedia, Anda harus menggunakan gudang SQL Tanpa Server untuk mengkueri tampilan bersama.
  • Jika penyedia berada di akun Azure Databricks yang sama, Anda dapat menggunakan gudang SQL apa pun dan juga dapat menggunakan kluster yang menggunakan mode akses bersama.

Pembatasan tampilan-on-view:

Anda tidak dapat membuat tampilan yang mereferensikan tampilan bersama.

Lihat pembatasan berbagi:

Anda tidak dapat berbagi tampilan yang mereferensikan tabel bersama atau tampilan bersama.

Persyaratan penamaan:

Nama katalog yang Anda gunakan untuk katalog bersama yang berisi tampilan tidak boleh sama dengan katalog penyedia apa pun yang berisi tabel yang dirujuk oleh tampilan. Misalnya, jika tampilan bersama terkandung dalam katalog Anda test , dan salah satu tabel penyedia yang direferensikan dalam tampilan tersebut terkandung dalam katalog penyedia test , kueri akan mengakibatkan kesalahan konflik namespace. Lihat Membuat katalog dari berbagi.

Riwayat dan streaming:

Anda tidak dapat meminta riwayat atau menggunakan tampilan sebagai sumber streaming.

JDBC/ODBC:

Instruksi dalam artikel ini berfokus pada membaca data bersama menggunakan antarmuka pengguna Azure Databricks, khususnya sintaksis dan antarmuka Unity Catalog. Anda juga dapat mengkueri tampilan bersama menggunakan alat Apache Spark, Python, dan BI seperti Tableau dan Power BI menggunakan driver Databricks JDBC/ODBC. Untuk mempelajari cara menyambungkan menggunakan driver Databricks JDBC/ODBC, lihat Databricks ODBC dan Driver JDBC.

Membaca buku catatan bersama

Untuk mempratinjau dan mengkloning file notebook bersama, Anda bisa menggunakan Catalog Explorer.

Izin diperlukan: Pemilik atau pengguna katalog dengan USE CATALOG hak istimewa pada katalog yang dibuat dari berbagi.

  1. Di ruang kerja Azure Databricks Anda, klik Ikon katalog Katalog.

  2. Di panel kiri, perluas menu Katalog , temukan dan pilih katalog yang dibuat dari berbagi.

  3. Pada tab Aset lain, Anda akan melihat file buku catatan bersama apa pun.

  4. Klik nama file buku catatan bersama untuk mempratinjaunya.

  5. (Opsional) Klik tombol Kloning untuk mengimpor file buku catatan bersama ke ruang kerja Anda.

    1. Pada dialog Kloning ke, secara opsional masukkan Nama baru, lalu pilih folder ruang kerja tempat Anda ingin mengkloning file buku catatan.
    2. Klik Klona.
    3. Setelah buku catatan dikloning, dialog muncul untuk memberi tahu Anda bahwa buku catatan berhasil dikloning. Klik ungkapkan di editor buku catatan pada dialog untuk menampilkannya di editor buku catatan.

    Lihat Pengantar notebook Databricks.