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:
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.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}",
}
],