Memahami pemrosesan peristiwa

Selesai

Azure Stream Analytics adalah layanan untuk pemrosesan peristiwa yang kompleks dan analisis data aliran. Azure Stream Analytics digunakan untuk:

  • Menyerap data dari input, seperti Azure event hub, Azure IoT Hub, atau kontainer blob Azure Storage.
  • Memproses data dengan menggunakan kueri untuk memilih, memproyeksikan, dan menggabungkan nilai data.
  • Menulis hasilnya ke output, seperti Azure Data Lake Gen 2, Azure SQL Database, Azure Synapse Analytics, Azure Functions, Azure event hub, Microsoft Power BI, atau lainnya.

Diagram yang memperlihatkan pekerjaan Azure Stream Analytics dengan input, kueri, dan output

Setelah dimulai, kueri Azure Stream Analytics akan berjalan terus-menerus, memproses data baru saat sampai di input dan menyimpan hasilnya di output.

Azure Stream Analytics menjamin pemrosesan peristiwa tepat satu kali dan pengiriman peristiwa setidaknya satu kali, sehingga peristiwa tidak akan pernah hilang. Azure Stream Analytics memiliki kemampuan pemulihan bawaan jika pengiriman peristiwa gagal. Juga, Azure Stream Analytics menyediakan titik pemeriksaan bawaan untuk mempertahankan status pekerjaan Anda dan memberikan hasil yang dapat diulang. Karena Azure Stream Analytics adalah solusi platform-as-a-service (PaaS), solusi ini dikelola sepenuhnya dan sangat dapat diandalkan. Integrasi bawaannya dengan berbagai sumber dan tujuan dan menyediakan model kemampuan pemrograman yang fleksibel. Mesin Azure Stream Analytics memungkinkan komputasi dalam memori, sehingga menawarkan performa tinggi.

Pekerjaan dan kluster Azure Stream Analytics

Cara termudah untuk menggunakan Azure Stream Analytics adalah dengan membuat pekerjaan Azure Stream Analytics di langganan Azure, mengonfigurasi input dan outputnya, dan menentukan kueri yang akan digunakan pekerjaan untuk memproses data. Kueri diekspresikan menggunakan sintaks bahasa kueri terstruktur (SQL), dan dapat menggabungkan data referensi statis dari berbagai sumber data untuk menyediakan nilai pencarian yang dapat digabungkan dengan data aliran yang diserap dari input.

Jika persyaratan proses aliran Anda rumit atau intensif sumber daya, Anda dapat membuat kluster Analisis Aliran, yang menggunakan mesin pemrosesan dasar yang sama sebagai pekerjaan Azure Stream Analytics, tetapi dalam penyewa khusus (sehingga pemrosesan Anda tidak dipengaruhi oleh pelanggan lain) dan dengan skalabilitas yang dapat dikonfigurasi yang memungkinkan Anda menentukan keseimbangan yang tepat antara throughput dan biaya untuk skenario spesifik Anda.

Input

Azure Stream Analytics dapat menyerap data dari jenis input berikut:

  • Azure Event Hubs
  • Azure IoT Hub
  • Penyimpanan Azure Blob
  • Azure Data Lake Storage Gen2

Input umumnya digunakan untuk mereferensikan sumber data streaming, yang diproses saat rekaman peristiwa baru ditambahkan. Selain itu, Anda dapat menentukan input referensi yang digunakan untuk menyerap data statis untuk menambah data aliran peristiwa real time. Misalnya, Anda dapat menyerap aliran data pengamatan cuaca real-time yang menyertakan ID unik untuk setiap stasiun cuaca, dan menambah data tersebut dengan input referensi statis yang cocok dengan ID stasiun cuaca dengan nama yang lebih bermakna.

Output

Output adalah tujuan di mana hasil pemrosesan aliran dikirim. Azure Stream Analytics mendukung berbagai output, yang dapat digunakan untuk:

  • Pertahankan hasil pemrosesan aliran untuk analisis lebih lanjut; misalnya dengan memuatnya ke dalam data lake atau gudang data.
  • Menampilkan visualisasi real time aliran data; misalnya dengan menambahkan data ke himpunan data di Microsoft Power BI.
  • Hasilkan peristiwa yang difilter atau dirangkum untuk pemrosesan hilir; misalnya dengan menulis hasil pemrosesan streaming ke pusat aktivitas.

Kueri

Logika pemrosesan aliran dienkapsulasi dalam kueri. Kueri didefinisikan menggunakan pernyataan SQL bahwa bidang data SELECTDARI satu atau beberapa input, memfilter atau mengagregasi data, dan menulis hasilnya KE DALAM output. Misalnya, kueri berikut memfilter peristiwa dari input peristiwa cuaca untuk menyertakan hanya data dari peristiwa dengan nilai suhu kurang dari 0, dan menulis hasilnya ke output cold-temps :

SELECT observation_time, weather_station, temperature
INTO cold-temps
FROM weather-events TIMESTAMP BY observation_time
WHERE temperature < 0

Bidang bernama EventProcessedUtcTime secara otomatis dibuat untuk menentukan waktu saat peristiwa diproses oleh kueri Azure Stream Analytics Anda. Anda dapat menggunakan bidang ini untuk menentukan tanda waktu peristiwa, atau Anda dapat secara eksplisit menentukan bidang DateTime lain dengan menggunakan klausa TIMESTAMP BY , seperti yang ditunjukkan dalam contoh ini. Bergantung pada input tempat data streaming dibaca, satu atau beberapa bidang tanda waktu potensial dapat dibuat secara otomatis; misalnya, saat menggunakan input Azure Event Hubs , bidang bernama EventQueuedUtcTime dihasilkan untuk merekam waktu saat peristiwa diterima di antrean hub peristiwa.

Bidang yang digunakan sebagai tanda waktu penting saat menggabungkan data melalui jendela temporal, yang dibahas berikutnya.