Mengalirkan data sebagai input ke dalam Stream Analytics

Azure Stream Analytics memiliki integrasi kelas satu dengan aliran data Azure sebagai input dari tiga jenis sumber daya:

Sumber daya input tersebut dapat berada di langganan Azure yang sama dengan pekerjaan Azure Stream Analytics atau langganan lain.

Kompresi

Azure Stream Analytics mendukung pemadatan untuk semua sumber input. Jenis kompresi yang didukung adalah: None, Gzip, dan Deflate. Dukungan untuk kompresi tidak tersedia untuk data referensi. Jika data input dikompresi data Avro, Azure Stream Analytics menanganinya secara transparan. Anda tidak perlu menentukan jenis kompresi dengan serialisasi Avro.

Membuat, mengedit, atau menguji input

Anda dapat menggunakan Portal Azure, Visual Studio, dan Visual Studio Code untuk menambah dan menampilkan atau mengedit input yang ada pada pekerjaan streaming. Anda juga dapat menguji koneksi input dan menguji kueri dari data sampel dari portal Azure, Visual Studio,dan Visual Studio Code. Saat Anda menulis kueri, cantumkan input dalam klausul FROM. Anda bisa mendapatkan daftar input yang tersedia dari halaman Kueri di portal. Jika Anda ingin menggunakan beberapa input, JOIN mereka atau menulis beberapa SELECT kueri.

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.

Aliran data dari Event Hubs

Azure Event Hubs adalah ingestor peristiwa terbitkan-berlangganan yang sangat dapat diskalakan. Pusat aktivitas dapat mengumpulkan jutaan peristiwa per detik sehingga Anda dapat memproses dan menganalisis sejumlah besar data yang dihasilkan oleh perangkat dan aplikasi Anda yang terhubung. Bersama-sama, Azure Event Hubs dan Stream Analytics dapat menyediakan solusi end-to-end untuk analitik real time. Azure Event Hubs memungkinkan Anda memasukkan peristiwa ke Azure secara real time, dan pekerjaan Azure Stream Analytics dapat memproses peristiwa tersebut secara real time. Misalnya, Anda dapat mengirim klik web, pembacaan sensor, atau peristiwa log online ke Azure Event Hubs. Anda kemudian dapat membuat pekerjaan Azure Stream Analytics untuk menggunakan Azure Event Hubs untuk data input untuk pemfilteran, agregasi, dan korelasi real time.

EventEnqueuedUtcTime adalah tanda waktu kedatangan acara di pusat aktivitas dan tanda waktu default acara yang berasal dari Azure Event Hubs ke Azure Stream Analytics. Untuk memproses data sebagai streaming menggunakan tanda waktu dalam payload peristiwa, Anda harus menggunakan kata kunci TIMESTAMP BY.

Grup konsumen Azure Event Hubs

Anda harus mengonfigurasi setiap input hub peristiwa untuk memiliki grup konsumennya sendiri. Saat pekerjaan memuat swa-gabung atau memiliki beberapa input, beberapa input mungkin dibaca oleh lebih dari satu pembaca di hilir. Situasi ini berdampak pada jumlah pembaca dalam satu grup konsumen. Untuk menghindari melebihi batas Azure Event Hubs lima pembaca per grup konsumen per partisi, praktik terbaik adalah menetapkan grup konsumen untuk setiap pekerjaan Azure Stream Analytics. Ada juga batas 20 grup konsumen untuk hub peristiwa tingkat Standar. Untuk informasi selengkapnya, lihat Memecahkan masalah input Azure Stream Analytics.

Membuat input dari Azure Event Hubs

Tabel berikut menjelaskan setiap properti di halaman Input baru di portal Azure untuk mengalirkan input data dari pusat aktivitas:

