Tingkat kompatibilitas untuk pekerjaan Azure Stream Analytics

Artikel ini menjelaskan opsi tingkat kompatibilitas di Azure Stream Analytics.

Azure Stream Analytics adalah layanan terkelola, dengan pembaruan fitur reguler dan peningkatan performa yang konstan. Sebagian besar pembaruan runtime layanan secara otomatis tersedia untuk pengguna akhir secara independen dari tingkat kompatibilitas. Namun saat fungsionalitas baru memperkenalkan perubahan perilaku pekerjaan yang ada atau perubahan cara data dikonsumsi dalam menjalankan pekerjaan, kami memperkenalkan perubahan ini di tingkat kompatibilitas baru. Anda dapat tetap menjalankan pekerjaan Azure Stream Analytics yang ada tanpa perubahan besar dengan membiarkan pengaturan tingkat kompatibilitas diturunkan. Ketika Anda siap untuk perilaku runtime terbaru, Anda dapat mengaktifkannya dengan menaikkan tingkat kompatibilitas.

Memilih tingkat kompatibilitas

Tingkat kompatibilitas mengontrol perilaku runtime dari pekerjaan analitik aliran.

Azure Stream Analytics saat ini mendukung tiga tingkat kompatibilitas:

  • 1.2 - Perilaku terbaru dengan peningkatan terbaru
  • 1.1 - Perilaku sebelumnya
  • 1.0 - Tingkat kompatibilitas asli yang diperkenalkan selama ketersediaan umum Azure Stream Analytics beberapa tahun yang lalu.

Saat Anda membuat tugas Stream Analytics baru, praktik terbaik adalah membuatnya dengan menggunakan tingkat kompatibilitas terbaru. Mulai desain pekerjaan Anda dengan mengandalkan perilaku terbaru untuk menghindari perubahan dan kerumitan tambahan di kemudian hari.

Mengatur tingkat kompatibilitas

Anda dapat mengatur tingkat kompatibilitas untuk pekerjaan Stream Analytics di portal Microsoft Azure atau dengan menggunakan panggilan REST API buat pekerjaan.

Untuk memperbarui tingkat kompatibilitas pekerjaan di portal Microsoft Azure:

  1. Gunakan portal Microsoft Azure untuk menemukan pekerjaan Stream Analytics Anda.
  2. Hentikan pekerjaan sebelum memperbarui tingkat kompatibilitas. Anda tidak dapat memperbarui tingkat kompatibilitas jika pekerjaan Anda dalam kondisi berjalan.
  3. Di bawah judul Konfigurasi, pilih Tingkat kompatibilitas.
  4. Pilih nilai tingkat kompatibilitas yang Anda inginkan.
  5. Pilih Simpan di bagian bawah halaman.

Tingkat kompatibilitas Stream Analytics di portal Microsoft Azure

Saat Anda memperbarui tingkat kompatibilitas, T-compiler memvalidasi pekerjaan dengan sintaks yang sesuai dengan tingkat kompatibilitas yang dipilih.

Tingkat kompatibilitas 1.2

Perubahan besar berikut diperkenalkan pada tingkat kompatibilitas 1.2:

Protokol olahpesan AMQP

Tingkat 1.2: Azure Stream Analytics menggunakan protokol olahpesan Advanced Message Queueing Protocol (AMQP) untuk menulis ke antar-antrean dan topik di Azure Service Bus. AMQP memungkinkan Anda membangun aplikasi lintas-platform hibrida menggunakan protokol standar terbuka.

Fungsi geospasial

Tingkat sebelumnya: Azure Stream Analytics menggunakan perhitungan Geografi.

Tingkat 1.2: Azure Stream Analytics memungkinkan Anda menghitung koordinat geo yang diproyeksikan Geometris. Tidak ada perubahan pada parameter fungsi geospasial. Namun semantik mereka sedikit berbeda, memungkinkan komputasi yang lebih tepat daripada sebelumnya.

Azure Stream Analytics mendukung pengindeksan data referensi geospasial. Data Referensi yang berisi elemen geospasial dapat diindeks untuk komputasi gabungan yang lebih cepat.

Fungsi geospasial yang diperbarui membawa ekspresi penuh dari format geospasial Well Known Text (WKT). Anda dapat menentukan komponen geospasial lain yang sebelumnya tidak didukung dengan GeoJson.

Untuk informasi selengkapnya, lihat Pembaruan fitur geospasial di Azure Stream Analytics – Cloud dan IoT Edge.

Eksekusi kueri paralel untuk sumber input dengan beberapa partisi

Tingkat sebelumnya: Kueri Azure Stream Analytics memerlukan penggunaan klausa PARTITION BY untuk memparalelkan pemrosesan kueri di seluruh partisi sumber input.

Tingkat 1.2: Jika logika kueri dapat diparalelkan di seluruh partisi sumber input, Azure Stream Analytics membuat instans kueri terpisah dan menjalankan komputasi secara paralel.

Integrasi API Massal Native dengan keluaran Azure Cosmos DB

Tingkat sebelumnya: Perilaku upsert adalah menyisipkan atau menggabungkan.

Tingkat 1.2: Integrasi Native Bulk API dengan output Azure Cosmos DB memaksimalkan throughput dan menangani permintaan pembatasan aliran secara efisien. Untuk informasi selengkapnya, lihat halaman output Azure Stream Analytics ke Azure Cosmos DB.

Perilaku upsert adalah menyisipkan atau mengganti.

Saat menulis ke output SQL menggunakan DateTimeOffset

Tingkat sebelumnya: Jenis DateTimeOffset disesuaikan ke dalam UTC.

Tingkat 1.2: DateTimeOffset tidak lagi disesuaikan.

