Membaca informasi status Streaming Terstruktur
Dalam Databricks Runtime 14.3 LTS ke atas pada komputasi yang dikonfigurasi dengan mode akses khusus atau tanpa isolasi, Anda dapat menggunakan operasi DataFrame atau fungsi nilai tabel SQL untuk mengkueri data dan metadata status Streaming Terstruktur. Anda dapat menggunakan fungsi-fungsi ini untuk mengamati informasi keadaan untuk kueri Streaming Terstruktur yang bersifat stateful, yang dapat berguna untuk pemantauan dan debugging kesalahan.
Anda harus memiliki akses baca ke jalur cek poin untuk kueri streaming agar dapat mengkueri data status dan metadata. Fungsi yang dijelaskan dalam artikel ini menyediakan akses baca-saja ke data status dan metadata. Anda hanya dapat menggunakan semantik baca batch untuk mengkueri informasi status.
Catatan
Anda tidak dapat meminta informasi status untuk alur DLT, tabel streaming, atau tampilan materialisasi. Anda tidak dapat meminta kueri informasi status menggunakan komputasi tanpa server atau komputasi yang dikonfigurasi dengan mode akses standar.
Membaca status penyimpanan Streaming Terstruktur
Anda dapat membaca informasi penyimpanan status untuk kueri Streaming Terstruktur yang dijalankan dalam Databricks Runtime yang didukung. Gunakan sintaks berikut:
Python
df = (spark.read
.format("statestore")
.load("/checkpoint/path"))
SQL
SELECT * FROM read_statestore('/checkpoint/path')
Konfigurasi opsional berikut didukung:
Opsi | Jenis | Nilai bawaan | Deskripsi |
---|---|---|---|
batchId |
Panjang | Batch ID terbaru | Mewakili batch target untuk dibaca. Tentukan opsi ini untuk mengkueri informasi status untuk status kueri sebelumnya. Batch harus dikomitmenkan tetapi belum dibersihkan. |
operatorId |
Panjang | 0 | Mewakili operator target untuk dibaca. Opsi ini digunakan saat kueri menggunakan beberapa operator stateful. |
storeName |
String | "BAWAAN" | Mewakili nama penyimpanan status target untuk dibaca. Opsi ini digunakan saat operator stateful menggunakan beberapa instans penyimpanan status. Baik storeName atau joinSide harus ditentukan untuk gabungan stream-steam, tetapi tidak keduanya. |
joinSide |
String ("kiri" atau "kanan") | Mewakili sisi target tempat membaca. Opsi ini digunakan saat pengguna ingin membaca status dari penggabungan stream-stream. |
Data yang dikembalikan memiliki skema berikut:
Kolom | Jenis | Deskripsi |
---|---|---|
key |
Struct (jenis lebih lanjut berasal dari kunci status) | Kunci untuk rekaman operator stateful di titik pemeriksaan status. |
value |
Struct (tipe lanjutan diturunkan dari nilai keadaan) | Nilai untuk catatan operator stateful di titik pemeriksaan status. |
partition_id |
Bilangan bulat | Partisi titik pemeriksaan status yang berisi catatan operator berbasis status. |
Membaca metadata status Streaming Terstruktur
Penting
Anda harus menjalankan kueri streaming pada Databricks Runtime 14.2 atau lebih tinggi untuk merekam metadata status. File metadata status tidak mengganggu kompatibilitas mundur. Jika Anda memilih untuk menjalankan kueri streaming pada Databricks Runtime 14.1 atau di bawahnya, file metadata status yang ada diabaikan dan tidak ada file metadata status baru yang ditulis.
Anda dapat membaca informasi metadata status untuk kueri Streaming Terstruktur yang dijalankan pada Databricks Runtime 14.2 atau yang lebih baru. Gunakan sintaks berikut:
Python
df = (spark.read
.format("state-metadata")
.load("<checkpointLocation>"))
SQL
SELECT * FROM read_state_metadata('/checkpoint/path')
Data yang dikembalikan memiliki skema berikut:
Kolom | Jenis | Deskripsi |
---|---|---|
operatorId |
Bilangan bulat | ID angka bulat dari operator streaming yang bersifat stateful. |
operatorName |
Bilangan bulat | Nama operator stateful streaming. |
stateStoreName |
String | Nama penyimpanan status operator. |
numPartitions |
Bilangan bulat | Jumlah partisi penyimpanan status. |
minBatchId |
Panjang | ID batch minimum yang tersedia untuk status kueri. |
maxBatchId |
Panjang | ID batch maksimum yang tersedia untuk melakukan kueri status. |
Catatan
Nilai ID batch yang disediakan oleh minBatchId
dan maxBatchId
mencerminkan status pada saat titik pemeriksaan ditulis. Batch lama dibersihkan secara otomatis dengan eksekusi mikro-batch, sehingga nilai yang disediakan di sini tidak dijamin masih tersedia.