Indexelő ütemezése az Azure AI Searchben

Az indexelők konfigurálhatók úgy, hogy ütemezés szerint fussanak a schedule tulajdonság beállításakor. Néhány olyan helyzet, amikor az indexelő ütemezése hasznos:

  • A forrásadatok idővel változnak, és azt szeretné, hogy az indexelő automatikusan feldolgozhassa a különbséget.
  • A forrásadatok nagyon nagyok, és ismétlődő ütemezésre van szükség az összes tartalom indexeléséhez.
  • Az indexek több forrásból, több indexelő használatával lesznek feltöltve, és az ütközések csökkentése érdekében meg szeretné csökkenteni a feladatokat.

Ha az indexelés nem fejeződik be a tipikus 2 órás feldolgozási időszakon belül, ütemezheti, hogy az indexelő 2 órás ütemben fusson, hogy nagy mennyiségű adaton működjön keresztül. Mindaddig, amíg az adatforrás támogatja a változásészlelési logikát, az indexelők automatikusan ott folytathatják, ahol abbahagyták az egyes futtatásokat.

Ha egy indexelő ütemezésben van, az ütemezésben marad, amíg meg nem törli az intervallumot vagy a kezdési időpontot, vagy true (igaz) értékre nem állítja disabled . Ha az indexelőt ütemezés szerint hagyja, ha nincs feldolgozandó folyamat, az nem befolyásolja a rendszer teljesítményét. A módosított tartalom ellenőrzése viszonylag gyors művelet.

Előfeltételek

  • Adatforrással és indexel konfigurált érvényes indexelő.

  • Változásészlelés az adatforrásban. Az Azure Storage és a SharePoint beépített változásészleléssel rendelkezik. Más adatforrásokat, például az Azure SQL-t és az Azure Cosmos DB-t manuálisan kell engedélyezni.

Ütemezés definíciója

Az ütemezés az indexelő definíciójának része. Ha a schedule tulajdonság nincs megadva, az indexelő csak igény szerint fog futni. A tulajdonság két részből áll.

Tulajdonság Leírás
"intervallum" (kötelező) Két egymást követő indexelő-végrehajtás kezdete közötti idő. A legkisebb megengedett időköz 5 perc, a leghosszabb pedig 1440 perc (24 óra). XSD "dayTimeDuration" értékként kell formázni (az ISO 8601 időtartamérték korlátozott részhalmaza).

Ennek mintája a következő: P(nD)(T(nH)(nM)).

Példák: PT15M 15 percenként, PT2H kétóránként.
"startTime" (nem kötelező) A kezdési idő az egyezményes világidő (UTC) szerint van megadva. Ha nincs megadva, a rendszer az aktuális időt használja. Ez az idő a múltban lehet, ebben az esetben az első végrehajtás úgy van ütemezve, mintha az indexelő az eredeti kezdési időpont óta folyamatosan fut.

Az alábbi példa egy január 1-jén éjfélkor kezdődő és kétóránként futó ütemezés.

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

Ütemezés konfigurálása

Az ütemezések indexelő definícióban vannak megadva. Az ütemezés beállításához használhatja az Azure Portalt, a REST API-kat vagy az Azure SDK-kat.

  1. Jelentkezzen be az Azure Portalra , és nyissa meg a keresési szolgáltatás oldalát.
  2. A bal oldali navigációs panelen válassza az Indexelők lehetőséget.
  3. Nyisson meg egy indexelőt.
  4. Válassza a Beállítások lehetőséget.
  5. Görgessen le az Ütemezés elemre, majd válassza az Óránként, a Napi vagy az Egyéni lehetőséget egy adott dátum, idő vagy egyéni időköz beállításához.

Váltson az index tetején található Indexelődefiníció (JSON) lapra az ütemezés definíciójának XSD formátumban való megtekintéséhez.

Ütemezési viselkedés

Szöveges indexelés esetén az ütemező annyi indexelő feladatot indíthat el, amennyit a keresési szolgáltatás támogat, amelyet a keresési egységek száma határoz meg. Ha például a szolgáltatás három replikával és négy partícióval rendelkezik, 12 indexelői feladat lehet aktív végrehajtás alatt, akár igény szerint, akár ütemezés szerint.

A képességalapú indexelők más végrehajtási környezetben futnak. Ezért a szolgáltatási egységek száma nem befolyásolja a futtatható képességalapú indexelő feladatok számát. Több képességalapú indexelő is futtatható párhuzamosan, de ez a csomópontok rendelkezésre állásától függ a végrehajtási környezetben.

Bár egyszerre több indexelő is futtatható, egy adott indexelő egyetlen példány. Nem futtathat egyszerre két példányt ugyanabból az indexelőből. Ha egy indexelő a következő ütemezett végrehajtás indításakor is fut, a függőben lévő végrehajtást a rendszer a következő ütemezett eseményig elhalasztja, így az aktuális feladat befejeződik.

Tekintsünk egy példát, hogy ez konkrétabb legyen. Tegyük fel, hogy egy indexelő ütemezését óránkénti intervallummal és 2024. január 1-jén 8:00:00 -kor (UTC) állítjuk be. Az alábbiakban bemutatjuk, mi történhet, ha egy indexelő futtatása egy óránál tovább tart:

  • Az indexelő első végrehajtása 2024. január 1-jén vagy környékén kezdődik utc 8:00-kor. Tegyük fel, hogy ez a végrehajtás 20 percet vesz igénybe (vagy bármely 1 óránál rövidebb időt).

  • A második végrehajtás 2022. január 1-jén vagy körülbelül 9:00-kor (UTC) kezdődik. Tegyük fel, hogy ez a végrehajtás 70 percet vesz igénybe – több mint egy órát –, és csak UTC 10:10-ig fejeződik be.

  • A harmadik végrehajtás a tervek szerint UTC 10:00-kor kezdődik, de az előző végrehajtás még mindig fut. Ezt az ütemezett végrehajtást a program kihagyja. Az indexelő következő végrehajtása csak UTC 11:00-ig kezdődik.

Feljegyzés

Ha egy indexelő egy adott ütemezésre van állítva, de minden alkalommal ismétlődően meghiúsul ugyanazon a dokumentumon, az indexelő ritkábban (legfeljebb 2 óránként vagy 24 óránként, a különböző megvalósítási tényezőktől függően) indul el, amíg ismét sikeresen el nem éri az előrehaladást. Ha úgy véli, hogy kijavította a mögöttes problémát, manuálisan futtathatja az indexelőt, és ha az indexelés sikeres, az indexelő visszatér a szokásos ütemezéséhez.

Következő lépések

Az ütemezés szerint futó indexelők figyelhetik a műveleteket a keresési szolgáltatás állapotának lekérésével, vagy részletes információk lekérésével az erőforrás-naplózás engedélyezésével.