Azure AI Search'te dizin oluşturucu zamanlama

Dizin oluşturucular, özelliği ayarladığınızda schedule bir zamanlamaya göre ç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 zamanlamaya göre, siz aralığı veya başlangıç saatini temizleyene veya true olarak ayarlanana disabled kadar zamanlamada kalır. İşlenen bir şey olmadığında dizin oluşturucunun bir zamanlamaya göre bırakılması 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 dizin oluşturucu.

  • 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
"interval" (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.
"startTime" (isteğe bağlı) Başlangıç saati eşgüdümlü evrensel saat (UTC) olarak belirtilir. Atlanırsa 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 oturum açın ve arama hizmeti sayfasını açın.
  2. Sol gezinti bölmesinde Dizin Oluşturucular'ı seçin.
  3. Bir dizin oluşturucu 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ışı

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 üç çoğaltması ve dört bölümü varsa, isteğe bağlı olarak veya bir zamanlamayla başlatılan etkin yürütmede 12 dizin oluşturucu işiniz olabilir.

Beceri tabanlı dizin oluşturucular farklı 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ındaki düğüm kullanılabilirliğine bağlıdır.

Birden çok dizin oluşturucu aynı anda çalıştırılabilir, ancak belirli bir dizin oluşturucu tek örnektir. Aynı dizin oluşturucunun iki kopyasını eşzamanlı olarak çalıştıramazsınız. Bir dizin oluşturucu bir sonraki zamanlanmış yürütmesi başlatılacak şekilde ayarlandığında çalışmaya devam ediyorsa, bekleyen yürütme bir sonraki zamanlanan oluşuma ertelenerek geçerli işin bitmesine olanak sağlar.

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

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

  • İkinci yürütme 1 Ocak 2022 09:00 (UTC) veya 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.

  • Üçü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 zamanlanmış yürütme atlanır. Dizin oluşturucunun sonraki yürütmesi UTC saat 11:00'e kadar başlamaz.

Not

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.