Data Referensi JOIN (Azure Stream Analytics)
Dalam skenario biasa, kami menggunakan mesin pemrosesan peristiwa untuk menghitung data streaming dengan latensi yang sangat rendah. Dalam banyak kasus, pengguna perlu menghubungkan data historis yang bertahan atau himpunan data yang berubah lambat (alias data referensi) dengan aliran peristiwa real-time untuk membuat keputusan yang lebih cerdas tentang sistem. Misalnya, gabungkan aliran peristiwa saya ke himpunan data statis yang memetakan Alamat IP ke lokasi. Ini adalah satu-satunya JOIN yang didukung di Azure Stream Analytics di mana batas temporal tidak diperlukan. Data referensi juga dapat digunakan untuk memiliki nilai ambang batas khusus perangkat.
Contoh
Jika kendaraan komersial terdaftar di Perusahaan Tol, mereka dapat melewati pintu tol tanpa dihentikan untuk diperiksa. Kami akan menggunakan tabel pencarian registrasi kendaraan komersial untuk mengidentifikasi semua kendaraan komersial dengan pendaftaran yang kedaluwarsa.
SELECT I1.EntryTime, I1.LicensePlate, I1.TollId, R.RegistrationId
FROM Input1 I1 TIMESTAMP BY EntryTime
JOIN Registration R
ON I1.LicensePlate = R.LicensePlate
WHERE R.Expired = '1'
Kekhasan Data Referensi JOIN
- Menggunakan Data Referensi JOIN mengharuskan sumber input untuk Data Referensi ditentukan.
- Data referensi JOIN didukung untuk JOIN dalam (default) dan JOIN luar kiri, dengan data referensi di sisi kanan operator JOIN.
- Jenis data adalah aspek penting dalam evaluasi predikat gabungan (
ON
klausa). Nilai serupa pada jenis data yang berbeda (1.0
dan"1"
) mungkin tidak cocok. Disarankan untuk mengonversi kunci secara eksplisit ke jenis umum. - Data referensi dapat statis (dimuat hanya sekali) atau dinamis (disegarkan secara teratur). Namun, bahkan dalam kasus dinamis, data referensi tidak membuat kemajuan waktu sehingga aliran di sisi kiri perlu mendapatkan peristiwa baru untuk menghasilkan output. Lihat juga bagaimana waktu berlangsung di azure stream analytics untuk informasi selengkapnya.
Pertimbangan performa
Untuk mencegah penurunan performa, predikat gabungan referensi (ON
klausa) harus ditentukan melalui kesetaraan kunci sederhana (ON s.myKey = r.myKey
). Menggunakan ekspresi kompleks, atau ketidaksamaan, akan secara internal menghasilkan gabungan silang diikuti oleh filter (pemindaian penuh vs pencarian), yang dapat berdampak severly pada latensi keseluruhan.
Jika memungkinkan, pindahkan ekspresi kompleks ini ke WHERE
klausul langkah kueri, atau gabungkan Data Referensi yang sama masing-masing beberapa kali dengan kondisi yang lebih sederhana.