Azure Yapay Zeka Arama'te dizin oluşturucu zamanlama

Dizin oluşturucular, schedule özelliğini ayarladığınızda bir zamanlama ile çalışacak şekilde yapılandırılabilir. Dizin oluşturucu zamanlamanın yararlı olduğu bazı durumlar şunlardır:

  • Kaynak veriler zaman içinde değişiyor ve dizin oluşturucunun farkı otomatik olarak işlemesini istiyorsunuz.
  • Kaynak veriler çok büyük ve içeriğin tümünü dizine almak için yinelenen bir zamanlamaya ihtiyacınız vardır.
  • Bir dizin, birden çok dizin oluşturucu kullanılarak birden çok kaynaktan doldurulur ve çakışmaları azaltmak için işleri kademeli yapmak istiyorsunuz.

Dizin oluşturma işlemi tipik 2 saatlik işlem penceresinde tamamlanamadıysa, dizin oluşturucuyu büyük miktarda veri üzerinde çalışacak şekilde 2 saatlik bir tempoda çalışacak şekilde zamanlayabilirsiniz. Veri kaynağınız değişiklik algılama mantığını desteklediği sürece, dizin oluşturucular her çalıştırmada kaldıkları yerden otomatik olarak devam edebilir.

Bir dizin oluşturucu bir zamanlama programındayken, siz aralığı veya başlangıç saatini temizlemedikçe ya da disabled true olarak ayarlanmadıkça zamanlama programında kalır. Bir işlem yapılmadığında dizin oluşturucunun bir program doğrultusunda çalışmaya devam etmesi sistem performansını etkilemez. Değiştirilen içeriği denetlemek nispeten hızlı bir işlemdir.

Önkoşullar

  • Veri kaynağı ve dizin ile yapılandırılmış geçerli bir dizinleyici.

  • Veri kaynağında değişiklik algılama . Azure Depolama ve SharePoint yerleşik değişiklik algılama özelliğine sahiptir. Azure SQL ve Azure Cosmos DB gibi diğer veri kaynaklarının el ile etkinleştirilmesi gerekir.

Zamanlama tanımı

Zamanlama, dizin oluşturucu tanımının bir parçasıdır. schedule Özellik atlanırsa, dizin oluşturucu yalnızca isteğe bağlı olarak çalışır. özelliği iki bölümden oluşur.

Özellik Açıklama
aralık (gerekli) Ardışık iki dizin oluşturucu yürütmesinin başlangıcı arasındaki süre. İzin verilen en küçük aralık 5 dakikadır ve en uzun süre 1440 dakikadır (24 saat). XSD "dayTimeDuration" değeri (ISO 8601 süre değerinin kısıtlanmış bir alt kümesi) olarak biçimlendirilmelidir.

Bunun deseni: P(nD)(T(nH)(nM)).

Örnekler: PT15M 15 dakikada bir, PT2H iki saatte bir.
başlangıç zamanı (isteğe bağlı) Başlangıç saati eşgüdümlü evrensel saat (UTC) olarak belirtilir. Atlandığında, geçerli saat kullanılır. Bu süre geçmişte olabilir; bu durumda ilk yürütme, dizin oluşturucu özgün başlangıç zamanından beri sürekli çalışıyormuş gibi zamanlanır.

Aşağıdaki örnek, 1 Ocak'ta gece yarısı başlayan ve iki saatte bir çalışan bir zamanlamadır.

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

Zamanlama yapılandırma

Zamanlamalar bir dizin oluşturucu tanımında belirtilir. Zamanlama ayarlamak için Azure portalını, REST API'lerini veya bir Azure SDK'sını kullanabilirsiniz.

  1. Azure portalında arama hizmetinize gidin.
  2. Sol bölmede Dizinleyiciler'i seçin.
  3. Bir dizinleyici açın.
  4. Ayarlar'ı seçin.
  5. Zamanlamaya kadar aşağı kaydırın ve belirli bir tarih, saat veya özel aralık ayarlamak için Saatlik, Günlük veya Özel'i seçin.

Zamanlama tanımını XSD biçiminde görüntülemek için dizinin üst kısmındaki Dizin Oluşturucu Tanımı (JSON) sekmesine geçin.

Zamanlama Davranışı Hakkında Sıkça Sorulan Sorular

Birden çok dizin oluşturucu işini paralel olarak çalıştırabilir miyim?

Aynı anda birden çok dizin oluşturucu çalıştırabilirsiniz, ancak her dizin oluşturucu tek örnektir. Aynı dizin oluşturucunun iki kopyasını eşzamanlı olarak çalıştıramazsınız.

