Menggunakan Unity Catalog dengan Streaming Terstruktur

Gunakan Streaming Terstruktur dengan Unity Catalog untuk mengelola tata kelola data untuk beban kerja inkremental dan streaming Anda di Azure Databricks. Dokumen ini menguraikan fungsionalitas yang didukung dan menyarankan praktik terbaik untuk menggunakan Katalog Unity dan Streaming Terstruktur bersama-sama.

Fungsionalitas Streaming Terstruktur apa yang didukung Oleh Katalog Unity?

Katalog Unity tidak menambahkan batas eksplisit untuk sumber dan sink Streaming Terstruktur yang tersedia di Azure Databricks. Model tata kelola data Unity Catalog memungkinkan Anda melakukan streaming data dari tabel terkelola dan eksternal di Unity Catalog. Anda juga dapat menggunakan lokasi eksternal yang dikelola oleh Unity Catalog untuk berinteraksi dengan data menggunakan URI penyimpanan objek. Anda dapat menulis ke tabel eksternal menggunakan nama tabel atau jalur file. Anda harus berinteraksi dengan tabel terkelola di Unity Catalog menggunakan nama tabel.

Gunakan lokasi eksternal yang dikelola oleh Katalog Unity saat menentukan jalur untuk titik pemeriksaan Streaming Terstruktur. Untuk mempelajari selengkapnya tentang menyambungkan penyimpanan dengan aman dengan Unity Catalog, lihat Menyambungkan ke penyimpanan objek cloud menggunakan Katalog Unity.

Fungsionalitas Streaming Terstruktur apa yang tidak didukung pada Katalog Unity?

Mode pemrosesan berkelanjutan Apache Spark tidak didukung. Lihat Pemrosesan Berkelanjutan di Panduan Pemrograman Streaming Terstruktur Spark.

Untuk daftar fitur Streaming Terstruktur yang tidak didukung pada Unity Catalog berdasarkan mode akses komputasi, lihat Batasan streaming dan Persyaratan streaming dan tampilan materialisasi pada komputasi khusus.

Membaca tampilan Katalog Unity sebagai aliran

Di Databricks Runtime 14.1 ke atas, Anda dapat menggunakan Streaming Terstruktur untuk melakukan pembacaan streaming dari tampilan yang terdaftar di Unity Catalog. Azure Databricks hanya mendukung pembacaan streaming dari tampilan yang ditentukan terhadap tabel Delta.

Untuk membaca tampilan dengan Streaming Terstruktur, berikan pengidentifikasi untuk tampilan ke metode .table(), seperti dalam contoh berikut:

df = (spark.readStream
  .table("demoView")
)

Pengguna harus memiliki SELECT hak istimewa pada tampilan target.

Opsi yang didukung untuk mengonfigurasi pembacaan streaming terhadap tampilan

Opsi berikut didukung saat mengonfigurasi pembacaan streaming terhadap tampilan:

  • maxFilesPerTrigger
  • maxBytesPerTrigger
  • ignoreDeletes
  • skipChangeCommits
  • withEventTimeOrder
  • startingTimestamp
  • startingVersion

Pembaca streaming menerapkan opsi ini ke file dan metadata yang menentukan tabel Delta yang mendasar.

Penting

Pembacaan terhadap tampilan yang ditentukan dengan UNION ALL tidak mendukung opsi withEventTimeOrder dan startingVersion.

Operasi yang didukung dalam tampilan sumber

Tidak semua tampilan mendukung pembacaan streaming. Operasi yang tidak didukung dalam tampilan sumber menyertakan agregasi dan pengurutan.

Daftar berikut ini menyediakan deskripsi dan contoh definisi tampilan untuk operasi yang didukung:

  • Proyek

    • Deskripsi: Mengontrol izin tingkat kolom

    • Operator: SELECT... FROM...

    • Contoh pernyataan :

      CREATE VIEW project_view AS
      SELECT id, value
      FROM source_table
      
  • Saringan

    • Deskripsi: Mengontrol izin tingkat baris

    • Operator: WHERE...

    • Contoh pernyataan :

      CREATE VIEW filter_view AS
      SELECT * FROM source_table
      WHERE value > 100
      
  • Satukan semua

    • Deskripsi: Hasil dari beberapa tabel

    • Operator: UNION ALL

    • Contoh pernyataan :

      CREATE VIEW union_view AS
      SELECT id, value FROM source_table1
      UNION ALL
      SELECT * FROM source_table2
      

Catatan

Anda tidak dapat mengubah definisi tampilan untuk menambahkan atau mengubah tabel yang dirujuk dalam tampilan dan menggunakan titik pemeriksaan streaming yang sama.

Batasan

Batasan berikut berlaku:

  • Anda hanya dapat melakukan streaming dari tampilan yang didukung oleh tabel Delta. Tampilan yang ditentukan terhadap sumber data lain tidak didukung.

  • Anda harus mendaftarkan tampilan dengan Katalog Unity.

  • Pengecualian berikut ditampilkan jika Anda melakukan streaming dari tampilan dengan operator yang tidak didukung:

    UnsupportedOperationException: [UNEXPECTED_OPERATOR_IN_STREAMING_VIEW] Unexpected operator <operator> in the CREATE VIEW statement as a streaming source. A streaming view query must consist only of SELECT, WHERE, and UNION ALL operations.
    
  • Pengecualian berikut ini ditampilkan jika Anda menyediakan opsi yang tidak didukung:

    AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.