Properti Deskripsi
Alias input Nama mudah diingat yang Anda gunakan dalam kueri tugas untuk mereferensikan output ini.
Langganan Pilih langganan Azure tempat sumber daya Pusat aktivitas berada.
Namespace layanan Pusat Aktivitas Namespace Layanan Azure Event Hubs adalah kontainer untuk hub peristiwa. Saat membuat pusat aktivitas, Anda juga membuat namespace layanan.
Nama Pusat Aktivitas Nama hub kejadian untuk digunakan sebagai input.
Grup konsumen Pusat Aktivitas (disarankan) Kami sarankan Anda menggunakan grup konsumen yang berbeda untuk setiap pekerjaan Azure Stream Analytics. Untai ini mengidentifikasi grup konsumen yang akan digunakan untuk menyerap data dari pusat aktivitas. Jika tidak ada grup konsumen yang ditentukan, pekerjaan Azure Stream Analytics $Default menggunakan grup konsumen.
Mode autentikasi Tentukan jenis autentikasi yang ingin Anda gunakan untuk menyambungkan ke hub peristiwa. Anda dapat menggunakan string koneksi atau identitas terkelola untuk mengautentikasi dengan hub peristiwa. Untuk opsi identitas terkelola, Anda dapat membuat identitas terkelola yang ditetapkan sistem ke pekerjaan Azure Stream Analytics atau identitas terkelola yang ditetapkan pengguna untuk mengautentikasi dengan hub peristiwa. Saat Anda menggunakan identitas terkelola, identitas terkelola harus menjadi anggota peran Penerima Data Azure Event Hubs atau Pemilik Data Azure Event Hubs.
Nama kebijakan Pusat Aktivitas Kebijakan akses bersama yang menyediakan akses ke Azure Event Hubs. Setiap kebijakan akses bersama memiliki nama, izin yang Anda tetapkan, dan kunci akses. Opsi ini diisi secara otomatis, kecuali jika Anda memilih opsi untuk menyediakan pengaturan Azure Event Hubs secara manual.
Kunci partisi Ini adalah bidang opsional yang hanya tersedia jika pekerjaan Anda dikonfigurasi untuk menggunakan tingkat kompatibilitas 1.2 atau yang lebih tinggi. Jika input Anda dipartisi oleh properti, Anda dapat menambahkan nama properti ini di sini. Ini digunakan untuk meningkatkan performa kueri Anda jika menyertakan PARTITION BY klausa atau GROUP BY pada properti ini. Jika pekerjaan ini menggunakan tingkat kompatibilitas 1.2 atau lebih tinggi, bidang ini default ke PartitionId.
Format serialisasi peristiwa Format serialisasi (JSON, CSV, Avro, Parquet, atau Lainnya (Protobuf, XML, kepemilikan...)) dari aliran data yang masuk. Pastikan format JSON selaras dengan spesifikasi dan tidak menyertakan 0 di depan untuk angka desimal.
Pengodean UTF-8 saat ini adalah satu-satunya format pengodean yang didukung.
Jenis kompresi peristiwa Jenis kompresi yang digunakan untuk membaca aliran data yang masuk, seperti Tidak Ada (default), Gzip, atau Deflate.
Registri skema (pratinjau) Anda dapat memilih registri skema dengan skema untuk data peristiwa yang diterima dari pusat aktivitas.

Saat data Anda berasal dari input aliran Azure Event Hubs, Anda memiliki akses ke bidang metadata berikut dalam kueri Analisis Aliran Anda:

Properti Deskripsi
EventProcessedUtcTime Tanggal dan waktu saat Azure Stream Analytics memproses peristiwa.
EventEnqueuedUtcTime Tanggal dan waktu saat Azure Event Hubs menerima peristiwa.
PartitionId ID partisi berbasis nol untuk adapter input.

Misalnya, dengan menggunakan bidang tersebut, Anda dapat menulis kueri seperti contoh berikut:

SELECT
    EventProcessedUtcTime,
    EventEnqueuedUtcTime,
    PartitionId
FROM Input

Catatan

Saat menggunakan Azure Event Hubs sebagai titik akhir untuk Rute IoT Hub, Anda dapat mengakses metadata IoT Hub menggunakan fungsi GetMetadataPropertyValue.

Mengalirkan data dari IoT Hub

Azure IoT Hub adalah penyerap peristiwa terbitkan-berlangganan yang sangat dapat diskalakan dan dioptimalkan untuk skenario IoT.

Tanda waktu default peristiwa yang berasal dari IoT Hub di Azure Stream Analytics adalah tanda waktu saat peristiwa tiba di IoT Hub, yaitu EventEnqueuedUtcTime. Untuk memproses data sebagai streaming menggunakan tanda waktu dalam payload peristiwa, Anda harus menggunakan kata kunci TIMESTAMP BY.

Grup Konsumen Iot Hub

Anda harus mengonfigurasi setiap input Azure Stream Analytics IoT Hub agar memiliki grup konsumennya sendiri. Jika pekerjaan memuat swa-gabung atau jika memiliki beberapa input, beberapa input mungkin dibaca oleh lebih dari satu pembaca di hilir. Situasi ini berdampak pada jumlah pembaca dalam satu grup konsumen. Untuk menghindari melebihi batas Azure IoT Hub lima pembaca per grup konsumen per partisi, praktik terbaik adalah menetapkan grup konsumen untuk setiap pekerjaan Azure Stream Analytics.