Metin tabanlı dizin oluşturma için zamanlayıcı, arama hizmeti tarafından desteklenen ve arama birimi sayısına göre belirlenen sayıda dizin oluşturucu işi başlatabilir. Örneğin, hizmetin üç replikası ve dört bölümü varsa, isteğe bağlı olarak veya bir program dahilinde başlatılmasına bakılmaksızın 12 dizin oluşturucu işi aktif olarak yürütülebilir.

Beceri tabanlı dizin oluşturma için dizin oluşturucular belirli bir yürütme ortamında çalışır. Bu nedenle, hizmet birimi sayısının çalıştırabileceğiniz beceri tabanlı dizin oluşturucu işlerinin sayısıyla bir ilgisi yoktur. Birden çok beceri tabanlı dizin oluşturucu paralel olarak çalışabilir, ancak bunu yapmak yürütme ortamında içerik işlemcisi kullanılabilirliğine bağlıdır.

Zamanlanmış işler her zaman belirlenen saatte mi başlar?

Dizin oluşturucu işlemleri kuyruğa alınabilir ve işleme iş yüküne ve diğer faktörlere bağlı olarak tam olarak gönderilen zamanda başlatılamayabilir. Örneğin, bir dizin oluşturucu hala çalışıyorsa ve bir sonraki zamanlanmış yürütme başlamak üzereyken, bekleyen yürütme, geçerli işin bitmesine olanak tanıyarak bir sonraki zamanlanan zamana ertelenir.

Bunu daha somut hale getirmek için bir örnek düşünelim. Saatlik bir aralık ve UTC 08:00:00 saatinde 1 Ocak 2024 tarihinde başlayan bir dizinleyici zamanlamasını yapılandırdığımız varsayılır. Dizin oluşturucu çalıştırması bir saatten uzun sürdüğünde şunlar olabilir:

  1. İlk dizin oluşturucu yürütmesi, 1 Ocak 2024 günü UTC saat 08:00’de veya civarında başlar. Bu yürütmenin 20 dakika (veya 1 saatten kısa bir süre) sürdüğünü varsayalım.

  2. İkinci yürütme 1 Ocak 2024 09:00 UTC civarında başlar. Bu yürütmenin 70 dakika (bir saatten fazla) sürdüğünü ve UTC saat 10:10'a kadar tamamlanmayacağını varsayalım.

  3. Üçüncü yürütme, UTC'de 10:00'da başlayacak şekilde zamanlanır, ancak o sırada önceki yürütme çalışmaya devam eder. Bu önceden zamanlanmış yürütme daha sonra atlanır. Dizin oluşturucunun sonraki yürütmesi UTC saat 11:00'e kadar başlamaz.

Bakım sırasında veya geçici koşullardan kurtarma gibi nadir durumlarda birden çok dizin oluşturucu çalıştırması kuyruğa alınır. Bu durumda, dizin oluşturucu bekleyen iş yüklerini zamanlanan pencere içinde sıralı olarak yürütür. Örneğin, bir dizin oluşturucunun saatlik çalışması zamanlandıysa ve birkaç çalıştırma gecikti veya isteğe bağlı olarak başlatıldıysa, kuyruğa alınan bu işler kuyruk boşaltılana kadar arka arkaya yürütülür. Bunlar ek çalıştırma değildir, ancak önceden zamanlanmış veya istenmiş çalıştırmaları temsil eder. Çoğu senaryoda bu davranış yaygın olmasa da dizin oluşturucu, tutarlılığı ve veri güncelliğini korumak için kuyruğa alınan tüm görevleri nihayetinde işlemek üzere tasarlanmıştır.

Not

Zamana duyarlı katı dizin oluşturucu yürütme gereksinimleriniz varsa, dizin oluşturma işlem hattını doğrudan denetleyebilmeniz için anında iletme API'sini kullanmayı düşünmelisiniz.

Dizin oluşturma aynı belgede tekrar tekrar başarısız olursa ne olur?

Bir dizin oluşturucu belirli bir zamanlamaya ayarlanırsa ancak her seferinde aynı belgede sürekli başarısız olursa, dizin oluşturucu yeniden başarılı bir şekilde ilerleme kaydedene kadar daha az sıklıkta çalışmaya başlar (farklı uygulama faktörlerine bağlı olarak en az 2 saatte bir veya 24 saatte bir en fazla bir aralıkla). Temel alınan sorunu düzelttiğinizi düşünüyorsanız, dizin oluşturucuyu el ile çalıştırabilirsiniz ve dizin oluşturma başarılı olursa, dizin oluşturucu normal zamanlamasına döner.

Sonraki adımlar

Zamanlamaya göre çalışan dizin oluşturucular için, arama hizmetinden durumu alarak işlemleri izleyebilir veya kaynak günlüğünü etkinleştirerek ayrıntılı bilgi edinebilirsiniz.