Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Data referensi adalah himpunan data terbatas yang bersifat statis atau perlahan berubah. Ini digunakan untuk melakukan pencarian atau untuk menambah aliran data Anda. Data referensi juga dikenal sebagai tabel pencarian.
Ambil skenario IoT sebagai contoh. Anda dapat menyimpan metadata tentang sensor, yang tidak sering berubah, dalam data referensi. Kemudian Anda dapat menggabungkannya dengan aliran data IoT real-time.
Azure Stream Analytics memuat data referensi dalam memori untuk mencapai pemrosesan aliran latensi rendah. Untuk memanfaatkan data referensi dalam pekerjaan Stream Analytics Anda, Anda umumnya akan menggunakan gabungan data referensi dalam kueri Anda.
Contoh
Anda dapat memiliki aliran peristiwa real time yang dihasilkan ketika mobil melewati tollbooth. Gerbang tol dapat menangkap plat nomor dalam waktu nyata. Data tersebut dapat bergabung dengan himpunan data statis yang memiliki detail pendaftaran untuk mengidentifikasi pelat lisensi yang telah 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'
Azure Stream Analytics mendukung Azure Blob Storage, Azure Data Lake Storage Gen2, dan Azure SQL Database sebagai lapisan penyimpanan untuk data referensi. Jika Anda memiliki data referensi di penyimpanan data lain, coba gunakan Azure Data Factory untuk mengekstrak, mengubah, dan memuat data ke salah satu penyimpanan data yang didukung. Untuk informasi selengkapnya, lihat Aktivitas Menyalin pada gambaran umum Azure Data Factory.
Azure Blob Storage atau Azure Data Lake Storage Gen 2
Data referensi dimodelkan sebagai urutan blob dalam urutan naik tanggal/waktu yang ditentukan dalam nama blob. Blob hanya dapat ditambahkan ke akhir urutan dengan menggunakan tanggal/waktu yang lebih besar dari yang ditentukan oleh blob terakhir dalam urutan. Blob didefinisikan dalam konfigurasi input.
Untuk informasi selengkapnya, lihat Menggunakan data referensi dari Blob Storage untuk tugas Stream Analytics.
Mengonfigurasi data referensi blob
Untuk mengonfigurasi data referensi, Anda harus terlebih dahulu membuat input yang merupakan jenis data referensi. Tabel berikut menjelaskan setiap properti yang perlu Anda berikan saat membuat input data referensi dengan deskripsinya.
Nama properti | Deskripsi |
---|---|
Alias input | Nama yang mudah diingat yang digunakan dalam kueri pekerjaan untuk mereferensikan input ini. |
Akun penyimpanan | Nama akun penyimpanan tempat blob Anda berada. Jika berada dalam langganan yang sama dengan pekerjaan Azure Stream Analytics Anda, pilih langganan tersebut dari daftar dropdown. |
Kunci akun penyimpanan | Kunci rahasia yang terkait dengan akun penyimpanan. Kunci ini secara otomatis diisi jika akun penyimpanan berada dalam langganan yang sama dengan pekerjaan Azure Stream Analytics Anda. |
Wadah penyimpanan | Kontainer menyediakan pengelompokan logis untuk blob yang disimpan di Blob Storage. Ketika Anda mengunggah blob ke Azure Blob Storage, Anda harus menentukan kontainer untuk blob itu. |
Pola Jalur | Properti yang diperlukan ini digunakan untuk menemukan blob Anda dalam kontainer yang telah ditentukan. Dalam jalur, Anda dapat memilih untuk menentukan satu atau beberapa instans variabel {date} dan {time}. Contoh 1: products/{date}/{time}/product-list.csv Contoh 2: products/{date}/product-list.csv Contoh 3: product-list.csv Jika blob tidak ada di jalur yang ditentukan, pekerjaan Azure Stream Analytics akan menunggu tanpa batas waktu hingga blob tersebut tersedia. |
Format tanggal [opsional] | Jika Anda menggunakan {date} dalam pola jalur yang Anda tentukan, pilih format tanggal di mana blob Anda diatur dari daftar tarik-turun format yang didukung. Contoh: YYYY/MM/DD atau MM/DD/YYYY |
Format waktu [opsional] | Jika Anda menggunakan {time} dalam pola jalur yang Anda tentukan, pilih format waktu tempat blob Anda diatur dari daftar dropdown format yang didukung. Contoh: HH, HH/mm, atau HH-mm |
Format serialisasi peristiwa | Untuk memastikan kueri Anda berfungsi seperti yang Anda harapkan, Azure Stream Analytics perlu mengetahui format serialisasi mana yang Anda gunakan untuk aliran data masuk. Untuk data referensi, format yang didukung adalah CSV dan JSON. |
Pengkodean | UTF-8 adalah satu-satunya format pengodean yang didukung saat ini. |
Data referensi statis
Data referensi Anda mungkin tidak diharapkan berubah. Untuk mengaktifkan dukungan untuk data referensi statis, tentukan jalur statis dalam konfigurasi input.
Stream Analytics mengambil blob dari jalur yang ditentukan. Token substitusi {date} dan {time} tidak diperlukan. Karena data referensi tidak dapat diubah di Azure Stream Analytics, menimpa blob data referensi statis tidak disarankan.
Membuat data referensi sesuai jadwal
Data referensi Anda mungkin merupakan himpunan data yang berubah secara perlahan. Untuk merefresh data referensi, tentukan pola jalur dalam konfigurasi input dengan menggunakan token substitusi {date} dan {time}. Stream Analytics mengambil definisi data referensi yang diperbarui berdasarkan pola jalur ini.
Misalnya, pola sample/{date}/{time}/products.csv
dengan format tanggal YYYY-MM-DD dan format waktu HH-mm menginstruksikan Stream Analytics untuk mengambil blob sample/2015-04-16/17-30/products.csv
yang diperbarui pada 16 April 2015, pada pukul 17.30 UTC.
Azure Stream Analytics secara otomatis memindai blob data referensi yang di-refresh pada interval satu menit. Blob dengan tanda waktu 10:30:00 mungkin diunggah dengan penundaan kecil, misalnya, 10:30:30. Anda melihat penundaan kecil dalam pekerjaan Azure Stream Analytics yang merujuk pada blob ini.
Untuk menghindari skenario tersebut, unggah blob lebih awal dari waktu efektif target, yaitu 10:30:00 dalam contoh ini. Tugas Azure Stream Analytics sekarang memiliki cukup waktu untuk menemukan dan memuat blob ke dalam memori serta melaksanakan operasi.
Nota
Saat ini, pekerjaan Stream Analytics mencari penyegaran blob hanya saat waktu komputer mencapai waktu yang terenkode dalam nama blob. Misalnya, pekerjaan mencari sample/2015-04-16/17-30/products.csv
sesegera mungkin tetapi tidak lebih awal dari 16 April 2015, pukul 17.30 UTC. Ini tidak akan pernah mencari blob dengan waktu yang dikodekan lebih awal dari yang terakhir yang ditemukan.
Misalnya, setelah pekerjaan menemukan blob sample/2015-04-16/17-30/products.csv
, ia mengabaikan file apa pun dengan tanggal yang dikodekan lebih awal dari 16 April 2015, pukul 17.30. Jika blob yang terlambat tiba sample/2015-04-16/17-25/products.csv
dibuat dalam kontainer yang sama, proses tidak akan menggunakannya.
Dalam contoh lain, sample/2015-04-16/17-30/products.csv
hanya diproduksi pada 16 April 2015, pukul 22.03, tetapi tidak ada blob dengan tanggal sebelumnya yang ada dalam kontainer. Kemudian pekerjaan menggunakan file ini mulai 16 April 2015, pukul 22.03 dan menggunakan data referensi sebelumnya hingga saat itu.
Pengecualian untuk perilaku ini adalah ketika pekerjaan perlu memproses ulang data kembali ke masa lalu atau ketika pekerjaan pertama kali dimulai.
Pada waktu mulai, pekerjaan mencari blob terbaru yang dihasilkan sebelum waktu mulai pekerjaan ditentukan. Perilaku ini memastikan ada himpunan data referensi yang tidak kosong saat pekerjaan dimulai. Jika tidak ada yang ditemukan, maka pekerjaan akan menampilkan diagnostik berikut: Initializing input without a valid reference data blob for UTC time <start time>
.
Saat himpunan data referensi di-refresh, log diagnostik dihasilkan: Loaded new reference data from <blob path>
. Karena berbagai alasan, pekerjaan mungkin perlu memuat ulang himpunan data referensi sebelumnya. Paling sering, alasannya adalah untuk memproses ulang data sebelumnya. Log diagnostik yang sama dihasilkan pada saat itu. Tindakan ini tidak menyiratkan bahwa data aliran saat ini menggunakan data referensi sebelumnya.
Azure Data Factory dapat digunakan untuk mengatur tugas membuat blob yang diperbarui yang diperlukan oleh Azure Stream Analytics untuk memperbarui definisi data referensi.
Data Factory adalah layanan integrasi data berbasis cloud yang mengatur dan mengotomatiskan pergerakan dan transformasi data. Data Factory mendukung koneksi ke sejumlah besar penyimpanan data berbasis cloud dan lokal. Ini dapat memindahkan data dengan mudah pada jadwal reguler yang Anda tentukan.
Untuk informasi selengkapnya tentang cara menyiapkan alur Data Factory untuk menghasilkan data referensi untuk Azure Stream Analytics yang di-refresh pada jadwal yang telah ditentukan sebelumnya, lihat sampel GitHub ini.
Tips untuk menyegarkan data referensi blob
- Jangan timpa blob data referensi karena tidak dapat diubah.
- Cara yang disarankan untuk menyegarkan data referensi adalah dengan:
- Gunakan {date}/{time} dalam pola jalur.
- Tambahkan blob baru dengan menggunakan kontainer dan pola jalur yang sama yang ditentukan dalam input pekerjaan.
- Gunakan tanggal/waktu yang lebih besar dari yang ditentukan oleh blob terakhir dalam urutan.
- Blob data referensi tidak* diurutkan berdasarkan waktu Modifikasi Terakhir blob. Mereka hanya diurutkan berdasarkan tanggal dan waktu yang ditentukan dalam nama blob menggunakan substitusi {date} dan {time}.
- Untuk menghindari harus mencantumkan sejumlah besar blob, hapus blob lama yang pemrosesannya tidak akan lagi dilakukan. Azure Stream Analytics mungkin harus memproses ulang sejumlah kecil data dalam beberapa skenario, seperti saat memulai ulang.
Azure SQL Database
Job Stream Analytics Anda mengambil data referensi SQL Database dan menyimpannya sebagai snapshot di memori untuk diproses. Rekam jepret data referensi Anda juga disimpan dalam kontainer di akun penyimpanan. Anda menentukan akun penyimpanan di pengaturan konfigurasi.
Kontainer dibuat secara otomatis saat pekerjaan dimulai. Jika pekerjaan berhenti atau memasuki status gagal, kontainer yang dibuat secara otomatis akan dihapus saat pekerjaan dimulai ulang.
Jika data referensi Anda adalah himpunan data yang berubah secara perlahan, Anda perlu secara berkala me-refresh rekam jepret yang digunakan dalam pekerjaan Anda.
Dengan Azure Stream Analytics, Anda dapat mengatur laju refresh saat mengonfigurasi koneksi input SQL Database Anda. Runtime Stream Analytics mengkueri instans SQL Database Anda pada interval yang ditentukan oleh frekuensi penyegaran. Laju refresh tercepat yang didukung adalah sekali per menit. Untuk setiap refresh, Stream Analytics menyimpan rekam jepret baru di akun penyimpanan yang disediakan.
Azure Stream Analytics menyediakan dua opsi untuk mengkueri instans SQL Database Anda. Kueri cuplikan bersifat wajib dan harus disertakan dalam setiap tugas. Azure Stream Analytics menjalankan kueri rekam jepret secara berkala berdasarkan interval refresh Anda. Ini menggunakan hasil kueri (rekam jepret) sebagai himpunan data referensi.
Kueri rekam jepret harus sesuai dengan sebagian besar skenario. Jika Anda mengalami masalah performa dengan himpunan data besar dan laju refresh cepat, gunakan opsi kueri delta. Kueri yang membutuhkan waktu lebih dari 60 detik untuk mengembalikan hasil himpunan data referensi akan mengalami waktu habis.
Dengan opsi kueri delta, Azure Stream Analytics menjalankan kueri rekam jepret awalnya untuk mendapatkan himpunan data referensi garis besar. Setelah itu, Stream Analytics menjalankan kueri delta secara berkala berdasarkan interval refresh Anda untuk mengambil perubahan inkremental. Perubahan bertahap ini terus diterapkan ke himpunan data referensi untuk memperbaruinya. Menggunakan opsi kueri delta mungkin membantu mengurangi biaya penyimpanan dan operasi I/O jaringan.
Mengonfigurasi data referensi SQL Database
Untuk mengonfigurasi data referensi SQL Database, Anda harus terlebih dahulu membuat input data referensi. Tabel berikut menjelaskan setiap properti yang perlu Anda berikan saat membuat input data referensi dengan deskripsinya. Untuk informasi selengkapnya, lihat Gunakan data referensi dari SQL Database untuk tugas Stream Analytics.
Anda dapat menggunakan Azure SQL Managed Instance sebagai input data referensi. Anda harus mengonfigurasi titik akhir publik di SQL Managed Instance. Kemudian Anda mengonfigurasi pengaturan berikut secara manual di Azure Stream Analytics. Komputer virtual Azure yang menjalankan SQL Server dengan database terlampir juga didukung dengan mengonfigurasi pengaturan ini secara manual.
Nama properti | Deskripsi |
---|---|
Alias input | Nama yang mudah diingat yang digunakan dalam kueri pekerjaan untuk mereferensikan input ini. |
Langganan | Langganan Anda. |
Database | Instans SQL Database yang berisi data referensi Anda. Untuk SQL Managed Instance, Anda harus menentukan port 3342. Contohnya adalah sampleserver.public.database.windows.net,3342 . |
Nama pengguna | Nama pengguna yang terkait dengan instans SQL Database Anda. |
Kata sandi | Kata sandi yang terkait dengan instans SQL Database Anda. |
Refresh secara berkala | Opsi ini memungkinkan Anda memilih laju refresh. Pilih Aktif untuk menentukan laju refresh di DD:HH:MM. |
Kueri jepretan | Opsi kueri default ini mengambil data referensi dari instans SQL Database Anda. |
Kueri delta | Untuk skenario tingkat lanjut dengan himpunan data besar dan laju refresh singkat, tambahkan kueri delta. |
Batasan ukuran
Gunakan himpunan data referensi yang kurang dari 300 MB untuk performa terbaik. Himpunan data referensi 5 GB atau lebih rendah didukung dalam pekerjaan dengan enam unit streaming atau lebih. Menggunakan himpunan data referensi besar dapat memengaruhi latensi end-to-end pekerjaan Anda.
Kompleksitas kueri dapat meningkat untuk menyertakan pemrosesan berbasis status seperti agregat berjendela, gabungan temporal, dan fungsi analitik temporal. Ketika kompleksitas meningkat, ukuran maksimum data referensi yang didukung berkurang.
Jika Azure Stream Analytics tidak dapat memuat data referensi dan melakukan operasi kompleks, pekerjaan kehabisan memori dan gagal. Dalam kasus seperti itu, metrik pemanfaatan persentase unit streaming mencapai 100%.
Jumlah unit streaming | Ukuran yang Direkomendasikan |
---|---|
1 | 50 MB atau lebih rendah |
3 | 150 MB atau lebih rendah |
6 dan seterusnya | 5 GB atau lebih rendah |
Dukungan untuk pemadatan tidak tersedia untuk data referensi. Untuk himpunan data referensi yang lebih besar dari 300 MB, gunakan SQL Database sebagai sumber dengan opsi kueri delta untuk performa optimal. Jika opsi kueri delta tidak digunakan dalam skenario seperti itu, Anda akan melihat lonjakan metrik penundaan marka air setiap kali himpunan data referensi di-refresh.
Menggabungkan beberapa himpunan data referensi dalam pekerjaan
Anda hanya dapat menggabungkan input data referensi ke input streaming. Jadi untuk menggabungkan beberapa himpunan data referensi, uraikan kueri Anda menjadi beberapa langkah. Berikut adalah contohnya:
With Step1 as (
--JOIN input stream with reference data to get 'Desc'
SELECT streamInput.*, refData1.Desc as Desc
FROM streamInput
JOIN refData1 ON refData1.key = streamInput.key
)
--Now Join Step1 with second reference data
SELECT *
INTO output
FROM Step1
JOIN refData2 ON refData2.Desc = Step1.Desc
Pekerjaan IoT Edge
Hanya data referensi lokal yang didukung untuk pekerjaan Azure Stream Analytics di edge. Saat sebuah pekerjaan dideploy ke perangkat IoT Edge, perangkat memuat data referensi dari jalur file yang ditentukan pengguna. Siapkan file data referensi pada perangkat.
Untuk kontainer Windows, letakkan file data referensi di drive lokal dan bagikan drive lokal dengan kontainer Docker. Untuk kontainer Linux, buat volume Docker dan isi file data ke volume.
Data referensi pada pembaruan IoT Edge dipicu oleh penyebaran. Setelah dipicu, modul Azure Stream Analytics memilih data yang diperbarui tanpa menghentikan pekerjaan yang sedang berjalan.
Anda dapat memperbarui data referensi dengan dua cara:
- Perbarui jalur data referensi di pekerjaan Azure Stream Analytics Anda dari portal Microsoft Azure.
- Perbarui penyebaran IoT Edge.