Mengonfigurasi IoT Hub sebagai input aliran

Tabel berikut ini menjelaskan setiap properti di halman Input baru di portal Azure saat Anda mengonfigurasi Hub IoT sebagai input streaming.

Properti Deskripsi
Alias input Nama mudah diingat yang Anda gunakan dalam kueri tugas untuk mereferensikan output ini.
Langganan Pilih langganan tempat sumber daya IoT Hub berada.
Pusat IoT Nama IoT Hub untuk digunakan sebagai input.
Grup konsumen Kami menyarankan agar Anda menggunakan grup konsumen yang berbeda untuk setiap pekerjaan Azure Stream Analytics. Grup konsumen digunakan untuk menyerap data dari IoT Hub. Azure Stream Analytics menggunakan grup konsumen $Default kecuali Jika Anda menentukan sebaliknya.
Nama kebijakan akses bersama Kebijakan akses bersama yang menyediakan akses ke IoT Hub. Setiap kebijakan akses bersama memiliki nama, izin yang Anda tetapkan, dan kunci akses.
Kunci kebijakan akses bersama Kunci akses bersama yang digunakan untuk mengotorisasi akses ke IoT Hub. Opsi ini diisi secara otomatis kecuali Anda memilih opsi untuk menyediakan pengaturan IoT Hub secara manual.
Endpoint Titik akhir untuk IoT Hub.
Kunci partisi Ini adalah bidang opsional yang hanya tersedia jika pekerjaan Anda dikonfigurasi untuk menggunakan tingkat kompatibilitas 1.2 atau yang lebih tinggi. Jika input Anda dipartisi oleh properti, Anda dapat menambahkan nama properti ini di sini. Ini digunakan untuk meningkatkan performa kueri Anda jika menyertakan klausa PARTITION BY atau GROUP BY pada properti ini. Jika pekerjaan ini menggunakan tingkat kompatibilitas 1.2 atau lebih tinggi, bidang ini default ke "PartitionId."
Format serialisasi peristiwa Format serialisasi (JSON, CSV, Avro, Parquet, atau Lainnya (Protobuf, XML, kepemilikan...)) dari aliran data yang masuk. Pastikan format JSON selaras dengan spesifikasi dan tidak menyertakan 0 di depan untuk angka desimal.
Pengodean UTF-8 saat ini adalah satu-satunya format pengodean yang didukung.
Jenis kompresi peristiwa Jenis kompresi yang digunakan untuk membaca aliran data yang masuk, seperti Tidak Ada (default), Gzip, atau Deflate.

Saat menggunakan data streaming dari IoT Hub, Anda memiliki akses ke bidang metadata berikut dalam kueri Azure Stream Analytics Anda:

Properti Deskripsi
EventProcessedUtcTime Tanggal dan waktu pemrosesan peristiwa.
EventEnqueuedUtcTime Tanggal dan waktu saat IoT Hub menerima peristiwa.
PartitionId ID partisi berbasis nol untuk adapter input.
IoTHub.MessageId ID yang digunakan untuk mengorelasikan komunikasi dua arah di IoT Hub.
IoTHub.CorrelationId ID yang digunakan dalam respons pesan dan umpan balik di IoT Hub.
IoTHub.ConnectionDeviceId ID autentikasi yang digunakan untuk mengirim pesan ini. Nilai ini dicap pada pesan terikat layanan oleh IoT Hub.
IoTHub.ConnectionDeviceGenerationId ID pembuatan perangkat yang diautentikasi, yang digunakan untuk mengirim pesan ini. Nilai ini ditandai pada pesan servicebound oleh IoT Hub.
IoTHub.EnqueuedTime Waktu ketika IoT Hub menerima pesan.

Mengalirkan data dari penyimpanan Blob atau Data Lake Storage Gen2

Untuk skenario dengan sejumlah besar data yang tidak terstruktur untuk disimpan di cloud, penyimpanan Azure Blob atau Azure Data Lake Storage Gen2 menawarkan solusi yang hemat biaya dan dapat diskalakan. Data dalam penyimpanan Blob atau Azure Data Lake Storage Gen2 dianggap sebagai data tidak aktif. Namun, data ini dapat diproses sebagai aliran data oleh Stream Analytics.

