Output antrean Azure Service Bus dari Azure Stream Analytics

Antrean Azure Service Bus menawarkan pengiriman pesan FIFO ke satu atau beberapa konsumen yang bersaing. Biasanya, pesan diterima dan diproses oleh penerima dalam urutan temporal di mana pesan tersebut ditambahkan ke antrean. Setiap pesan diterima dan diproses oleh hanya satu konsumen pesan.

Di tingkat kompatibilitas 1.2, Azure Stream Analytics menggunakan protokol olahpesan Advanced Message Queuing Protocol (AMQP) untuk menulis ke Antrean dan Topik Azure Service Bus. AMQP memungkinkan Anda membangun aplikasi lintas-platform hibrida menggunakan protokol standar terbuka.

Konfigurasi output

Tabel berikut mencantumkan nama properti dan deskripsinya untuk membuat output antrean.

Nama properti Deskripsi
Alias output Nama yang mudah diingat yang digunakan dalam kueri untuk mengarahkan output kueri ke antrean Azure Service Bus ini.
Namespace layanan Microsoft Azure Service Bus Kontainer untuk kumpulan entitas olahpesan.
Nama antrean Nama antrean Azure Service Bus.
Nama kebijakan antrean Saat membuat antrean, Anda juga dapat membuat kebijakan akses bersama pada tab Konfigurasi antrean. Setiap kebijakan akses bersama memiliki nama, izin yang Anda tetapkan, dan kunci akses.
Kunci kebijakan antrean Kunci akses bersama yang digunakan untuk mengautentikasi akses ke namespace Azure Service Bus.
Format serialisasi peristiwa Format serialisasi untuk data output. JSON, CSV, dan Avro didukung.
Pengodean Untuk CSV dan JSON, UTF-8 adalah satu-satunya format pengodean yang didukung saat ini.
Pemisah Hanya berlaku untuk serialisasi CSV. Azure Stream Analytics mendukung sejumlah pemisah umum untuk membuat serialisasi data dalam format CSV. Nilai yang didukung adalah koma, titik koma, spasi, tab, dan bilah vertikal.
Format Hanya berlaku untuk jenis JSON. Dipisahkan baris menetapkan bahwa output diformat dengan membuat setiap objek JSON dipisahkan oleh baris baru. Jika Anda memilih Dipisahkan baris, JSON dibaca satu objek dalam satu waktu. Seluruh konten dengan tidak akan menjadi JSON yang valid sendirinya. Array menetapkan bahwa output diformat sebagai larik objek JSON.
Kolom properti Opsional. Kolom yang dipisahkan koma yang perlu dilampirkan sebagai properti pengguna dari pesan keluar, bukan sebagai payload. Informasi selengkapnya tentang fitur ini ada di bagian Properti metadata kustom untuk output.
Kolom Properti Sistem Opsional. Pasangan nilai kunci Properti Sistem dan nama kolom terkait yang perlu dilampirkan ke pesan keluar, bukan payload.

Jumlah partisi didasarkan pada SKU dan ukuran Azure Service Bus. Kunci partisi adalah nilai bilangan bulat unik untuk setiap partisi.

Partisi

Pemartisian dipilih secara otomatis. Jumlah partisi didasarkan pada SKU dan ukuran Azure Service Bus. Kunci partisi adalah nilai bilangan bulat unik untuk setiap partisi. Jumlah penulis output sama dengan jumlah partisi dalam antrean output.

Ukuran batch output

Ukuran pesan maksimum adalah 256 KB per pesan untuk tingkat Standar dan 1MB untuk tingkat Premium. Untuk mengetahui informasi selengkapnya, lihat Batas Azure Service Bus. Untuk mengoptimalkan, gunakan satu peristiwa per pesan.

Properti metadata kustom untuk output

Anda dapat melampirkan kolom kueri sebagai properti pengguna ke pesan keluar. Kolom-kolom ini tidak masuk ke payload. Properti muncul dalam bentuk kamus pada pesan output. Kunci adalah nama kolom dan nilai adalah nilai kolom dalam kamus properti. Semua jenis data Azure Stream Analytics didukung kecuali Rekaman dan Array.

Dalam contoh berikut, bidang DeviceId dan DeviceStatus ditambahkan ke metadata.

  1. Gunakan kueri berikut:

    select *, DeviceId, DeviceStatus from iotHubInput
    
  2. Mengonfigurasi DeviceId,DeviceStatus sebagai kolom properti dalam output.

    Property columns

Gambar berikut adalah properti pesan output yang diharapkan, yang diperiksa di EventHub menggunakan Azure Service Bus Explorer.

Event custom properties

Properti sistem

Anda dapat melampirkan kolom kueri sebagai properti sistem ke pesan Antrean atau Topik bus layanan keluar Anda.

Kolom ini tidak masuk ke payload sebagai gantinya properti sistem ServiceBusMessage yang sesuai diisi dengan nilai kolom kueri. Properti sistem ini didukung - MessageId, ContentType, Label, PartitionKey, ReplyTo, SessionId, CorrelationId, To, ForcePersistence, TimeToLive, ScheduledEnqueueTimeUtc.

Nilai string kolom ini diuraikan sebagai jenis nilai properti sistem yang terkait dan kegagalan penguraian apa pun diperlakukan sebagai kesalahan data. Bidang ini disediakan sebagai format objek JSON. Detail tentang format ini adalah sebagai berikut:

  • Dikelilingi oleh kurung kurawal {}.
  • Ditulis dalam pasangan kunci/nilai.
  • Kunci dan nilai harus berupa string.
  • Kunci adalah nama properti sistem dan nilai adalah nama kolom kueri.
  • Kunci dan nilai dipisahkan oleh titik dua.
  • Setiap pasangan kunci/nilai dipisahkan oleh koma.

Ini menunjukkan cara menggunakan properti ini –

  • Kueri: select *, column1, column2 INTO queueOutput FROM iotHubInput
  • Kolom Properti Sistem: { "MessageId": "column1", "PartitionKey": "column2"}

Ini mengatur MessageId pada pesan antrean bus layanan dengan nilai column1 dan PartitionKey diatur dengan nilai column2.

Langkah berikutnya