Menskalakan tugas Analisis Aliran Anda dengan fungsi Machine Learning Studio (klasik)

Tip

Sangat disarankan untuk menggunakan UDF Azure Machine Learning, bukan UDF Machine Learning Studio (klasik) untuk meningkatkan performa dan keandalan.

Penting

Dukungan untuk Studio Azure Machine Learning (klasik) akan berakhir pada 31 Agustus 2024. Sebaiknya Anda transisi ke Azure Machine Learning sebelum tanggal tersebut.

Mulai 1 Desember 2021, Anda tidak akan dapat membuat sumber daya Studio Pembelajaran Mesin (klasik) baru (ruang kerja dan paket layanan web). Hingga 31 Agustus 2024, Anda dapat terus menggunakan eksperimen Studio Pembelajaran Mesin (klasik) yang ada dan layanan web.

ML Dokumentasi Studio (klasik) sedang berhenti dan mungkin tidak diperbarui di masa mendatang.

Artikel ini membahas cara menskalakan pekerjaan Azure Stream Analytics secara efisien yang menggunakan fungsi Machine Learning Studio (klasik). Untuk informasi tentang cara menskalakan pekerjaan Azure Stream Analytics secara umum, lihat artikel Menskalakan pekerjaan.

Apakah yang dimaksud dengan fungsi Studio (klasik) di Azure Stream Analytics?

Fungsi Azure Machine Learning Studio (klasik) di Azure Stream Analytics dapat digunakan seperti panggilan fungsi reguler dalam bahasa pemrogram kueri Azure Stream Analytics. Namun, di balik layar, panggilan fungsi ini sebenarnya adalah permintaan Layanan Web Studio (klasik).

Anda dapat meningkatkan throughput permintaan layanan web Studio (klasik) dengan "mem-batch" beberapa baris bersama-sama dalam panggilan API layanan web yang sama. Pengelompokan ini disebut sebagai mini-batch. Untuk informasi lebih lanjut, lihat Layanan Web Azure Machine Learning Studio (klasik). Dukungan untuk Studio (klasik) di Azure Stream Analytics.

Mengonfigurasi pekerjaan Azure Stream Analytics dengan fungsi Studio (klasik)

Ada dua parameter untuk mengonfigurasi fungsi Studio (klasik) yang digunakan oleh pekerjaan Azure Stream Analytics Anda:

  • Ukuran batch dari panggilan fungsi Studio (klasik).
  • Jumlah Unit Streaming (SU) yang tersedia untuk pekerjaan Azure Stream Analytics.

Untuk menentukan nilai yang sesuai untuk SU, putuskan apakah Anda ingin mengoptimalkan latensi pekerjaan Azure Stream Analytics atau throughput setiap SU. SU mungkin selalu ditambahkan ke pekerjaan untuk meningkatkan throughput kueri Azure Stream Analytics yang dipartisi dengan baik. SU tambahan memang meningkatkan biaya menjalankan pekerjaan.

Tentukan toleransi latensi pekerjaan Azure Stream Analytics Anda. Meningkatkan ukuran batch akan meningkatkan latensi permintaan Studio (klasik) Anda dan latensi pekerjaan Azure Stream Analytics.

Meningkatkan ukuran batch memungkinkan pekerjaan Azure Stream Analytics untuk memproses lebih banyak kejadian dengan jumlah yang sama untuk permintaan layanan web Studio (klasik). Peningkatan latensi layanan web Studio (klasik) biasanya bersifat sublinier terhadap peningkatan ukuran batch.

Penting untuk mempertimbangkan ukuran batch yang paling hemat biaya untuk layanan web Studio (klasik) dalam situasi tertentu. Ukuran batch default untuk permintaan layanan web adalah 1000. Anda dapat mengubah ukuran default ini menggunakan REST API Azure Stream Analytics atau klien PowerShell untuk Azure Stream Analytics.

Setelah memutuskan sebuah ukuran batch, Anda dapat mengatur jumlah unit streaming (SU), berdasarkan pada jumlah kejadian yang perlu diproses fungsi per detik. Untuk informasi lebih lanjut mengenai unit streaming, lihat Pekerjaan penskalaan Azure Stream Analytics.

Setiap 6 SU mendapatkan 20 koneksi bersamaan ke layanan web Studio (klasik). Namun, 1 pekerjaan SU dan 3 pekerjaan SU mendapatkan 20 koneksi bersamaan.