Pemrosesan log adalah skenario yang umum digunakan untuk menggunakan input tersebut dengan Azure Stream Analytics. Dalam skenario ini, file data telemetri diambil dari sistem dan perlu diurai dan diproses untuk mengekstrak data yang bermakna.

Tanda waktu default penyimpanan Blob atau peristiwa Azure Data Lake Storage Gen2 di Azure Stream Analytics adalah tanda waktu terakhir dimodifikasi, yaitu BlobLastModifiedUtcTime. Jika blob diunggah ke akun penyimpanan pada pukul 13:00, dan pekerjaan Azure Stream Analytics mulai menggunakan opsi Sekarang pada pukul 13:01, maka tidak akan diambil karena waktu yang diubah berada di luar periode eksekusi pekerjaan.

Jika blob diunggah ke kontainer akun penyimpanan pada pukul 13:00, dan tugas Azure Stream Analytics mulai menggunakan Waktu Kustom pada pukul 13:00 atau lebih lama, blob akan diambil saat waktu yang dimodifikasi berada di dalam periode eksekusi pekerjaan.

Jika pekerjaan Azure Stream Analytics mulai menggunakan Sekarang pada pukul 13.00, dan blob diunggah ke kontainer akun penyimpanan pada pukul 13.01, Azure Stream Analytics mengambil blob. Tanda waktu yang ditetapkan untuk setiap blob hanya didasarkan pada BlobLastModifiedTime. Folder tempat blob berada tidak memiliki hubungan dengan tanda waktu yang ditetapkan. Misalnya, jika ada blob 2019/10-01/00/b1.txt dengan BlobLastModifiedTime , 2019-11-11maka tanda waktu yang ditetapkan ke blob ini adalah 2019-11-11.

Untuk memproses data sebagai streaming menggunakan tanda waktu dalam payload peristiwa, Anda harus menggunakan kata kunci TIMESTAMP BY. Pekerjaan Azure Stream Analytics menarik data dari penyimpanan Azure Blob atau input Azure Data Lake Storage Gen2 setiap detik jika file blob tersedia. Jika file blob tidak tersedia, ada backoff eksponensial dengan penundaan waktu maksimum 90 detik.

Catatan

Azure Stream Analytics tidak mendukung penambahan konten ke file blob yang ada. Azure Stream Analytics hanya akan menampilkan setiap file sekali, dan setiap perubahan yang terjadi dalam file setelah pekerjaan membaca data yang tidak diproses. Praktik terbaik adalah mengunggah semua data untuk file blob sekaligus dan kemudian menambahkan peristiwa baru lain ke file blob baru yang berbeda.

Dalam skenario di mana banyak blob terus ditambahkan dan Azure Stream Analytics memproses blob saat ditambahkan, ada kemungkinan beberapa blob dilewati dalam kasus yang jarang terjadi karena granularitas BlobLastModifiedTime. Anda dapat mengurangi kasus ini dengan mengunggah blob setidaknya dua detik terpisah. Jika opsi ini tidak layak, Anda dapat menggunakan Azure Event Hubs untuk mengalirkan peristiwa dalam volume besar.

Konfigurasikan penyimpanan Blob sebagai input streaming

Tabel berikut menjelaskan setiap properti di halaman Input baru di portal Azure saat Anda mengonfigurasi penyimpanan Blob sebagai input streaming.

Properti Deskripsi
Alias input Nama mudah diingat yang Anda gunakan dalam kueri tugas untuk mereferensikan output ini.
Langganan Pilih langganan tempat sumber daya penyimpanan berada.
Akun penyimpanan Nama akun penyimpanan tempat file blob berada.
Kunci akun penyimpanan Kunci rahasia yang terkait dengan akun penyimpanan. Opsi ini secara otomatis diisi kecuali Anda memilih opsi untuk menyediakan pengaturan secara manual.
Kontainer Kontainer menyediakan pengelompokan logis untuk blob. Anda dapat memilih Gunakan kontainer yang ada atau Buat baru untuk membuat kontainer baru.
Mode autentikasi Tentukan jenis autentikasi yang ingin Anda gunakan untuk menyambungkan ke akun penyimpanan. Anda dapat menggunakan string koneksi atau identitas terkelola untuk mengautentikasi dengan akun penyimpanan. Untuk opsi identitas terkelola, Anda dapat membuat identitas terkelola yang ditetapkan sistem ke pekerjaan Azure Stream Analytics atau identitas terkelola yang ditetapkan pengguna untuk mengautentikasi dengan akun penyimpanan. Saat Anda menggunakan identitas terkelola, identitas terkelola harus menjadi anggota peran yang sesuai di akun penyimpanan.
Pola jalur (opsional) Jalur file yang digunakan untuk menemukan blob di dalam kontainer yang ditentukan. Jika Anda ingin membaca blob dari akar kontainer, jangan atur pola jalur. Dalam jalur, Anda dapat menentukan satu atau beberapa contoh dari tiga variabel berikut: {date}, {time}, atau {partition}