Panjang saat menulis ke output SQL

Tingkat sebelumnya: Nilai dipotong berdasarkan jenis target.

Tingkat 1.2: Nilai yang tidak sesuai dengan jenis target ditangani sesuai dengan kebijakan kesalahan output.

Pencatatan dan serialisasi array saat menulis ke output SQL

Tingkat sebelumnya: Rekaman ditulis sebagai "Rekaman" dan array ditulis sebagai "Array".

Tingkat 1.2: Rekaman dan array diserialkan dalam format JSON.

Validasi ketat pada prefiks fungsi

Tingkat sebelumnya: Tidak ada validasi ketat prefiks fungsi.

Tingkat 1.2: Azure Stream Analytics memiliki validasi prefiks fungsi yang ketat. Menambahkan prefiks ke fungsi bawaan menyebabkan kesalahan. Misalnya,myprefix.ABS(…) tidak didukung.

Menambahkan prefiks ke agregat bawaan juga mengakibatkan kesalahan. Misalnya,myprefix.SUM(…) tidak didukung.

Menggunakan prefiks "sistem" untuk setiap fungsi yang ditentukan pengguna mengakibatkan kesalahan.

Melarang Array dan Objek sebagai properti utama di adaptor output Azure Cosmos DB

Tingkat sebelumnya: Jenis Array dan Objek didukung sebagai properti kunci.

Tingkat 1.2: Jenis Array dan Objek tidak lagi didukung sebagai properti kunci.

Deserialisasi tipe boolean di JSON, AVRO, dan PARQUET

Tingkat sebelumnya: Azure Stream Analytics mendeserialisasi nilai Boolean ke dalam jenis BIGINT - peta palsu ke 0 dan peta benar ke 1. Output hanya membuat nilai boolean di JSON, AVRO, dan PARQUET jika Anda secara eksplisit mengonversi peristiwa ke BIT. Misalnya, kueri pass-through seperti SELECT value INTO output1 FROM input1 membaca JSON { "value": true } dari input1 akan menuliskan ke output1 nilai { "value": 1 } JSON.

Tingkat 1.2: Azure Stream Analytics mendeserialisasi nilai Boolean ke dalam jenis BIT. Peta palsu ke 0 dan peta benar ke 1. Kueri pass-through seperti SELECT value INTO output1 FROM input1 yang membaca JSON { "value": true } dari input1 akan menulis ke dalam output1 sebuah nilai JSON { "value": true }. Anda dapat mengonversi nilai ke tipe BIT dalam kueri agar nilai tersebut muncul sebagai benar dan salah dalam output untuk format yang mendukung jenis boolean.

Tingkat kompatibilitas 1.1

Perubahan besar berikut diperkenalkan di tingkat kompatibilitas 1.1:

Format XML Layanan Bus

Tingkat 1.0: Azure Stream Analytics menggunakan DataContractSerializer, sehingga konten pesan mencakup tag XML. Contohnya:

@\u0006string\b3http://schemas.microsoft.com/2003/10/Serialization/\u0001{ "SensorId":"1", "Temperature":64\}\u0001

1.1 tingkat: Konten pesan berisi aliran secara langsung tanpa tag tambahan. Misalnya: { "SensorId":"1", "Temperature":64}

Pembeda huruf besar/kecil yang dipertahankan untuk nama bidang

Tingkat 1.0: Nama bidang diubah menjadi huruf kecil saat diproses oleh mesin Azure Stream Analytics.

Level 1.1: sensitivitas huruf besar/kecil dipertahankan untuk nama bidang saat diproses oleh mesin Azure Stream Analytics.

Catatan

Sensitivitas huruf besar/kecil yang bertahan belum tersedia untuk pekerjaan Stream Analytic yang di-hosting dengan menggunakan lingkungan Azure Stack Edge. Akibatnya, semua nama bidang dikonversi menjadi huruf kecil jika pekerjaan Anda di-hosting di Azure Stack Edge.

FloatNaNDeserialisasiDinonaktifkan

Level 1.0: Perintah BUAT TABEL tidak memfilter peristiwa dengan NaN (Not-a-Number. Misalnya, Infinity, -Infinity) dalam jenis kolom FLOAT karena mereka berada di luar rentang yang didokumentasikan untuk angka-angka ini.

1.1 tingkat: CREATE TABLE memungkinkan Anda menentukan skema yang kuat. Mesin Azure Stream Analytics memvalidasi bahwa data sesuai dengan skema ini. Dengan model ini, perintah dapat memfilter peristiwa dengan nilai NaN.

Nonaktifkan konversi otomatis dari string tanggal dan waktu ke tipe DateTime pada saat penerimaan untuk JSON

Tingkat 1.0: Pengurai JSON akan secara otomatis mengonversi nilai untai (karakter) dengan informasi tanggal/waktu/zona ke jenis DATETIME saat masuk sehingga nilainya segera kehilangan informasi pemformatan dan zona waktu aslinya. Karena ini dilakukan saat masuk, meskipun bidang tersebut tidak digunakan dalam kueri, bidang tersebut dikonversi menjadi DateTime UTC.

Tingkat 1.1: Tidak ada konversi otomatis nilai untai (karakter) dengan informasi tanggal/waktu/zona ke jenis DATETIME. Akibatnya, informasi zona waktu dan pemformatan asli disimpan. Namun, jika bidang NVARCHAR(MAX) digunakan dalam kueri sebagai bagian dari ekspresi DATETIME (fungsi DATEADD, misalnya), bidang dikonversi ke jenis DATETIME untuk melakukan komputasi dan kehilangan formulir aslinya.

Langkah berikutnya