Memilih teknologi pemrosesan aliran di Azure
Artikel ini membandingkan pilihan teknologi untuk pemrosesan aliran real-time di Azure.
Pemrosesan stream real-time mengonsumsi pesan dari penyimpanan berbasis antrian atau file, memproses pesan, dan meneruskan hasilnya ke antrean pesan, penyimpanan file, atau database lain. Pemrosesan mungkin termasuk kueri, pemfilteran, dan penggabungan pesan. Mesin pemrosesan aliran harus dapat mengkonsumsi aliran data yang tak ada habisnya dan menghasilkan hasil dengan latensi minimal. Untuk informasi selengkapnya, lihat Pemrosesan real time.
Apa opsi Anda saat memilih teknologi untuk pemrosesan real time?
Di Azure, semua penyimpanan data berikut akan memenuhi persyaratan core yang mendukung pemrosesan real-time:
- Azure Stream Analytics
- HDInsight dengan Spark Streaming
- Apache Spark di Azure Databricks
- HDInsight dengan Storm
- Azure Functions
- Azure App Service WebJobs
- Apache Kafka streams API
Kriteria Pemilihan Kunci
Untuk skenario pemrosesan real-time, mulailah memilih layanan yang sesuai untuk kebutuhan Anda dengan menjawab pertanyaan ini:
Apakah Anda lebih suka pendekatan deklaratif atau imperatif untuk menulis logika pemrosesan streaming?
Apakah Anda memerlukan dukungan bawaan untuk pemrosesan temporal atau windowing?
Apakah data Anda tiba dalam format selain Avro, JSON, atau CSV? Jika ya, pertimbangkan opsi yang mendukung format apa pun menggunakan kode kustom.
Apakah Anda perlu menskalakan pemrosesan Anda di luar 1 GB/dtk? Jika ya, pertimbangkan opsi yang diskalakan dengan ukuran kluster.
Matriks kemampuan
Tabel berikut merangkum perbedaan utama kemampuan.
Kemampuan secara umum
Kemampuan | Azure Stream Analytics | HDInsight dengan Spark Streaming | Apache Spark di Azure Databricks | HDInsight dengan Storm | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|---|
Keterprograman | SQL, JavaScript | C#/F#, Java, Python, Scala | C#/F#, Java, Python, R, Scala | C#, Java | C#, F#, Java, Node.js, Python | C#, Java, Node.js, PHP, Python |
Paradigma pemrograman | Deklaratif | Campuran deklaratif dan imperatif | Campuran deklaratif dan imperatif | Imperatif | Imperatif | Imperatif |
Rencana harga | Unit streaming | Per jam kluster | Unit Databricks | Per jam kluster | Eksekusi per fungsi dan konsumsi sumber daya | Jam paket layanan per aplikasi |
Kemampuan integrasi
Kemampuan | Azure Stream Analytics | HDInsight dengan Spark Streaming | Apache Spark di Azure Databricks | HDInsight dengan Storm | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|---|
Input | Azure Event Hubs, Azure IoT Hub, penyimpanan Azure Blob/ADLS Gen2 | Event Hubs, IoT Hub, Kafka, HDFS, Storage Blobs, Azure Data Lake Store | Event Hubs, IoT Hub, Kafka, HDFS, Storage Blobs, Azure Data Lake Store | Event Hubs, IoT Hub, Storage Blobs, Azure Data Lake Store | Pengikatan yang didukung | Bus Layanan, Antrean Penyimpanan, Blob Penyimpanan, Azure Event Hubs, WebHooks, Azure Cosmos DB, Files |
Sink | Azure Data Lake Storage Gen 1, Azure Data Explorer, Azure Database for PostgreSQL, Azure SQL Database, Azure Synapse Analytics, Penyimpanan blob dan Azure Data Lake Gen 2, Azure Event Hubs, Power BI, penyimpanan Azure Table, antrean Azure Bus Layanan, topik Azure Bus Layanan, Azure Cosmos DB, Azure Functions | HDFS, Kafka, Blob Penyimpanan, Azure Data Lake Store, Azure Cosmos DB | HDFS, Kafka, Blob Penyimpanan, Azure Data Lake Store, Azure Cosmos DB | Event Hubs, Service Bus, Kafka | Pengikatan yang didukung | Bus Layanan, Antrean Penyimpanan, Blob Penyimpanan, Azure Event Hubs, WebHooks, Azure Cosmos DB, Files |
Kemampuan pemrosesan
Kemampuan | Azure Stream Analytics | HDInsight dengan Spark Streaming | Apache Spark di Azure Databricks | HDInsight dengan Storm | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|---|
Dukungan temporal/windowing bawaan | Ya | Ya | Ya | Ya | No | Tidak |
Format data input | Avro, JSON, atau CSV, UTF-8 dikodekan | Format apa pun menggunakan kode kustom | Format apa pun menggunakan kode kustom | Format apa pun menggunakan kode kustom | Format apa pun menggunakan kode kustom | Format apa pun menggunakan kode kustom |
Skalabilitas | Partisi kueri | Dibatasi oleh ukuran kluster | Dibatasi oleh konfigurasi skala kluster Databricks | Dibatasi oleh ukuran kluster | Pemrosesan instans aplikasi fungsi hingga 200 secara paralel | Dibatasi oleh kapasitas paket layanan aplikasi |
Dukungan penanganan acara yang terlambat dan tidak teratur | Ya | Ya | Ya | Ya | No | Tidak |
Kontributor
Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.
Penulis utama:
- Zoiner Tejada | CEO dan Arsitek
Langkah berikutnya
- Gambaran umum Layanan Aplikasi
- Menjelajahi Azure Functions
- Mulai Menggunakan Azure Stream Analytics
- Melakukan transformasi data streaming tingkat lanjut
- Menyiapkan kluster di HDInsight
- Menggunakan Apache Spark di Azure Databricks
Sumber daya terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk