Menjalankan pekerjaan pengindeksian ulang
Ada skenario di mana Anda mungkin memiliki parameter pencarian di layanan FHIR® di Azure Health Data Services yang belum diindeks. Skenario ini relevan saat Anda menentukan parameter pencarian kustom Anda sendiri. Hingga parameter pencarian diindeks, parameter tidak dapat digunakan dalam produksi langsung. Artikel ini membahas cara menjalankan pekerjaan pengindeksan ulang untuk mengindeks parameter pencarian kustom apa pun di database layanan FHIR Anda.
Peringatan
Penting bahwa Anda membaca seluruh artikel ini sebelum memulai. Pekerjaan reindex bisa sangat intensif performa. Artikel ini membahas opsi tentang cara membatasi dan mengontrol pekerjaan reindex.
Cara menjalankan pekerjaan reindex
Pekerjaan reindex dapat dijalankan terhadap seluruh database layanan FHIR, dan terhadap parameter pencarian kustom tertentu.
Menjalankan pekerjaan reindex di seluruh database layanan FHIR
Untuk menjalankan pekerjaan reindex, gunakan panggilan berikut POST
dengan sumber daya berformat Parameters
JSON di isi permintaan.
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": []
}
Biarkan bidang kosong (seperti yang "parameter": []
ditunjukkan) jika Anda tidak perlu menyesuaikan sumber daya yang dialokasikan ke pekerjaan indeks ulang.
Jika permintaan berhasil, Anda menerima kode status 201 Dibuat selain Parameters
sumber daya dalam respons.
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
}
]
}
Menjalankan pekerjaan reindex terhadap parameter pencarian kustom tertentu
Untuk menjalankan pekerjaan reindex terhadap parameter pencarian kustom tertentu, gunakan panggilan berikut POST
dengan sumber daya berformat Parameters
JSON di isi permintaan.
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.}"
}
]
}
Catatan
Untuk memeriksa status, atau membatalkan pekerjaan reindex, Anda memerlukan ID indeks ulang. Ini adalah yang "id"
dibawa dalam "parameter"
nilai respons. Dalam contoh sebelumnya, ID untuk pekerjaan reindex adalah 560c7c61-2c70-4c54-b86d-c53a9d29495e
.
Cara memeriksa status pekerjaan reindex
Setelah memulai pekerjaan reindex, Anda dapat memeriksa status pekerjaan menggunakan panggilan berikut.
GET {{FHIR_URL}}/_operations/reindex/{{reindexJobId}}
Contoh respons adalah.
{
"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
}
]
}
Informasi berikut diperlihatkan dalam respons sebelumnya:
totalResourcesToReindex
: Mencakup jumlah total sumber daya yang sedang diindeks ulang dalam pekerjaan ini.resourcesSuccessfullyReindexed
: Jumlah total sumber daya yang telah diindeks ulang dalam pekerjaan ini.progress
: Persentase pekerjaan reindex selesai.resourcesSuccessfullyReindexed
/totalResourcesToReindex
Sama dengan x 100.status
: Menyatakan jika pekerjaan pengindeksan ulang diantrekan, berjalan, selesai, gagal, atau dibatalkan.resources
: Mencantumkan semua jenis sumber daya yang terpengaruh oleh pekerjaan reindex.'resourceReindexProgressByResource (CountReindexed of Count)': Menyediakan jumlah total yang diindeks ulang, per jenis sumber daya. Dalam kasus di mana pengindeksan ulang untuk jenis sumber daya tertentu diantrekan, hanya Hitungan yang disediakan.
'searchParams': Mencantumkan url parameter pencarian yang terpengaruh oleh pekerjaan reindex.
Menghapus pekerjaan pengindeksian ulang
Jika Anda perlu membatalkan pekerjaan reindex, gunakan DELETE
panggilan dan tentukan ID pekerjaan reindex.
DELETE {{FHIR URL}}/_operations/reindex/{{reindexJobId}}
Pertimbangan performa
Pekerjaan reindex bisa sangat intensif performa. Layanan FHIR menawarkan kontrol pembatasan untuk membantu mengelola bagaimana pekerjaan reindex berjalan pada database Anda.
Catatan
Tidak jarang pada himpunan data besar agar pekerjaan reindex berjalan selama ber hari.
Di bawah ini adalah tabel yang menguraikan parameter, default, dan rentang yang direkomendasikan yang tersedia untuk mengontrol sumber daya komputasi pekerjaan reindex. Anda dapat menggunakan parameter ini untuk mempercepat proses (menggunakan lebih banyak komputasi) atau memperlambat proses (gunakan lebih sedikit komputasi).
Parameter | Keterangan | Default | Rentang yang Tersedia |
---|---|---|---|
QueryDelayIntervalInMilliseconds |
Penundaan antara setiap batch sumber daya yang dimulai selama pekerjaan indeks ulang. Jumlah yang lebih kecil mempercepat pekerjaan sementara jumlah yang lebih besar memperlambatnya. | 500 MS (,5 detik) | 50 hingga 500000 |
MaximumResourcesPerQuery |
Jumlah maksimum sumber daya yang disertakan dalam batch yang akan diindeks ulang. | 100 | 1-5000 |
MaximumConcurrency |
Jumlah batch yang dilakukan pada satu waktu. | 1 | 1-10 |
Jika Anda ingin menggunakan salah satu parameter sebelumnya, Anda dapat meneruskannya ke Parameters
sumber daya saat mengirim permintaan awal POST
untuk memulai pekerjaan pengindeksian ulang.
POST {{FHIR_URL}}/$reindex
content-type: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "maximumConcurrency",
"valueInteger": "3"
},
{
"name": "queryDelayIntervalInMilliseconds",
"valueInteger": "1000"
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueInteger": "1"
}
]
}
Langkah berikutnya
Dalam artikel ini, Anda telah mempelajari cara melakukan pekerjaan reindex di layanan FHIR Anda. Untuk mempelajari cara menentukan parameter pencarian kustom, lihat