Kebijakan Kecondongan Waktu (Azure Stream Analytics)

Di Azure Stream Analytics, semua peristiwa aliran data memiliki tanda waktu yang terkait dengannya. Pengguna dapat menggunakan kata kunci TIMESTAMP BY untuk memilih antara salah satu dari dua waktu yang berbeda ini:

  • Waktu aplikasi, artinya waktu peristiwa diproduksi (sebagaimana ditandai oleh aplikasi/perangkat yang menghasilkan peristiwa). Saat menggunakan waktu aplikasi, Anda dapat memproses semua peristiwa menggunakan garis waktu global, atau menganalisis setiap perangkat/partisi menggunakan garis waktunya sendiri menggunakan substream;
  • Waktu kedatangan, waktu peristiwa mencapai cloud (misalnya waktu kedatangan di IoT Hub atau Event Hub).

Selain pilihan tanda waktu, pengguna mungkin perlu menentukan kebijakan Kedatangan Terlambat dan Tidak Sesuai Pesanan karena masalah berikut:

  • Produsen peristiwa memiliki kecondongan jam. Ini umum ketika produsen berasal dari mesin yang berbeda, sehingga mereka memiliki jam yang berbeda.
  • Karena latensi jaringan, peristiwa yang berasal dari jam yang sama dapat tiba di Event Hub atau IoT Hub dalam urutan yang berbeda dari kapan peristiwa berasal
  • Jam condong di antara partisi. Saat menggunakan kueri yang tidak dipartisi, peristiwa dari semua partisi digabungkan dengan tanda waktu pilihan pengguna. Kecondongan jam antara partisi dapat mengakibatkan penundaan pemrosesan, karena merger perlu menunggu partisi paling lambat.

Aliran input yang tidak berurutan dapat berupa:

  • Diurutkan (dan karenanya tertunda).
  • Disesuaikan oleh sistem, sesuai dengan kebijakan yang ditentukan pengguna.

Azure Stream Analytics mentolerir peristiwa yang terlambat dan tidak berurutan saat memproses berdasarkan waktu aplikasi.

Kebijakan Di Luar Urutan

Memiliki peristiwa yang dipesan berdasarkan waktu sangat penting dalam analitik streaming. Namun karena 3 masalah yang disebutkan di atas, seringkali terjadi bahwa mereka diterima secara tidak berurutan, yang dapat memengaruhi hasil kueri kami. Kebijakan Di Luar Urutan memungkinkan untuk menyusun ulang peristiwa berdasarkan tanda waktu ketika mereka tiba dalam jendela toleransi yang ditentukan. Peristiwa yang tiba lebih lambat dari toleransi dihilangkan atau disesuaikan, tergantung pada pengaturan yang Anda pilih.

  • Disesuaikan: Disesuaikan agar tampak telah tiba pada waktu terakhir yang dapat diterima.
  • Dihilangkan: Dibuang.

Pengaturan ini dapat disesuaikan di portal Azure (di tab "Pengurutan Peristiwa" pekerjaan). Untuk informasi selengkapnya, lihat halaman pertimbangan urutan peristiwa.

Saat menetapkan kebijakan di luar urutan yang lebih besar dari 0, Azure Stream Analytics akan menyangga peristiwa hingga jendela tersebut dan menyusun ulang menggunakan tanda waktu yang ditentukan pengguna sebelum menerapkan transformasi temporal. Umumnya dimulai dengan jendela 3 detik terlebih dahulu adalah praktik terbaik yang baik dan kemudian menyetel nilai untuk mengurangi jumlah peristiwa yang menyesuaikan waktu. Perhatikan bahwa karena buffering, efek samping adalah output tertunda oleh jumlah waktu yang sama. Akibatnya, Anda harus menyempurnakan nilai untuk mengurangi jumlah peristiwa yang tidak berurutan dan menjaga latensi tetap rendah.

Toleransi Kedatangan Terlambat

Jendela toleransi kedatangan terlambat digunakan untuk mempertangungjawabkan keterlambatan peristiwa yang mencapai sumber input karena berbagai alasan yang diuraikan di atas. Secara singkat, jendela kedatangan terlambat adalah penundaan maksimum antara pembuatan peristiwa dan penerimaan peristiwa di sumber input. Penyesuaian berdasarkan toleransi Kedatangan terlambat dilakukan terlebih dahulu dan di luar urutan dilakukan selanjutnya. Kolom System.Timestamp() akan memiliki tanda waktu akhir yang ditetapkan ke peristiwa.

Pengaturan ini hanya berlaku saat diproses berdasarkan waktu Aplikasi, jika tidak, pengaturan tersebut diabaikan. Ini juga dapat diatur di portal Azure (di tab "Pengurutan Peristiwa" dari pekerjaan). Untuk informasi selengkapnya, lihat halaman pertimbangan urutan peristiwa.

Ketika peristiwa terlambat, tanda waktu disesuaikan dengan waktu antrean saat ini di sumber input dikurangi jendela toleransi kedatangan terlambat (atau dihilangkan, tergantung pada tindakan yang dipilih). Ketika beberapa partisi dari aliran input yang sama atau beberapa aliran input digabungkan bersama-sama, toleransi kedatangan terlambat adalah jumlah waktu maksimum setiap partisi menunggu data baru.

Toleransi Kedatangan Terlambat dan peristiwa Sparse

Kebijakan Kedatangan Terlambat memungkinkan Azure Stream Analytics untuk memajukan waktu dan menghasilkan output dengan cara timelier tanpa adanya peristiwa input. Ini sangat berguna ketika peristiwa input jarang (atau tidak diterima sama sekali di beberapa partisi Event Hub).

Misalnya, peristiwa input dihasilkan sekali setiap menit untuk kueri pilih*. Tanpa menggunakan kebijakan ini, Azure Stream Analytics tidak dapat menghasilkan hasil output hingga peristiwa tiba di semua partisi Event Hub (untuk memindahkan waktu ke depan). Ini mungkin berarti 16 menit jika Pusat Aktivitas memiliki 16 partisi, dan bahwa setiap peristiwa dikirimkan ke partisi yang berbeda. Dengan kebijakan default 5 detik, jam dipindahkan maju 5 detik setelah peristiwa pertama, sehingga peristiwa output dihasilkan 5 detik setelah peristiwa pertama.

Lihat juga

Manajemen Waktu (Azure Stream Analytics)
System.Timestamp() (Stream Analytics)
TIMESTAMP BY (Azure Stream Analytics)
Pertimbangan Pesanan Peristiwa