Menjadwalkan pengindeks di Azure AI Search

Pengindeks dapat dikonfigurasi untuk berjalan sesuai jadwal saat Anda mengatur schedule properti . Beberapa situasi saat penjadwalan pengindeks berguna termasuk:

  • Data sumber berubah dari waktu ke waktu, dan Anda ingin pengindeks memproses perbedaan secara otomatis.
  • Data sumber sangat besar, dan Anda memerlukan jadwal berulang untuk mengindeks semua konten.
  • Indeks diisi dari beberapa sumber, menggunakan beberapa pengindeks, dan Anda ingin mengejutkan pekerjaan untuk mengurangi konflik.

Saat pengindeksan tidak dapat diselesaikan dalam jendela pemrosesan 2 jam yang khas, Anda dapat menjadwalkan pengindeks untuk berjalan pada irama 2 jam untuk bekerja melalui volume data yang besar. Selama sumber data Anda mendukung logika deteksi perubahan, pengindeks dapat secara otomatis mengambil tempat yang ditinggalkan pada setiap eksekusi.

Setelah pengindeks sesuai jadwal, pengindeks tetap sesuai jadwal hingga Anda menghapus interval atau waktu mulai, atau diatur disabled ke true. Meninggalkan pengindeks sesuai jadwal ketika tidak ada yang perlu diproses tidak akan memengaruhi performa sistem. Memeriksa konten yang diubah adalah operasi yang relatif cepat.

Prasyarat

  • Pengindeks yang valid dikonfigurasi dengan sumber data dan indeks.

  • Ubah deteksi di sumber data. Azure Storage dan SharePoint memiliki deteksi perubahan bawaan. Sumber data lainnya, seperti Azure SQL dan Azure Cosmos DB harus diaktifkan secara manual.

Definisi jadwal

Jadwal adalah bagian dari definisi pengindeks. Jika properti dihilangkan schedule , pengindeks hanya akan berjalan sesuai permintaan. Properti memiliki dua bagian.

Properti Deskripsi
"interval" (diperlukan) Jumlah waktu antara dimulainya dua eksekusi pengindeks berturut-turut. Interval terkecil yang diperbolehkan adalah 5 menit, dan yang terpanjang adalah 1440 menit (24 jam). Interval ini harus diformat sebagai nilai “dayTimeDuration” XSD (subset terbatas dari nilai durasi ISO 8601).

Pola untuk ini adalah: P(nD)(T(nH)(nM)).

Contoh: PT15M untuk setiap 15 menit, PT2H untuk setiap dua jam.
"startTime" (opsional) Waktu mulai ditentukan dalam waktu universal terkoordinasi (UTC). Jika dihilangkan, waktu saat ini digunakan. Kali ini bisa di masa lalu, dalam hal ini eksekusi pertama dijadwalkan seolah-olah pengindeks telah berjalan terus-menerus sejak waktu mulai asli.

Contoh berikut adalah jadwal yang dimulai pada 1 Januari tengah malam dan berjalan setiap dua jam.

{
    "dataSourceName" : "hotels-ds",
    "targetIndexName" : "hotels-idx",
    "schedule" : { "interval" : "PT2H", "startTime" : "2024-01-01T00:00:00Z" }
}

Mengonfigurasi jadwal

Jadwal ditentukan dalam definisi pengindeks. Untuk menyiapkan jadwal, Anda dapat menggunakan portal Azure, REST API, atau Azure SDK.

  1. Masuk ke portal Azure dan buka halaman layanan pencarian.
  2. Di panel navigasi kiri, pilih Pengindeks.
  3. Buka pengindeks.
  4. Pilih pengaturan.
  5. Gulir ke bawah ke Jadwal, lalu pilih Per Jam, Harian, atau Kustom untuk mengatur tanggal, waktu, atau interval kustom tertentu.

Beralih ke tab Definisi Pengindeks (JSON) di bagian atas indeks untuk melihat definisi jadwal dalam format XSD.

Perilaku penjadwalan

Untuk pengindeksan berbasis teks, penjadwal dapat memulai pekerjaan pengindeks sebanyak yang didukung layanan pencarian, yang ditentukan oleh jumlah unit pencarian. Misalnya, jika layanan memiliki tiga replika dan empat partisi, Anda dapat memiliki 12 pekerjaan pengindeks dalam eksekusi aktif, baik yang dimulai sesuai permintaan atau sesuai jadwal.

Pengindeks berbasis keterampilan berjalan di lingkungan eksekusi yang berbeda. Untuk alasan ini, jumlah unit layanan tidak memiliki bantalan pada jumlah pekerjaan pengindeks berbasis keterampilan yang dapat Anda jalankan. Beberapa pengindeks berbasis keterampilan dapat berjalan secara paralel, tetapi melakukannya tergantung pada ketersediaan node dalam lingkungan eksekusi.

Meskipun beberapa pengindeks dapat berjalan secara bersamaan, pengindeks tertentu adalah instans tunggal. Anda tidak dapat menjalankan dua salinan pengindeks yang sama secara bersamaan. Jika pengindeks kebetulan masih berjalan ketika eksekusi terjadwal berikutnya diatur ke mulai, eksekusi yang tertunda ditunda hingga kemunculan terjadwal berikutnya, memungkinkan pekerjaan saat ini selesai.

Mari kita pertimbangkan contoh untuk membuat ini lebih konkret. Misalkan kami mengonfigurasi jadwal pengindeks dengan interval per jam dan waktu mulai 1 Januari 2024 pukul 08.00.00 UTC. Inilah yang bisa terjadi ketika pengindeks berjalan membutuhkan waktu lebih dari satu jam:

  • Eksekusi pengindeks pertama dimulai pada atau sekitar 1 Januari 2024 pukul 08.00 UTC. Asumsikan eksekusi ini membutuhkan waktu 20 menit (atau jumlah waktu apa pun yang kurang dari 1 jam).

  • Eksekusi kedua dimulai pada atau sekitar 1 Januari 2022 09.00 UTC. Misalkan eksekusi ini memakan waktu 70 menit - lebih dari satu jam - dan eksekusi ini tidak akan selesai sampai pukul 10:10 UTC.

  • Eksekusi ketiga dijadwalkan dimulai pada pukul 10.00 UTC, namun saat itu eksekusi sebelumnya masih berjalan. Eksekusi terjadwal ini kemudian dilompati. Eksekusi pengindeks berikutnya tidak akan dimulai hingga pukul 11.00 UTC.

Catatan

Jika pengindeks diatur ke jadwal tertentu tetapi berulang kali gagal pada dokumen yang sama setiap kali, pengindeks akan mulai berjalan pada interval yang lebih jarang (hingga interval maksimum setidaknya sekali setiap 2 jam atau 24 jam, tergantung pada faktor implementasi yang berbeda) sampai berhasil membuat kemajuan lagi. Jika Anda yakin telah memperbaiki apa pun masalah yang mendasarinya, Anda dapat menjalankan pengindeks secara manual, dan jika pengindeksan berhasil, pengindeks akan kembali ke jadwal regulernya.

Langkah berikutnya

Untuk pengindeks yang berjalan sesuai jadwal, Anda dapat memantau operasi dengan mengambil status dari layanan pencarian, atau mendapatkan informasi terperinci dengan mengaktifkan pengelogan sumber daya.