Contoh 1: cluster1/logs/{date}/{time}/{partition}

Contoh 2: cluster1/logs/{date}

Karakter * bukan nilai yang diizinkan untuk awalan jalur. Hanya karakter blob Azure yang valid yang diizinkan. Jangan sertakan nama kontainer atau nama file.
Format tanggal (opsional) Jika Anda menggunakan variabel tanggal di jalur, format tanggal tempat file diatur. Contoh: YYYY/MM/DD

Ketika input blob memiliki {date} atau {time} di jalurnya, folder akan terlihat dalam urutan waktu menaik.
Format wakti (opsional) Jika Anda menggunakan variabel waktu di jalur, format waktu tempat file diatur. Satu-satunya nilai yang didukung saat ini adalah HH untuk jam.
Kunci partisi Ini adalah bidang opsional yang hanya tersedia jika pekerjaan Anda dikonfigurasi untuk menggunakan tingkat kompatibilitas 1.2 atau yang lebih tinggi. Jika input Anda dipartisi oleh properti, Anda dapat menambahkan nama properti ini di sini. Ini digunakan untuk meningkatkan performa kueri Anda jika menyertakan klausa PARTITION BY atau GROUP BY pada properti ini. Jika pekerjaan ini menggunakan tingkat kompatibilitas 1.2 atau lebih tinggi, bidang ini default ke "PartitionId."
Jumlah partisi input Bidang ini hanya ada ketika {partition} ada dalam pola jalur. Nilai properti ini adalah bilangan bulat >=1. Di mana pun {partition} muncul di pathPattern, angka antara 0 dan nilai bidang ini -1 akan digunakan.
Format serialisasi peristiwa Format serialisasi (JSON, CSV, Avro, Parquet, atau Lainnya (Protobuf, XML, kepemilikan...)) dari aliran data yang masuk. Pastikan format JSON selaras dengan spesifikasi dan tidak menyertakan 0 di depan untuk angka desimal.
Pengodean Untuk CSV dan JSON, UTF-8 saat ini adalah satu-satunya format pengodean yang didukung.
Kompresi Jenis kompresi yang digunakan untuk membaca aliran data yang masuk, seperti Tidak Ada (default), Gzip, atau Deflate.

Saat data Anda berasal dari sumber penyimpanan Blob, Anda memiliki akses ke bidang metadata berikut di kueri Azure Stream Analytics:

Properti Deskripsi
BlobName Nama blob input tempat peristiwa berasal.
EventProcessedUtcTime Tanggal dan waktu saat Azure Stream Analytics memproses peristiwa.
BlobLastModifiedUtcTime Tanggal dan waktu blob terakhir diubah.
PartitionId ID partisi berbasis nol untuk adapter input.

Misalnya, dengan menggunakan bidang tersebut, Anda dapat menulis kueri seperti contoh berikut:

SELECT
    BlobName,
    EventProcessedUtcTime,
    BlobLastModifiedUtcTime
FROM Input

Mengalirkan data dari Apache Kafka

Azure Stream Analytics memungkinkan Anda terhubung langsung ke kluster Apache Kafka untuk menyerap data. Solusinya adalah kode rendah dan sepenuhnya dikelola oleh tim Azure Stream Analytics di Microsoft, memungkinkannya memenuhi standar kepatuhan bisnis. Input Kafka kompatibel mundur dan mendukung semua versi dengan rilis klien terbaru mulai dari versi 0.10. Pengguna dapat terhubung ke kluster Kafka di dalam jaringan virtual dan kluster Kafka dengan titik akhir publik, tergantung pada konfigurasinya. Konfigurasi bergantung pada konvensi konfigurasi Kafka yang ada. Jenis kompresi yang didukung adalah None, Gzip, Snappy, LZ4, dan Zstd.

Untuk informasi selengkapnya, lihat Mengalirkan data dari Kafka ke Azure Stream Analytics (Pratinjau).

Langkah berikutnya