Spuštění úlohy přeindexování v Azure API for FHIR
Existují scénáře, ve kterých můžete mít v rozhraní Azure API for FHIR parametry vyhledávání nebo řazení, které ještě nejsou indexované. Tento scénář je relevantní, když definujete vlastní parametry vyhledávání. Dokud není parametr vyhledávání indexovaný, nelze ho použít při hledání. Tento článek popisuje, jak spustit úlohu přeindexování pro indexování parametrů vyhledávání, které ještě nebyly indexovány ve vaší databázi služby FHIR.
Upozornění
Než začnete, je důležité přečíst si celý tento článek. Úloha přeindexování může být velmi náročná na výkon. Tento článek obsahuje možnosti, jak úlohu přeindexování omezovat a řídit.
Jak spustit úlohu přeindexování
Úlohu přeindexování je možné spustit pro celou databázi služby FHIR a pro konkrétní vlastní parametr vyhledávání.
Spuštění úlohy reindexování pro celou databázi služby FHIR
Pokud chcete spustit úlohu přeindexování, použijte následující POST
volání s prostředkem formátovaným ve formátu Parameters
JSON v textu požadavku:
POST {{FHIR URL}}/$reindex
{
“resourceType”: “Parameters”,
“parameter”: []
}
"parameter": []
Pokud nepotřebujete upravovat prostředky přidělené k úloze přeindexování, nechte pole prázdné (jak je znázorněno na obrázku).
Pokud je požadavek úspěšný, kromě prostředku v odpovědi se zobrazí stavový kód Parameters
201 Created (Vytvoření 201).
HTTP/1.1 201 Created
Content-Location: https://{{FHIR URL}}/_operations/reindex/560c7c61-2c70-4c54-b86d-c53a9d29495e
{
"resourceType": "Parameters",
"id": "560c7c61-2c70-4c54-b86d-c53a9d29495e",
"meta": {
"versionId": "\"4c0049cd-0000-0100-0000-607dc5a90000\""
},
"parameter": [
{
"name": "id",
"valueString": "560c7c61-2c70-4c54-b86d-c53a9d29495e"
},
{
"name": "lastModified",
"valueDateTime": "2023-06-08T04:52:44.0974408+00:00"
},
{
"name": "queuedTime",
"valueDateTime": "2023-06-08T04:52:44.0974406+00:00"
},
{
"name": "totalResourcesToReindex",
"valueDecimal": 0.0
},
{
"name": "resourcesSuccessfullyReindexed",
"valueDecimal": 0.0
},
{
"name": "progress",
"valueDecimal": 0.0
},
{
"name": "status",
"valueString": "Queued"
},
{
"name": "maximumConcurrency",
"valueDecimal": 3.0
},
{
"name": "queryDelayIntervalInMilliseconds",
"valueDecimal": 500.0
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueDecimal": 100.0
}
]
}
Spuštění úlohy přeindexování pro konkrétní parametr vlastního vyhledávání
Pokud chcete spustit úlohu přeindexování pro konkrétní parametr vlastního vyhledávání, použijte následující POST
volání s prostředkem formátovaným ve formátu Parameters
JSON v textu požadavku:
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "targetSearchParameterTypes",
"valueString": "{url of custom search parameter. In case of multiple custom search parameters, url list can be comma seperated.}"
}
]
}
Poznámka
Pokud chcete zkontrolovat stav úlohy přeindexování nebo zrušit úlohu, budete potřebovat ID reindexování. Jedná se o přenesenou "id"
hodnotu vrácenou "parameter"
v odpovědi. Ve výše uvedeném příkladu by ID úlohy přeindexování bylo 560c7c61-2c70-4c54-b86d-c53a9d29495e
.
Postup kontroly stavu úlohy přeindexování
Jakmile spustíte úlohu reindexování, můžete stav úlohy zkontrolovat pomocí následujícího volání:
GET {{FHIR URL}}/_operations/reindex/{{reindexJobId}
Příklad odpovědi:
{
"resourceType": "Parameters",
"id": "560c7c61-2c70-4c54-b86d-c53a9d29495e",
"meta": {
"versionId": "138087"
},
"parameter": [
{
"name": "id",
"valueString": "560c7c61-2c70-4c54-b86d-c53a9d29495e"
},
{
"name": "startTime",
"valueDateTime": "2023-06-08T04:54:53.2943069+00:00"
},
{
"name": "endTime",
"valueDateTime": "2023-06-08T04:54:54.4052272+00:00"
},
{
"name": "lastModified",
"valueDateTime": "2023-06-08T04:54:54.4053002+00:00"
},
{
"name": "queuedTime",
"valueDateTime": "2023-06-08T04:52:44.0974406+00:00"
},
{
"name": "totalResourcesToReindex",
"valueDecimal": 2.0
},
{
"name": "resourcesSuccessfullyReindexed",
"valueDecimal": 2.0
},
{
"name": "progress",
"valueDecimal": 100.0
},
{
"name": "status",
"valueString": "Completed"
},
{
"name": "maximumConcurrency",
"valueDecimal": 3.0
},
{
"name": "resources",
"valueString": "{{LIST_OF_IMPACTED_RESOURCES}}"
},
{
"name": "resourceReindexProgressByResource (CountReindexed of Count)",
"valueString": "{{RESOURCE_TYPE:REINDEXED_COUNT OF TOTAL_COUNT}}"
},
{
"name": "searchParams",
"valueString": "{{LIST_OF_SEARCHPARAM_URLS}}h"
},
{
"name": "queryDelayIntervalInMilliseconds",
"valueDecimal": 500.0
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueDecimal": 100.0
}
]
}
Ve výše uvedené odpovědi jsou uvedené následující informace:
totalResourcesToReindex
: Zahrnuje celkový počet prostředků, které jsou v této úloze přeindexovány.resourcesSuccessfullyReindexed
: Celkový počet prostředků, které již byly v této úloze přeindexovány.progress
: Přeindexovat procento dokončení úlohy. Rovná seresourcesSuccessfullyReindexed
/totalResourcesToReindex
x 100.status
: Udává, jestli je úloha přeindexování zařazená do fronty, spuštěná, dokončená, neúspěšná nebo zrušená.resources
: Vypíše všechny typy prostředků ovlivněné úlohou přeindexování.ResourceReindexProgressByResource (CountReindexed of Count): Poskytuje reindexovaný počet celkového počtu podle typu prostředku. V případech, kdy je přeindexování určitého typu prostředku zařazené do fronty, je k dispozici pouze počet.
'searchParams': Vypíše adresu URL parametrů hledání ovlivněných úlohou přeindexování.
Odstranění úlohy přeindexování
Pokud potřebujete zrušit úlohu přeindexování, použijte volání odstranění a zadejte ID úlohy přeindexování:
Delete {{FHIR URL}}/_operations/reindex/{{reindexJobId}
Otázky výkonu
Úloha přeindexování může být poměrně náročná na výkon. Implementovali jsme některé ovládací prvky omezování, které vám pomůžou se správou způsobu spuštění úlohy přeindexování ve vaší databázi.
Poznámka
U velkých datových sad není neobvyklé, že úloha přeindexování běží několik dní. U databáze s 30 000 000 miliony prostředků jsme si všimli, že přeindexování celé databáze při 100 tisících RU trvalo 4 až 5 dnů.
Níže je tabulka s přehledem dostupných parametrů, výchozích hodnot a doporučených rozsahů. Tyto parametry můžete použít buď ke zrychlení procesu (použití více výpočetních prostředků), nebo ke zpomalení procesu (méně výpočetních prostředků). Můžete například spustit úlohu přeindexování při nízké době provozu a zvýšit výpočetní prostředky, abyste to zvládli rychleji. Místo toho můžete pomocí nastavení zajistit nízké využití výpočetních prostředků a nechat je běžet několik dní na pozadí.
Parametr | Popis | Výchozí | Dostupný rozsah |
---|---|---|---|
QueryDelayIntervalInMilliseconds | Zpoždění mezi jednotlivými dávkami prostředků, které se aktivovaly během úlohy přeindexování. Menší číslo zrychlí úlohu, zatímco vyšší číslo ji zpomalí. | 500 MS (.5 sekundy) | 50-500000 |
MaximumResourcesPerQuery | Maximální počet prostředků zahrnutých v dávce prostředků, které se mají přeindexovat. | 100 | 1-5000 |
MaximumConcurrency | Počet dávek provedených najednou. | 1 | 1-10 |
targetDataStoreUsagePercentage | Umožňuje určit, jaké procento úložiště dat se má použít pro úlohu přeindexování. Můžete například zadat 50 % a tím zajistit, aby úloha přeindexování využila maximálně 50 % dostupných RU ve službě Azure Cosmos DB. | Není k dispozici, což znamená, že je možné použít až 100 %. | 0-100 |
Pokud chcete použít některý z výše uvedených parametrů, můžete je předat do prostředku Parametry při spuštění úlohy přeindexování.
{
"resourceType": "Parameters",
"parameter": [
{
"name": "maximumConcurrency",
"valueInteger": "3"
},
{
"name": "targetDataStoreUsagePercentage",
"valueInteger": "20"
},
{
"name": "queryDelayIntervalInMilliseconds",
"valueInteger": "1000"
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueInteger": "1"
}
]
}
Další kroky
V tomto článku jste se dozvěděli, jak spustit úlohu přeindexování. Informace o definování nových parametrů vyhledávání, které vyžadují úlohu přeindexování, najdete v tématu
FHIR® je registrovaná ochranná známka HL7 a používá se s povolením HL7.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro