Spuštění přeindexování úlohy
Existují scénáře, ve kterých můžete mít parametry hledání ve službě FHIR® ve službě Azure Health Data Services, které ještě nebyly indexovány. Tento scénář je relevantní, když definujete vlastní parametry hledání. Dokud se vyhledávací parametr neindexuje, nedá se použít v živém produkčním prostředí. Tento článek popisuje, jak spustit úlohu přeindexování pro indexování všech vlastních parametrů vyhledávání v databázi služby FHIR.
Upozorňující
Než začnete, přečtěte si celý článek. Úloha reindexování může být velmi náročná na výkon. Tento článek popisuje možnosti omezení a řízení úlohy přeindexování.
Spuštění úlohy přeindexování
Úlohu přeindexování je možné spustit pro celou databázi služby FHIR a pro konkrétní vlastní parametry hledání.
Spuštění přeindexování úlohy 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 ve formátu Parameters
JSON v textu požadavku.
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": []
}
"parameter": []
Pokud nepotřebujete upravovat prostředky přidělené úloze přeindexování, nechte pole prázdné (jak je znázorněno).
Pokud je požadavek úspěšný, obdržíte kromě prostředku v odpovědi i stavový kód 201 Created (Vytvořený stavový Parameters
kód 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": "138035"
},
"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í s konkrétním parametrem vlastního vyhledávání
Pokud chcete spustit úlohu přeindexování s konkrétním parametrem vlastního vyhledávání, použijte následující POST
volání s prostředkem 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 separated.}"
}
]
}
Poznámka:
Pokud chcete zkontrolovat stav nebo zrušit úlohu přeindexování, potřebujete ID přeindexování. Jedná se o "id"
"parameter"
hodnotu odpovědi. V předchozím příkladu by ID pro úlohu přeindexování bylo 560c7c61-2c70-4c54-b86d-c53a9d29495e
.
Postup kontroly stavu přeindexování úlohy
Jakmile spustíte úlohu přeindexování, můžete pomocí následujícího volání zkontrolovat stav úlohy.
GET {{FHIR_URL}}/_operations/reindex/{{reindexJobId}}
Tady je 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}}"
},
{
"name": "queryDelayIntervalInMilliseconds",
"valueDecimal": 500.0
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueDecimal": 100.0
}
]
}
V předchozí odpovědi jsou uvedené následující informace:
totalResourcesToReindex
: Zahrnuje celkový počet prostředků, které se v této úloze přeindexují.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
: Stavy, pokud je úloha přeindexování zařazena do fronty, spuštěna, dokončena, selhala nebo zrušena.resources
: Zobrazí seznam všech typů prostředků ovlivněných úlohou přeindexování.ResourceReindexProgressByResource (CountReindexed of Count):" Poskytuje přeindexovaný počet celkového počtu na typ prostředku. V případech, kdy je přeindexování pro určitý typ prostředku zařazeno do fronty, je zadán pouze počet.
SearchParams: Uvádí adresu URL parametrů hledání ovlivněných úlohou přeindexování.
Odstranění přeindexovací úlohy
Pokud potřebujete zrušit úlohu přeindexování, použijte DELETE
volání a zadejte ID úlohy přeindexování.
DELETE {{FHIR URL}}/_operations/reindex/{{reindexJobId}}
Důležité informace o výkonu
Úloha přeindexování může být poměrně náročná na výkon. Služba FHIR nabízí ovládací prvky omezování, které vám pomůžou spravovat způsob, jakým se úloha přeindexování spouští ve vaší databázi.
Poznámka:
U velkých datových sad není neobvyklé, že se úloha přeindexování spustí po dobu dnů.
Níže je tabulka s popisem dostupných parametrů, výchozích hodnot a doporučených rozsahů pro řízení výpočetních prostředků úloh přeindexování. Pomocí těchto parametrů můžete proces urychlit (použít více výpočetních prostředků) nebo proces zpomalit (použít méně výpočetních prostředků).
Parametr | Popis | Výchozí | Dostupný rozsah |
---|---|---|---|
QueryDelayIntervalInMilliseconds |
Zpoždění mezi jednotlivými dávkami prostředků, které se spustí během přeindexované úlohy. Menší číslo zrychluje úlohu, zatímco větší číslo ji zpomalí. | 500 MS (,5 sekundy) | 50 až 500000 |
MaximumResourcesPerQuery |
Maximální početprostředkůch | 100 | 1-5000 |
MaximumConcurrency |
Počet dávek provedených najednou. | 0 | 1-10 |
Pokud chcete použít některý z předchozích parametrů, můžete je předat do Parameters
prostředku při odeslání počátečního POST
požadavku, aby se spustila úloha přeindexování.
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "maximumConcurrency",
"valueInteger": "3"
},
{
"name": "queryDelayIntervalInMilliseconds",
"valueInteger": "1000"
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueInteger": "1"
}
]
}
Další kroky
V tomto článku jste se dozvěděli, jak provést úlohu přeindexování ve službě FHIR. Informace o definování vlastních parametrů hledání najdete v tématu
Poznámka:
FHIR® je registrovaná ochranná známka HL7 a používá se s povolením HL7.