Output dari Azure Stream Analytics

Pekerjaan Azure Stream Analytics terdiri dari input, kueri, dan output. Ada beberapa jenis output yang dapat Anda gunakan untuk mengirim data yang diubah. Artikel ini mencantumkan output Stream Analytics yang didukung. Saat Anda mendesain kueri Stream Analytics, lihat nama output dengan menggunakan klausa INTO. Anda dapat menggunakan satu output per pekerjaan, atau beberapa output per pekerjaan streaming (jika Anda membutuhkannya) dengan menambahkan beberapa klausul INTO ke kueri.

Untuk membuat, mengedit, dan menguji hasil tugas Azure Stream Analytics, Anda dapat menggunakan portal Azure, Azure PowerShell, .NET API, REST API, Visual Studio, dan Visual Studio Code.

Catatan

Kami sangat menyarankan Agar Anda menggunakan alat Azure Stream Analytics untuk Visual Studio Code untuk pengalaman pengembangan lokal terbaik. Terdapat kesenjangan fitur yang diketahui dalam alat Azure Stream Analytics untuk Visual Studio 2019 (versi 2.6.3000.0) dan tidak akan ditingkatkan di masa mendatang.

Beberapa jenis output mendukung pemartisian seperti yang ditunjukkan dalam tabel berikut.

Semua output mendukung batching, tetapi hanya beberapa dukungan yang mengatur ukuran batch output secara eksplisit. Untuk informasi selengkapnya, lihat bagian ukuran batch output.

Jenis output Partisi Keamanan
Azure Data Explorer Ya Identitas Terkelola
Azure Functions Ya Kunci akses
Azure Synapse Analytics Ya Autentikasi pengguna SQL,
Identitas Terkelola
Penyimpanan blob dan Azure Data Lake Gen 2 Ya Kunci akses, Identitas Terkelola
Azure Cosmos DB Ya Kunci akses, Identitas Terkelola
Azure Data Lake Storage Gen 2 Ya Identitas Terkelola pengguna
Microsoft Entra
Azure Event Hubs Ya, perlu mengatur kolom kunci partisi dalam konfigurasi output. Kunci akses, Identitas Terkelola
Kafka (pratinjau) Ya, perlu mengatur kolom kunci partisi dalam konfigurasi output. Kunci akses, Identitas Terkelola
Azure Database untuk PostgreSQL Ya Autentikasi nama pengguna dan kata sandi
Power BI No Pengguna Microsoft Entra,
Identitas Terkelola
Antrian Azure Service Bus Ya Kunci akses, Identitas Terkelola
Topik Azure Service Bus Ya Kunci akses, Identitas Terkelola
Azure SQL Database Ya, opsional. Autentikasi pengguna SQL,
Identitas Terkelola
Azure Table Storage Ya Kunci akun

Penting

Azure Stream Analytics menggunakan Sisipkan atau Ganti API berdasarkan desain. Operasi ini menggantikan entitas yang ada atau menyisipkan entitas baru jika tidak ada dalam tabel.

Partisi

Stream Analytics mendukung partisi untuk semua output kecuali Power BI. Untuk informasi lebih lanjut tentang kunci partisi dan jumlah penulis output, lihat artikel untuk jenis output tertentu yang Anda minati. Artikel untuk jenis output ditautkan di bagian sebelumnya.

Selain itu, untuk penyetelan partisi yang lebih maju, jumlah penulis output dapat dikontrol menggunakan klausul INTO <partition count> (lihat INTO) pada kueri Anda, yang dapat membantu dalam mencapai topologi pekerjaan yang diinginkan. Jika adaptor output Anda tidak dipartisi, kurangnya data dalam satu partisi input menyebabkan penundaan hingga jumlah waktu kedatangan yang terlambat. Dalam kasus seperti itu, output digabungkan ke satu penulis, yang mungkin menyebabkan penyempitan di alur Anda. Untuk mempelajari lebih lanjut tentang kebijakan keterlambatan kedatangan, lihat pertimbangan urutan peristiwa Azure Stream Analytics.

Ukuran batch output

Semua output mendukung batching, tetapi hanya beberapa yang mendukung pengaturan ukuran batch secara eksplisit. Azure Stream Analytics menggunakan batch ukuran variabel untuk memproses peristiwa dan menulis ke output. Biasanya mesin Stream Analytics tidak menulis satu pesan dalam satu waktu, dan menggunakan beberapa batch untuk efisiensi. Saat tingkat peristiwa masuk dan keluar tinggi, Stream Analytics menggunakan batch yang lebih besar. Ketika tingkat egress rendah, ia menggunakan batch yang lebih kecil untuk menjaga latensi tetap rendah.

Perilaku pemisahan file Parquet dan Avro

Kueri Azure Stream Analytics dapat menghasilkan beberapa skema untuk output tertentu. Daftar kolom yang diproyeksikan dan jenisnya bisa berubah berdasarkan baris demi baris. Secara desain, format Avro dan Parquet tidak mendukung skema variabel dalam satu file.

Perilaku berikut mungkin terjadi saat mengarahkan aliran dengan skema variabel ke output menggunakan format ini:

  • Jika perubahan skema dapat dideteksi, file output saat ini ditutup, dan yang baru diinisialisasi pada skema baru. Memisahkan file seperti itu sangat memperlambat output ketika perubahan skema sering terjadi. Perilaku ini dapat sangat berdampak pada performa keseluruhan pekerjaan
  • Jika perubahan skema tidak dapat dideteksi, baris kemungkinan besar ditolak, dan pekerjaan macet karena baris tidak dapat menjadi output. Kolom berlapis, atau array multijenis, adalah situasi yang tidak ditemukan dan ditolak.

Kami menyarankan agar Anda mempertimbangkan output menggunakan format Avro atau Parquet untuk diketik dengan kuat, atau skema-on-write, dan kueri yang menargetkannya untuk ditulis seperti (konversi dan proyeksi eksplisit untuk skema seragam).

Jika beberapa skema perlu dihasilkan, pertimbangkan untuk membuat beberapa output dan memisahkan rekaman ke setiap tujuan dengan menggunakan klausul WHERE.

Properti jendela batch output arquet

Saat Anda menggunakan penyebaran templat Azure Resource Manager atau REST API, dua properti jendela batching adalah:

  1. timeWindow

    Waktu tunggu maksimum per batch. Nilai harus berupa untai (karakter) dari Timespan. Misalnya, 00:02:00 selama dua menit. Setelah waktu ini, batch ditulis ke output bahkan jika persyaratan baris minimum tidak terpenuhi. Nilai default adalah 1 menit dan nilai maksimum yang diizinkan adalah 2 jam. Jika output blob Anda memiliki frekuensi pola jalur, waktu tunggu tidak boleh lebih tinggi dari rentang waktu partisi.

  2. sizeWindow

    Jumlah baris minimum per batch. Untuk Parket, setiap batch membuat file baru. Nilai default saat ini adalah 2.000 baris dan maksimum yang diperbolehkan adalah 10.000 baris.

Properti jendela batching ini hanya didukung oleh API versi 2017-04-01-preview atau yang lebih tinggi. Berikut adalah contoh payload JSON untuk panggilan REST API:

"type": "stream",
      "serialization": {
        "type": "Parquet",
        "properties": {}
      },
      "timeWindow": "00:02:00",
      "sizeWindow": "2000",
      "datasource": {
        "type": "Microsoft.Storage/Blob",
        "properties": {
          "storageAccounts" : [
          {
            "accountName": "{accountName}",
            "accountKey": "{accountKey}",
          }
          ],

Langkah berikutnya