Jika aplikasi Anda membuat 200.000 kejadian per detik, dan ukuran batchnya adalah 1000, maka latensi layanan web yang dihasilkan adalah 200 md. Kecepatan ini berarti bahwa setiap koneksi dapat membuat lima permintaan ke layanan web Studio (klasik) setiap detik. Dengan 20 koneksi, pekerjaan Azure Stream Analytics dapat memproses 20.000 kejadian dalam 200 md dan 100.000 kejadian dalam satu detik.

Untuk memproses 200.000 kejadian per detik, pekerjaan Azure Stream Analytics memerlukan 40 koneksi bersamaan, yang akan mengarah ke 12 SU. Diagram berikut mengilustrasikan permintaan dari pekerjaan Azure Stream Analytics ke titik akhir layanan web Studio (klasik) - Setiap 6 SU maksimal memiliki 20 koneksi bersamaan ke layanan web Studio (klasik).

Scale Stream Analytics with Studio (classic) Functions two job example

Secara umum, B untuk ukuran batch, L untuk latensi layanan web pada ukuran batch B dalam milidetik, throughput pekerjaan Azure Stream Analytics dengan N SU adalah:

Scale Stream Analytics with Studio (classic) Functions Formula

Anda juga dapat mengonfigurasi 'panggilan bersamaan maksimum' di layanan web Studio (klasik). Disarankan untuk mengatur parameter ini ke nilai maksimum (200 untuk saat ini).

Untuk informasi lebih lanjut tentang pengaturan ini, tinjau Menskalakan artikel untuk Layanan Web Azure Machine Learning Studio (klasik).

Contoh – Analisis Sentimen

Contoh berikut mencakup pekerjaan Azure Stream Analytics dengan fungsi analisis sentimen Studio (klasik), seperti yang dijelaskan dalam tutorial integrasi Stream Analytics Azure Machine Learning Studio (klasik).

Kueri adalah kueri sederhana yang dipartisi penuh dan diikuti oleh fungsi sentimen seperti yang diperlihatkan dalam contoh berikut:

    WITH subquery AS (
        SELECT text, sentiment(text) as result from input
    )

    Select text, result.[Score]
    Into output
    From subquery

Mari kita periksa konfigurasi yang diperlukan untuk membuat pekerjaan Azure Stream Analytics, yang melakukan analisis sentimen tweet dengan kecepatan 10.000 tweet per detik.

Dengan menggunakan 1 SU, mungkinkah pekerjaan Azure Stream Analytics ini menangani lalu lintas? Pekerjaan dapat mengikuti input menggunakan ukuran batch defaultnya yaitu 1000. Latensi default dari layanan web Studio analisis sentimen Studio (klasik) (dengan ukuran batch default 1000) membuat latensi tidak lebih dari satu detik.

Keseluruhan pekerjaan Azure Stream Analytics atau semua latensi ujung-ke-ujung biasanya berlangsung beberapa detik. Lihat rincian pekerjaan Azure Stream Analytics ini, terutama panggilan fungsi Studio (klasik). Dengan ukuran batch 1000, throughput dari 10.000 kejadian membutuhkan sekitar 10 permintaan ke layanan web. Bahkan dengan satu SU, ada cukup koneksi bersamaan untuk mengakomodasi lalu lintas input ini.

Jika kecepatan kejadian input meningkat sebesar 100x, maka pekerjaan Azure Stream Analytics perlu memproses 1.000.000 tweet per detik. Ada dua opsi untuk mencapai skala yang ditingkatkan:

  1. Memperbesar ukuran batch.
  2. Menpartisi aliran input untuk memproses kejadian secara paralel.

Dengan opsi pertama, latensi pekerjaan meningkat.

Dengan opsi kedua, Anda harus menentukan lebih banyak SU untuk memiliki lebih banyak permintaan layanan web Studio (klasik) bersamaan. Jumlah SU yang lebih besar ini meningkatkan biaya pekerjaan.

Mari kita lihat penskalaan menggunakan pengukuran latensi berikut untuk setiap ukuran batch:

Latensi Ukuran batch
200 md Batch berisi 1.000 kejadian atau di bawahnya
250 md Batch berisi 5.000 kejadian
300 md Batch berisi 10.000 kejadian
500 md Batch berisi 25.000 kejadian
  1. Menggunakan opsi pertama (tidak menyediakan lebih banyak SU). Ukuran batch dapat ditingkatkan menjadi 25.000. Meningkatkan ukuran batch dengan cara ini akan memungkinkan pekerjaan untuk memproses 1.000.000 kejadian dengan 20 koneksi bersamaan ke layanan web Studio (klasik) (dengan latensi 500 md per panggilan). Jadi latensi tambahan dari pekerjaan Azure Stream Analytics yang disebabkan permintaan fungsi sentimen terhadap permintaan layanan web Studio (klasik) akan ditingkatkan dari 200 md menjadi 500 md. Namun, ukuran batch tidak dapat ditingkatkan tanpa batas karena layanan web Studio (klasik) memerlukan ukuran payload permintaan sebesar 4 MB atau lebih kecil, dan waktu permintaan layanan web habis setelah beroperasi selama 100 detik.
  2. Menggunakan opsi kedua, ukuran batch dibiarkan pada 1000, dengan latensi layanan web 200-md, setiap 20 koneksi bersamaan ke layanan web akan dapat memproses 1000 * 20 * 5 kejadian = 100.000 per detik. Jadi untuk memproses 1.000.000 kejadian per detik, pekerjaannya akan membutuhkan 60 SU. Dibandingkan dengan opsi pertama, pekerjaan Azure Stream Analytics akan membuat lebih banyak permintaan batch layanan web, yang akan meningkatkan biaya.

Di bawah ini adalah tabel untuk throughput pekerjaan Azure Stream Analytics untuk ukuran SU dan batch yang berbeda (dalam jumlah kejadian per detik).

ukuran batch (latensi ML) 500 (200 md) 1\.000 (200 md) 5\.000 (250 md) 10.000 (300 md) 25.000 (500 md)
1 SU 2\.500 5\.000 20.000 30.000 50.000
3 SU 2\.500 5\.000 20.000 30.000 50.000
6 SU 2\.500 5\.000 20.000 30.000 50.000
12 SU 5\.000 10.000 40.000 60.000 100.000
18 SU 7\.500 15.000 60.000 90.000 150.000
24 SU 10.000 20.000 80.000 120.000 200.000
60 SU 25.000 50.000 200.000 300.000 500.000

Saat ini, Anda sudah memiliki pemahaman yang baik tentang cara kerja fungsi Studio (klasik) di Azure Stream Analytics. Anda mungkin juga telah memahami bahwa pekerjaan Azure Stream Analytics "menarik" data dari sumber data dan setiap "penarikan" menampilkan sekumpulan kejadian agar pekerjaan Azure Stream Analytics dapat diproses. Bagaimana model penarikan ini memengaruhi permintaan layanan web Studio (klasik)?

Biasanya, ukuran batch yang kami tetapkan untuk fungsi Studio (klasik) tidak akan benar-benar dapat dibagi dengan jumlah kejadian yang ditampilkan oleh setiap "penarikan" pekerjaan Azure Stream Analytics. Ketika ini terjadi, layanan web Studio (klasik) dipanggil dengan batch "sebagian". Menggunakan batch sebagian menghindari adanya latensi pekerjaan tambahan dalam menyatukan kejadian dari satu penarikan ke penarikan yang lain.

Di area Monitor dari pekerjaan Azure Stream Analytics, tiga metrik terkait fungsi tambahan telah ditambahkan. Tiga metrik tersebut adalah PERMINTAAN FUNGSI, KEJADIAN FUNGSI dan PERMINTAAN FUNGSI YANG GAGAL, seperti yang ditunjukkan pada grafik di bawah ini.

Scale Stream Analytics with Studio (classic) Functions Metrics

Beberapa metrik tersebut didefinisikan sebagai berikut:

PERMINTAAN FUNGSI: Jumlah permintaan fungsi.

KEJADIAN FUNGSI: Jumlah permintaan kejadian di permintaan fungsi.

PERMINTAAN FUNGSI YANG GAGAL: Jumlah permintaan fungsi yang gagal.

Poin-Poin Utama

Untuk menskalakan pekerjaan Azure Stream Analytics dengan fungsi Studio (klasik), pertimbangkan faktor-faktor berikut:

  1. Kecepatan kejadian input.
  2. Latensi yang ditoleransi untuk pekerjaan Azure Stream Analytics yang sedang berjalan (demikian pula dengan ukuran batch permintaan layanan web Studio (klasik)).
  3. SU Azure Stream Analytics yang tersedia dan jumlah permintaan layanan web Studio (klasik) (biaya terkait fungsi tambahan).

Kueri Azure Stream Analytics yang dipartisi sepenuhnya digunakan sebagai contoh. Jika kueri yang lebih kompleks diperlukan, Microsoft Q&Halaman pertanyaan untuk Azure Stream Analytics adalah sumber yang bagus untuk mendapatkan bantuan tambahan dari tim Stream Analytics.

Langkah berikutnya

Untuk mempelajari lebih lanjut Azure Stream Analytics, lihat: