Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Halaman ini menjelaskan cara membaca data yang dibagikan dengan Anda menggunakan protokol berbagi terbuka OpenSharing dengan token pembawa. Ini termasuk instruksi untuk membaca data bersama menggunakan alat berikut:
Dalam model berbagi ini, Anda menggunakan file kredensial, dibagikan dengan anggota tim Anda oleh penyedia data, untuk mendapatkan akses baca yang aman ke data bersama. Akses bertahan selama kredensial valid dan penyedia terus berbagi data. Penyedia mengelola kedaluwarsa dan rotasi kredensial. Pembaruan pada data tersedia hampir secara real time. Anda dapat membaca dan membuat salinan data bersama, tetapi Anda tidak dapat mengubah data sumber.
Nota
Jika data telah dibagikan dengan Anda menggunakan Databricks-to-Databricks OpenSharing, Anda tidak memerlukan file kredensial untuk mengakses data, dan halaman ini tidak berlaku untuk Anda. Sebagai gantinya, lihat Membaca data yang dibagikan menggunakan Databricks-to-Databricks OpenSharing (untuk penerima).
Bagian berikut menjelaskan cara menggunakan klien Apache Spark, pandas, Power BI, dan Iceberg untuk mengakses dan membaca data bersama menggunakan file kredensial. Untuk daftar lengkap konektor OpenSharing dan informasi tentang cara menggunakannya, lihat dokumentasi OpenSharing sumber terbuka. Jika Anda mengalami masalah saat mengakses data yang dibagi, hubungi penyedia data.
Sebelum Anda memulai
Anggota tim Anda harus mengunduh file kredensial yang dibagikan oleh penyedia data dan menggunakan saluran aman untuk berbagi file atau lokasi file tersebut dengan Anda. Lihat Cara mendapatkan akses dalam model berbagi Databricks-to-Open.
Untuk dokumentasi khusus konektor, lihat halaman unduh kredensial.
Klien Iceberg: Membaca data yang dibagikan
Gunakan klien Iceberg eksternal, seperti Snowflake, Trino, Flink, dan Spark, untuk membaca aset data bersama dengan akses nol salin menggunakan Apache Iceberg REST Catalog API.
Mendapatkan kredensial koneksi
Sebelum Anda mengakses aset data bersama dengan klien Iceberg eksternal, kumpulkan kredensial berikut:
- Titik akhir Iceberg REST Catalog
- Token Pembawa yang valid
- Nama berbagi jaringan
- (Opsional) Namespace layanan atau nama skema
- (Opsional) Nama tabel
Titik akhir Iceberg REST Catalog (icebergEndpoint) dan token Pembawa ditemukan dalam file kredensial yang dibagikan dengan Anda oleh penyedia data Anda. Untuk informasi selengkapnya, lihat Sebelum Memulai. Nama berbagi, namespace layanan, dan nama tabel dapat ditemukan secara terprogram menggunakan API OpenSharing.
Penting
icebergEndpoint ditemukan dalam file kredensial dan memiliki format <workspace-url>/api/2.0/delta-sharing/metastores/<metastore-id>/iceberg.
Contoh berikut menunjukkan cara mendapatkan kredensial tambahan. Masukkan titik akhir, titik akhir Iceberg, dan token Pembawa dari file kredensial jika diperlukan:
// List shares
curl -X GET "<endpoint>/shares" \
-H "Authorization: Bearer <bearerToken>"
// List namespaces
curl -X GET "<icebergEndpoint>/v1/shares/<share>/namespaces" \
-H "Authorization: Bearer <bearerToken>"
// List tables
curl -X GET "<icebergEndpoint>/v1/shares/<share>/namespaces/<namespace>/tables" \
-H "Authorization: Bearer <bearerToken>"
Nota
Metode ini selalu mengambil daftar aset yang paling terkini. Namun, dibutuhkan akses internet dan bisa lebih sulit untuk diintegrasikan di lingkungan tanpa kode.
Mengonfigurasi katalog Iceberg
Setelah Anda mendapatkan kredensial koneksi yang diperlukan, konfigurasikan klien Anda untuk menggunakan titik akhir Iceberg REST Catalog untuk membuat dan mengkueri tabel.
Untuk setiap berbagi, buat integrasi katalog.
USE ROLE ACCOUNTADMIN; CREATE OR REPLACE CATALOG INTEGRATION <CATALOG_PLACEHOLDER> CATALOG_SOURCE = ICEBERG_REST TABLE_FORMAT = ICEBERG REST_CONFIG = ( CATALOG_URI = '<icebergEndpoint>', WAREHOUSE = '<share_name>', ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS ) REST_AUTHENTICATION = ( TYPE = BEARER, BEARER_TOKEN = '<bearerToken>' ) ENABLED = TRUE;Secara opsional, tambahkan
REFRESH_INTERVAL_SECONDSuntuk selalu memperbarui metadata. Atur nilai berdasarkan frekuensi pembaruan katalog Anda.REFRESH_INTERVAL_SECONDS = 30Setelah katalog dikonfigurasi, buat database dari katalog. Ini secara otomatis membuat semua skema dan tabel dalam katalog tersebut.
CREATE DATABASE <DATABASE_PLACEHOLDER> LINKED_CATALOG = ( CATALOG = <CATALOG_PLACEHOLDER> );Untuk mengonfirmasi bahwa berbagi berhasil, lakukan kueri dari tabel dalam database. Anda seharusnya melihat data bersama dari Azure Databricks.
Jika hasilnya kosong atau terjadi kesalahan, ikuti langkah-langkah pemecahan masalah umum berikut:
- Periksa kembali hak istimewa, status pembuatan rekam jepret, dan kredensial REST.
- Hubungi penyedia data Anda.
- Lihat dokumentasi khusus untuk klien Iceberg Anda.
Contoh: Mengakses tabel bersama menggunakan klien Iceberg yang berbeda
Contoh berikut menunjukkan cara mengakses tabel openshared menggunakan klien Iceberg eksternal, seperti Snowflake, Apache Spark, PyIceberg, dan REST API, setelah mendapatkan kredensial koneksi Anda. Untuk informasi selengkapnya tentang mendapatkan kredensial koneksi, lihat Sebelum Memulai.
Snowflake
Untuk membaca aset data bersama di Snowflake, unggah file kredensial yang Anda unduh dan hasilkan perintah SQL yang diperlukan:
Dari tautan aktivasi OpenSharing Anda, klik ikon Snowflake.
Pada halaman integrasi Snowflake, unggah file kredensial yang Anda terima dari penyedia data.
Setelah memuat kredensial, pilih bagian data yang ingin Anda akses di Snowflake.
Klik Buat SQL setelah memilih aset yang diinginkan.
Salin dan tempel SQL yang dihasilkan ke lembar kerja Snowflake Anda. Ganti
CATALOG_PLACEHOLDERdengan nama katalog yang ingin Anda gunakan danDATABASE_PLACEHOLDERdengan nama database yang ingin Anda gunakan.
Limitations
Menyambungkan ke Iceberg REST Catalog di Snowflake memiliki batasan berikut:
- File metadata tidak diperbarui secara otomatis dengan rekam jepret terbaru. Anda harus mengandalkan refresh otomatis atau refresh manual.
- R2 tidak didukung.
- Semua batasan klien Iceberg berlaku.
Apache Spark
Untuk mengakses tabel bersama menggunakan Apache Spark, konfigurasikan Iceberg REST Catalog API dengan pengaturan berikut. Ganti <spark-catalog-name> dengan nama untuk katalog Anda, dan berikan kredensial koneksi Anda:
"spark.sql.extensions": "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions",
# Configuration for accessing tables shared using Delta Sharing
"spark.sql.catalog.<spark-catalog-name>":"org.apache.iceberg.spark.SparkCatalog",
"spark.sql.catalog.<spark-catalog-name>.type": "rest",
"spark.sql.catalog.<spark-catalog-name>.uri": "<icebergEndpoint>",
"spark.sql.catalog.<spark-catalog-name>.token": "<bearerToken>",
"spark.sql.catalog.<spark-catalog-name>.warehouse":"<share_name>",
"spark.sql.catalog.<spark-catalog-name>.scope":"all-apis"
PyIceberg
PyIceberg adalah implementasi Python untuk mengakses tabel Iceberg tanpa menggunakan JVM. PyIceberg memerlukan pyarrow operasi tabel seperti membaca data dan memeriksa metadata tabel. Instal PyIceberg dengan ekstensi pyarrow.
pip install "pyiceberg[pyarrow]"
Untuk mengakses tabel bersama, tambahkan konfigurasi katalog berikut ke file konfigurasi PyIceberg Anda:
catalog:
delta_sharing:
type: rest
uri: <icebergEndpoint>
warehouse: <share_name>
token: <bearerToken>
REST API
Gunakan panggilan REST API seperti contoh berikut curl untuk memuat tabel dan mengambil metadatanya bersama dengan kredensial sementara untuk mengakses file data:
curl -X GET -H "Authorization: Bearer <bearerToken>" -H "Accept: application/json" \
<icebergEndpoint>/v1/shares/<share_name>/namespaces/<schema_name>/tables/<table_name>
Responsnya mencakup metadata tabel Iceberg, lokasi S3, dan info masuk AWS sementara yang memungkinkan klien Anda membaca file data:
{
"metadata-location": "s3://bucket/path/to/iceberg/table/metadata/file",
"metadata": <iceberg-table-metadata-json>,
"config": {
"expires-at-ms": "<epoch-ts-in-millis>",
"s3.access-key-id": "<temporary-s3-access-key-id>",
"s3.session-token": "<temporary-s3-session-token>",
"s3.secret-access-key": "<temporary-secret-access-key>",
"client.region": "<aws-bucket-region-for-metadata-location>"
}
}
Batasan klien Iceberg
Batasan berikut berlaku saat mengkueri data OpenSharing dari klien Iceberg:
- Saat mencantumkan tabel di namespace, jika namespace berisi lebih dari 100 tampilan bersama, respons hanya mencakup 100 tampilan pertama.
Apache Spark: Membaca data bersama
Ikuti langkah-langkah ini untuk mengakses data bersama menggunakan Spark 3.x atau lebih tinggi.
Instruksi ini mengasumsikan bahwa Anda memiliki akses ke file kredensial yang dibagikan oleh penyedia data. Lihat Cara mendapatkan akses dalam model berbagi Databricks-to-Open.
Penting
Pastikan file kredensial Anda dapat diakses oleh Apache Spark dengan menggunakan jalur absolut. Jalur dapat mengacu pada objek cloud atau volume Unity Catalog.
Nota
Jika Anda menggunakan Spark di ruang kerja Azure Databricks yang diaktifkan untuk Katalog Unity, dan Anda menggunakan UI penyedia impor untuk mengimpor penyedia dan berbagi, instruksi di bagian ini tidak berlaku untuk Anda. Anda dapat mengakses tabel bersama seperti tabel lain yang terdaftar di Unity Catalog. Anda tidak perlu menginstal konektor Python delta-sharing atau menyediakan jalur ke file kredensial. Lihat Mengimpor penyedia dan membaca data yang dibagikan di Azure Databricks.
Memasang konektor OpenSharing Python dan Spark
Untuk mengakses metadata yang terkait dengan data bersama, seperti daftar tabel yang dibagikan dengan Anda, lakukan hal berikut. Contoh ini menggunakan Python.
Instal konektor Python Delta Sharing. Untuk informasi tentang batasan konektor Python, lihat Batasan konektor OpenSharing Python.
pip install delta-sharingPasang Konektor Apache Spark.
Menampilkan tabel yang dibagikan menggunakan Spark
Cantumkan tabel dalam berbagi. Dalam contoh di bawah ini, ganti <profile-path> dengan lokasi file kredensial.
import delta_sharing
client = delta_sharing.SharingClient(f"<profile-path>/config.share")
client.list_all_tables()
Hasilnya adalah array tabel, bersama dengan metadata untuk setiap tabel. Keluaran berikut menunjukkan dua tabel:
Out[10]: [Table(name='example_table', share='example_share_0', schema='default'), Table(name='other_example_table', share='example_share_0', schema='default')]
Jika output kosong atau tidak berisi tabel yang Anda harapkan, hubungi penyedia data.
Mengakses data bersama menggunakan Spark
Jalankan yang berikut ini, ganti variabel ini:
-
<profile-path>: lokasi file kredensial. -
<share-name>: nilaishare=untuk tabel. -
<schema-name>: nilaischema=untuk tabel. -
<table-name>: nilainame=untuk tabel. -
<version-as-of>: opsional. Versi tabel untuk memasukkan data. Hanya berfungsi jika penyedia data berbagi riwayat tabel.delta-sharing-sparkMembutuhkan 0.5.0 atau lebih tinggi. -
<timestamp-as-of>: opsional. Muat data pada versi sebelum atau pada tanda waktu yang diberikan. Hanya berfungsi jika penyedia data berbagi riwayat tabel.delta-sharing-sparkMembutuhkan 0.6.0 atau lebih tinggi.
Python
delta_sharing.load_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>", version=<version-as-of>)
spark.read.format("deltaSharing")\
.option("versionAsOf", <version-as-of>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")\
.limit(10)
delta_sharing.load_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>", timestamp=<timestamp-as-of>)
spark.read.format("deltaSharing")\
.option("timestampAsOf", <timestamp-as-of>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")\
.limit(10)
Scala
spark.read.format("deltaSharing")
.option("versionAsOf", <version-as-of>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
.limit(10)
spark.read.format("deltaSharing")
.option("timestampAsOf", <version-as-of>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
.limit(10)
Mengakses umpan data perubahan bersama menggunakan Spark
Jika riwayat tabel telah dibagikan dengan Anda dan mengubah umpan data (CDF) diaktifkan pada tabel sumber, akses umpan data perubahan dengan menjalankan yang berikut ini, menggantikan variabel ini.
delta-sharing-spark Membutuhkan 0.5.0 atau lebih tinggi.
Satu parameter mulai harus disediakan.
-
<profile-path>: lokasi file kredensial. -
<share-name>: nilaishare=untuk tabel. -
<schema-name>: nilaischema=untuk tabel. -
<table-name>: nilainame=untuk tabel. -
<starting-version>: opsional. Versi awal kueri, inklusif. Tentukan sebagai Panjang. -
<ending-version>: opsional. Versi akhir kueri, inklusif. Jika versi akhir tidak disediakan, API menggunakan versi tabel terbaru. -
<starting-timestamp>: opsional. Tanda waktu awal kueri, ini dikonversi ke versi yang dibuat lebih besar atau sama dengan tanda waktu ini. Tentukan sebagai string dalam formatyyyy-mm-dd hh:mm:ss[.fffffffff]. -
<ending-timestamp>: opsional. Tanda waktu akhir kueri, ini dikonversi ke versi yang dibuat sebelumnya atau sama dengan tanda waktu ini. Tentukan sebagai string dalam formatyyyy-mm-dd hh:mm:ss[.fffffffff]
Python
delta_sharing.load_table_changes_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_version=<starting-version>,
ending_version=<ending-version>)
delta_sharing.load_table_changes_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_timestamp=<starting-timestamp>,
ending_timestamp=<ending-timestamp>)
spark.read.format("deltaSharing").option("readChangeFeed", "true")\
.option("startingVersion", <starting-version>)\
.option("endingVersion", <ending-version>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
spark.read.format("deltaSharing").option("readChangeFeed", "true")\
.option("startingTimestamp", <starting-timestamp>)\
.option("endingTimestamp", <ending-timestamp>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
Scala
spark.read.format("deltaSharing").option("readChangeFeed", "true")
.option("startingVersion", <starting-version>)
.option("endingVersion", <ending-version>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
spark.read.format("deltaSharing").option("readChangeFeed", "true")
.option("startingTimestamp", <starting-timestamp>)
.option("endingTimestamp", <ending-timestamp>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
Jika output kosong atau tidak berisi data yang Anda harapkan, hubungi penyedia data.
Mengakses tabel bersama menggunakan Spark Structured Streaming
Jika riwayat tabel dibagikan dengan Anda, Anda dapat membaca data yang dibagikan secara langsung.
delta-sharing-spark Membutuhkan 0.6.0 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 sepertiUPDATE, ,MERGE INTODELETE(dalam partisi), atauOVERWRITE. Baris yang tidak berubah masih dapat dikeluarkan. Oleh karena itu, konsumen hilir Anda harus dapat menangani duplikat. Penghapusan data tidak diteruskan ke sistem hilir.ignoreChangesmencakupignoreDeletes. Oleh karena itu, jika Anda menggunakanignoreChanges, aliran Anda tidak terganggu oleh penghapusan atau pembaruan ke tabel sumber. -
startingVersion: Versi tabel yang dibagikan sebagai titik awal. Semua perubahan tabel yang dimulai dari versi ini (inklusif) dibaca oleh sumber streaming. -
startingTimestamp: Penanda waktu untuk memulai. Semua perubahan tabel yang dilakukan pada atau setelah tanda waktu (inklusif) 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 menetapkan "batas maksimum yang fleksibel", yang berarti batch memproses sekitar jumlah data ini dan mungkin memproses lebih dari batas ini agar kueri streaming dapat bergerak maju jika unit input terkecil lebih besar dari batas tersebut. -
readChangeFeed: Stream membaca umpan data perubahan dari tabel bersama.
Pemicu yang didukung:
-
Trigger.ProcessingTime: Pemicu default, digunakan ketika tidak ada pemicu eksplisit yang ditentukan. Data diproses dalam batch mikro berkelanjutan. -
Trigger.AvailableNow: Kueri mengambil versi server-side dari tabel bersama saat dimulai, memproses backlog sebagai beberapa mikro-batch yang mematuhimaxFilesPerTriggerdanmaxVersionsPerRpc, dan berhenti ketika versi yang diambil tersebut telah habis diproses.delta-sharing-sparkMembutuhkan 1.4.0 atau lebih tinggi. Versi lama menggunakanTrigger.AvailableNowsebagai pembungkus cadangan yang tidak mengikutimaxVersionsPerRpc. -
Trigger.Once:Usang; gunakanTrigger.AvailableNowsebagai gantinya. Pada versidelta-sharing-sparkdi bawah 1.4.0,Trigger.AvailableNowakan menggunakan wrapper yang tidak mematuhimaxVersionsPerRpc.
Contoh Kueri Streaming Terstruktur
Python
spark.readStream.format("deltaSharing")\
.option("startingVersion", 0)\
.option("ignoreDeletes", true)\
.option("maxBytesPerTrigger", 10000)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
Scala
spark.readStream.format("deltaSharing")
.option("startingVersion", 0)
.option("ignoreChanges", true)
.option("maxFilesPerTrigger", 10)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
Lihat juga Konsep Streaming Terstruktur.
Membaca tabel yang memiliki vektor penghapusan atau pemetaan kolom yang aktif
Penting
Fitur ini ada di Pratinjau Umum.
Vektor penghapusan adalah fitur pengoptimalan penyimpanan yang dapat diaktifkan penyedia Anda pada tabel Delta bersama. Lihat Vektor penghapusan di Databricks.
Azure Databricks juga mendukung pemetaan kolom untuk tabel Delta. Lihat mengganti nama dan menghapus kolom dengan menggunakan pemetaan kolom Delta Lake.
Jika penyedia Anda berbagi tabel dengan vektor penghapusan atau pemetaan kolom diaktifkan, Anda dapat membaca tabel menggunakan komputasi yang menjalankan delta-sharing-spark 3.1 atau lebih tinggi. Jika Anda menggunakan kluster Databricks, Anda dapat melakukan pembacaan batch menggunakan kluster yang menjalankan Databricks Runtime 14.1 atau lebih tinggi. Kueri CDF dan streaming memerlukan Databricks Runtime 14.2 atau versi yang lebih tinggi.
Anda dapat melakukan kueri batch apa adanya, karena kueri tersebut dapat diselesaikan responseFormat secara otomatis berdasarkan fitur tabel bersama.
Untuk membaca umpan data perubahan (CDF) atau melakukan kueri streaming pada tabel bersama yang memiliki vektor penghapusan atau pemetaan kolom yang diaktifkan, Anda harus mengatur opsi tambahan responseFormat=delta.
Contoh berikut menunjukkan permintaan batch, CDF, dan streaming.
import org.apache.spark.sql.SparkSession
val spark = SparkSession
.builder()
.appName("...")
.master("...")
.config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension")
.config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")
.getOrCreate()
val tablePath = "<profile-file-path>#<share-name>.<schema-name>.<table-name>"
// Batch query
spark.read.format("deltaSharing").load(tablePath)
// CDF query
spark.read.format("deltaSharing")
.option("readChangeFeed", "true")
.option("responseFormat", "delta")
.option("startingVersion", 1)
.load(tablePath)
// Streaming query
spark.readStream.format("deltaSharing").option("responseFormat", "delta").load(tablePath)
Membaca kolom pelacakan baris dalam tabel yang dibagikan
Jika penyedia data telah mengaktifkan pelacakan baris pada tabel bersama, Anda dapat mengkueri kolom metadata pelacakan baris menggunakan Scala Spark. Lihat Pelacakan baris di Azure Databricks untuk daftar kolom yang tersedia.
Anda harus mengatur opsi responseFormat ke delta.
spark.read.format("deltaSharing")
.option("responseFormat", "delta")
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
.select("_metadata.row_id")
.show()
Nota
Hanya format respons delta yang didukung untuk mengkueri kolom pelacakan baris di klien Spark. Konektor cadangan tidak didukung.
Pandas: Baca data yang dibagikan
Ikuti langkah-langkah ini untuk mengakses data bersama di pandas 0.25.3 atau lebih tinggi.
Instruksi ini mengasumsikan bahwa Anda memiliki akses ke file kredensial yang dibagikan oleh penyedia data. Lihat Cara mendapatkan akses dalam model berbagi Databricks-to-Open.
Nota
Jika Anda menggunakan pandas pada ruang kerja Azure Databricks yang diaktifkan untuk Katalog Unity, dan Anda menggunakan antarmuka pengguna penyedia impor untuk mengimpor penyedia dan berbagi, instruksi di bagian ini tidak berlaku untuk Anda. Anda dapat mengakses tabel bersama seperti tabel lain yang terdaftar di Unity Catalog. Anda tidak perlu menginstal konektor Python delta-sharing atau menyediakan jalur ke file kredensial. Lihat Mengimpor penyedia dan membaca data yang dibagikan di Azure Databricks.
Menginstal konektor Python OpenSharing
Untuk mengakses metadata yang terkait dengan data bersama, seperti daftar tabel yang dibagikan dengan Anda, Anda harus menginstal konektor Python berbagi delta. Untuk informasi tentang batasan konektor Python, lihat Batasan konektor OpenSharing Python.
pip install delta-sharing
Mencantumkan tabel bersama menggunakan pandas
Untuk mencantumkan tabel dalam penyimpanan bersama, jalankan perintah berikut, ganti <profile-path>/config.share dengan lokasi file kredensial.
import delta_sharing
client = delta_sharing.SharingClient(f"<profile-path>/config.share")
client.list_all_tables()
Jika output kosong atau tidak berisi tabel yang Anda harapkan, hubungi penyedia data.
Mengakses data bersama menggunakan pandas
Untuk mengakses data bersama di pandas menggunakan Python, jalankan hal berikut, ganti variabel sebagai berikut:
-
<profile-path>: lokasi file kredensial. -
<share-name>: nilaishare=untuk tabel. -
<schema-name>: nilaischema=untuk tabel. -
<table-name>: nilainame=untuk tabel.
import delta_sharing
delta_sharing.load_as_pandas(f"<profile-path>#<share-name>.<schema-name>.<table-name>")
Mengakses umpan data perubahan bersama menggunakan pandas
Untuk mengakses umpan data perubahan untuk tabel bersama dalam pandas menggunakan Python, jalankan hal berikut, ganti variabel sebagai berikut. Umpan data perubahan mungkin tidak tersedia, tergantung pada apakah penyedia data berbagi umpan data perubahan untuk tabel atau tidak.
-
<starting-version>: opsional. Versi awal kueri, inklusif. -
<ending-version>: opsional. Versi akhir kueri, inklusif. -
<starting-timestamp>: opsional. Tanda waktu awal kueri. Ini dikonversi ke versi yang dibuat lebih besar atau sama dengan tanda waktu ini. -
<ending-timestamp>: opsional. Tanda waktu akhir kueri. Ini dikonversi ke versi yang dibuat sebelumnya atau sama dengan tanda waktu ini.
import delta_sharing
delta_sharing.load_table_changes_as_pandas(
f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_version=<starting-version>,
ending_version=<ending-version>)
delta_sharing.load_table_changes_as_pandas(
f"<profile-path>#<share-name>.<schema-name>.<table-name>",
starting_timestamp=<starting-timestamp>,
ending_timestamp=<ending-timestamp>)
Jika output kosong atau tidak berisi data yang Anda harapkan, hubungi penyedia data.
Power BI: Membaca data bersama
Konektor Power BI OpenSharing memungkinkan Anda menemukan, menganalisis, dan memvisualisasikan himpunan data yang dibagikan dengan Anda melalui protokol terbuka OpenSharing.
Persyaratan
- Power BI Desktop 2.99.621.0 atau di atasnya
- Akses ke file kredensial yang dibagikan oleh penyedia data. Lihat Cara mendapatkan akses dalam model berbagi Databricks-to-Open.
Menghubungkan ke Databricks
Untuk menyambungkan ke Azure Databricks menggunakan konektor OpenSharing, lakukan hal berikut:
- Buka file kredensial yang dibagikan menggunakan editor teks untuk mengambil URL titik akhir dan token.
- Buka Power BI Desktop.
- Pada menu Dapatkan Data , cari OpenSharing.
- Pilih konektor dan klik Sambungkan.
- Masukkan URL titik akhir yang Anda salin dari file kredensial ke bidang URL Server OpenSharing .
- Secara opsional, di tab Opsi Lanjutan, tetapkan Batas Baris untuk jumlah baris maksimum yang dapat Anda unduh. Ini diatur ke 1 juta baris secara default.
- Klik OK.
- Untuk Autentikasi, salin token yang Anda ambil dari file kredensial ke Bearer Token.
- Klik Sambungkan.
Keterbatasan konektor OpenSharing Power BI
Konektor OpenSharing Power BI memiliki batasan berikut:
- Data yang dimuat konektor harus sesuai dengan memori komputer Anda. Untuk mengelola persyaratan ini, konektor membatasi jumlah baris yang diimpor ke batas Row yang Anda tetapkan di bawah tab Opsi Tingkat Lanjut di Power BI Desktop.
Tableau: Membaca data yang dibagikan
Konektor Tableau OpenSharing memungkinkan Anda menemukan, menganalisis, dan memvisualisasikan himpunan data yang dibagikan dengan Anda melalui protokol terbuka OpenSharing.
Persyaratan
- Tableau Desktop dan Tableau Server versi 2024.1 atau yang lebih baru
- Akses ke file kredensial yang dibagikan oleh penyedia data. Lihat Cara mendapatkan akses dalam model berbagi Databricks-to-Open.
Menyambungkan ke Azure Databricks
Untuk menyambungkan ke Azure Databricks menggunakan konektor OpenSharing, lakukan hal berikut:
- Buka Tableau Exchange, ikuti instruksi untuk mengunduh Konektor OpenSharing, dan letakkan di folder desktop yang sesuai.
- Buka Tableau Desktop.
- Pada halaman Konektor , cari "OpenSharing by Databricks".
- Pilih Berbagi Unggah file, dan pilih file kredensial yang dibagikan oleh penyedia.
- Klik Dapatkan Data.
- Di Data Explorer, pilih tabel.
- Secara opsional tambahkan filter SQL atau batas baris.
- Klik Dapatkan Data Tabel.
Batasan
Konektor Tableau OpenSharing memiliki batasan berikut:
- Data yang dimuat konektor harus sesuai dengan memori komputer Anda. Untuk mengelola persyaratan ini, konektor membatasi jumlah baris yang diimpor ke batas baris yang Anda tetapkan di Tableau.
- Semua kolom dikembalikan sebagai jenis
String. - Filter SQL hanya berfungsi jika server OpenSharing Anda mendukung predicateHint.
- Vektor penghapusan tidak didukung.
- Pemetaan kolom tidak didukung.
Keterbatasan konektor Python OpenSharing
Batasan ini khusus untuk konektor openSharing Python:
- Konektor OpenSharing Python 1.1.0+ mendukung kueri rekam jepret pada tabel dengan pemetaan kolom tetapi kueri CDF pada tabel dengan pemetaan kolom tidak didukung.
- Konektor Python OpenSharing gagal menjalankan kueri CDF dengan
use_delta_format=Truejika skema berubah dalam rentang versi yang dikueri.
Batasan pada tabel streaming
Anda hanya dapat membaca rekam jepret tabel streaming bersama saat ini. Fitur berikut ini tidak didukung untuk tabel streaming di berbagi Databricks-to-Open:
- Mengkueri data riwayat tabel
- Mengkueri umpan data perubahan tabel (CDF)
- Menggunakan tabel sebagai sumber untuk Spark Structured Streaming
Batasan tampilan materialisasi
Anda hanya dapat membaca rekam jepret tampilan terwujud bersama saat ini. Menggunakan tampilan materialisasi sebagai sumber untuk Streaming Terstruktur Spark tidak didukung dalam berbagi Databricks-to-Open.
Meminta kredensial baru
Jika URL aktivasi kredensial atau kredensial yang diunduh hilang, rusak, atau disusupi, atau kredensial Anda kedaluwarsa tanpa penyedia mengirimi Anda info masuk baru, hubungi penyedia Anda untuk meminta kredensial baru.
Jika Anda adalah penerima Azure Databricks yang mengimpor kredensial sebagai objek penyedia di Unity Catalog, terapkan kredensial baru menggunakan Databricks REST API. Lihat Mengganti kredensial untuk penerima publik.