Köra ett omindexera jobb
Det finns scenarier där du kan ha sökparametrar i FHIR-tjänsten® i Azure Health Data Services som ännu inte har indexerats. Det här scenariot är relevant när du definierar dina egna anpassade sökparametrar. Det går inte att använda en sökparameter i liveproduktion förrän en sökparameter har indexerats. Den här artikeln beskriver hur du kör ett omindexera jobb för att indexera eventuella anpassade sökparametrar i FHIR-tjänstdatabasen.
Varning
Det är viktigt att du läser hela den här artikeln innan du börjar. Ett omindexera jobb kan vara mycket prestandaintensivt. I den här artikeln beskrivs alternativ för hur du begränsar och kontrollerar ett omindexeringsjobb.
Så här kör du ett omindexera jobb
Ett omindexeringsjobb kan köras mot en hel FHIR-tjänstdatabas och mot specifika anpassade sökparametrar.
Kör ett omindexera jobb på hela FHIR-tjänstdatabasen
Om du vill köra ett omindexeringsjobb använder du följande POST
anrop med den JSON-formaterade resursen i begärandetexten Parameters
.
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": []
}
Lämna fältet "parameter": []
tomt (som det visas) om du inte behöver justera de resurser som allokerats till omindexeringsjobbet.
Om begäran lyckas får du statuskoden 201 Skapad utöver en Parameters
resurs i svaret.
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
}
]
}
Kör ett omindexeringsjobb mot en specifik anpassad sökparameter
Om du vill köra ett omindexeringsjobb mot en specifik anpassad sökparameter använder du följande POST
anrop med den JSON-formaterade resursen i begärandetexten Parameters
.
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.}"
}
]
}
Kommentar
Om du vill kontrollera statusen för eller avbryta ett omindexeringsjobb behöver du indexera om ID:t. Det här är värdet "id"
"parameter"
för svaret. I föregående exempel skulle ID:t för omindexeringsjobbet vara 560c7c61-2c70-4c54-b86d-c53a9d29495e
.
Så här kontrollerar du status för ett omindexeringsjobb
När du har startat ett omindexeringsjobb kan du kontrollera jobbets status med hjälp av följande anrop.
GET {{FHIR_URL}}/_operations/reindex/{{reindexJobId}}
Här är ett exempelsvar.
{
"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
}
]
}
Följande information visas i föregående svar:
totalResourcesToReindex
: Innehåller det totala antalet resurser som omindexeras i det här jobbet.resourcesSuccessfullyReindexed
: Det totala antalet resurser som redan har indexerats om i det här jobbet.progress
: Indexera om jobbets procent färdigt. Är lika medresourcesSuccessfullyReindexed
/totalResourcesToReindex
x 100.status
: Anger om omindexeringsjobbet placeras i kö, körs, slutförs, misslyckas eller avbryts.resources
: Visar en lista över alla resurstyper som påverkas av omindexera jobbet."resourceReindexProgressByResource (CountReindexed of Count)": Ger ett omindexerat antal av det totala antalet per resurstyp. I de fall där omindexering för en viss resurstyp placeras i kö anges endast Antal.
"searchParams": Visar url:en för sökparametrarna som påverkas av omindexeringsjobbet.
Ta bort ett omindexera jobb
Om du behöver avbryta ett omindexera jobb använder du ett DELETE
anrop och anger jobb-ID:t för omindex.
DELETE {{FHIR URL}}/_operations/reindex/{{reindexJobId}}
Prestandaöverväganden
Ett omindexera jobb kan vara ganska prestandaintensivt. FHIR-tjänsten erbjuder begränsningskontroller som hjälper dig att hantera hur ett omindexera jobb körs i databasen.
Kommentar
Det är inte ovanligt att ett omindexeringsjobb körs i flera dagar på stora datauppsättningar.
Nedan visas en tabell som beskriver tillgängliga parametrar, standardvärden och rekommenderade intervall för att kontrollera omindexering av jobbberäkningsresurser. Du kan använda dessa parametrar för att antingen påskynda processen (använda mer beräkning) eller sakta ned processen (använd mindre beräkning).
Parameter | Beskrivning | Standard | Tillgängligt intervall |
---|---|---|---|
QueryDelayIntervalInMilliseconds |
Fördröjningen mellan varje batch med resurser som startas under omindexeringsjobbet. Ett mindre tal påskyndar jobbet medan ett större tal saktar ned det. | 500 MS (,5 sekunder) | 50 till 500000 |
MaximumResourcesPerQuery |
Det maximala antalet resurser som ingår i batchen som ska indexeras om. | 100 | 1-5000 |
MaximumConcurrency |
Antalet batchar som görs åt gången. | 1 | 1-10 |
Om du vill använda någon av de föregående parametrarna kan du skicka dem till resursen Parameters
när du skickar den första POST
begäran om att starta ett omindexeringsjobb.
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "maximumConcurrency",
"valueInteger": "3"
},
{
"name": "queryDelayIntervalInMilliseconds",
"valueInteger": "1000"
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueInteger": "1"
}
]
}
Nästa steg
I den här artikeln har du lärt dig hur du utför ett omindexera jobb i din FHIR-tjänst. Information om hur du definierar anpassade sökparametrar finns i
Kommentar
FHIR® är ett registrerat varumärke som tillhör HL7 och används med tillstånd av HL7.