FHIR için Azure API'de reindex işi çalıştırma
Önemli
FHIR İçin Azure API'si 30 Eylül 2026 tarihinde kullanımdan kaldırılacaktır. Bu tarihe kadar Azure Health Data Services FHIR® hizmetine geçiş yapmak için geçiş stratejilerini izleyin. FHIR İçin Azure API'sinin kullanımdan kaldırılması nedeniyle 1 Nisan 2025 tarihinden itibaren yeni dağıtımlara izin verilmeyecektir. Azure Health Data Services FHIR hizmeti , müşterilerin FHIR, DICOM ve MedTech hizmetlerini diğer Azure hizmetleriyle tümleştirmelerle yönetmesine olanak tanıyan FHIR için Azure API'sinin gelişmiş sürümüdür.
FHIR® için Azure API'sinde henüz dizine eklenmemiş arama veya sıralama parametrelerine sahip olabileceğiniz senaryolar vardır. Bu senaryo, kendi arama parametrelerinizi tanımladığınızda geçerlidir. Arama parametresi dizine alınana kadar aramada kullanılamaz. Bu makalede, FHIR hizmet veritabanınızda arama parametrelerini dizine almak için yeniden dizin oluşturma işini çalıştırma işlemi anlatılır.
Uyarı
Başlamadan önce bu makalenin tamamını okumanız önemlidir. Ren geyiği işi çok yoğun performans gerektirir. Bu makale, yeniden dizin oluşturma işini kısıtlama ve denetleme seçeneklerini içerir.
Reindex işi çalıştırma
Bir reindex işi, FHIR hizmet veritabanının tamamına ve belirli özel arama parametrelerine karşı yürütülebilir.
FHIR hizmet veritabanının tamamında reindex işini çalıştırma
Reindex işi çalıştırmak için, istek gövdesinde JSON biçimlendirilmiş Parameters
kaynakla aşağıdaki POST
çağrıyı kullanın.
POST {{FHIR URL}}/$reindex
{
“resourceType”: “Parameters”,
“parameter”: []
}
"parameter": []
Reindex işine ayrılan kaynakları değiştirmeniz gerekmiyorsa alanı boş bırakın (gösterildiği gibi).
İstek başarılı olursa, aşağıdaki örnekte olduğu gibi yanıttaki bir kaynağa ek olarak bir Parameters
201 Oluşturuldu durum kodu alırsınız.
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
}
]
}
Reindex işini belirli bir özel arama parametresine karşı çalıştırma
Belirli bir özel arama parametresinde reindex işi çalıştırmak için, istek gövdesinde JSON biçimli Parameters
kaynakla aşağıdaki POST
çağrıyı kullanın.
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.}"
}
]
}
Not
Yeniden dizin oluşturma işinin durumunu denetlemek veya işi iptal etmek için reindex kimliği gerekir. Bu, yanıtta "parameter"
döndürülen değerde taşınan değerdir"id"
. Yukarıdaki örnekte, reindex işinin kimliği olacaktır 560c7c61-2c70-4c54-b86d-c53a9d29495e
.
Yeniden dizin işinin durumunu denetleme
Bir reindex işi başlattıktan sonra aşağıdaki çağrıyı kullanarak işin durumunu de kontrol edebilirsiniz.
GET {{FHIR URL}}/_operations/reindex/{{reindexJobId}
Aşağıda bir yanıt örneği yer alır.
{
"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
}
]
}
Yanıtta aşağıdaki bilgiler gösterilir.
totalResourcesToReindex
: Bu işte yeniden dizine alınan kaynakların toplam sayısını içerir.resourcesSuccessfullyReindexed
: Bu işte zaten yeniden dizine alınmış olan kaynakların toplam sayısı.progress
: tamamlanan iş yüzde değerini yeniden dizine alma. x 100 olarakresourcesSuccessfullyReindexed
/totalResourcesToReindex
hesaplanır.status
: Yeniden dizinleme işinin kuyruğa alındığını, çalıştığını, tamamlanmasını, başarısız olduğunu veya iptal edileceğini belirtir.resources
: Reindex işinden etkilenen tüm kaynak türlerini listeler.resourceReindexProgressByResource (CountReindexed of Count)
: Kaynak türü başına toplam sayının yeniden dizinlenmiş sayısını sağlar. Belirli bir kaynak türü için yeniden dizinlemenin kuyruğa alındığı durumlarda yalnızca Count sağlanır.searchParams
: Reindex işinden etkilenen arama parametrelerinin URL'sini listeler.
Yeniden dizin oluşturma işini silme
Bir reindex işini iptal etmeniz gerekiyorsa silme çağrısı kullanın ve reindex iş kimliğini belirtin:
Delete {{FHIR URL}}/_operations/reindex/{{reindexJobId}
Performans değerlendirmeleri
Ren geyiği işi oldukça yoğun performans gerektirir. Yeniden dizinleme işinin veritabanınızda nasıl çalıştığını yönetmenize yardımcı olmak için bazı azaltma denetimleri uyguladık.
Not
Bir reindex işinin günler boyunca çalışması büyük veri kümelerinde sık karşılaşılan bir durum değildir. 30.000.000 kaynağı olan bir veritabanı için veritabanının tamamını yeniden dizine alma işleminin 100.000 istek biriminde (RU) 4-5 gün sürdüğünü fark ettik.
Aşağıda, kullanılabilir parametrelerin, varsayılanların ve önerilen aralıkların ana hatlarını içeren bir tablo yer alır. bu parametreleri kullanarak işlemi hızlandırabilir (daha fazla işlem kullanabilir) veya işlemi yavaşlatabilirsiniz (daha az işlem kullanın). Örneğin, reindex işini düşük trafik zamanında çalıştırabilir ve daha hızlı bir şekilde yapmak için işleminizi artırabilirsiniz. Ayrıca ayarları kullanarak işlem kullanımının düşük olduğundan emin olabilir ve arka planda günler boyunca çalışmasını sağlayabilirsiniz.
Parametre | Açıklama | Varsayılan | Kullanılabilir Aralık |
---|---|---|---|
QueryDelayIntervalInMilliseconds | Yeniden dizin oluşturma işi sırasında her bir kaynak grubu arasındaki gecikme. Daha küçük bir sayı işi hızlandırırken, daha yüksek bir sayı da işi yavaşlatır. | 500 MS (.5 saniye) | 50-500000 |
MaximumResourcesPerQuery | Yeniden dizine alınacak kaynak grubuna dahil edilen kaynak sayısı üst sınırı. | 100 | 1-5000 |
MaximumConcurrency | Bir kerede yapılan toplu iş sayısı. | 1 | 1-10 |
targetDataStoreUsagePercentage | Yeniden dizin oluşturma işi için veri deponuzun hangi yüzdesini kullanacağınızı belirtmenize olanak tanır. Örneğin , %50 belirtebilirsiniz ve bu da reindex işinin azure Cosmos DB'deki kullanılabilir RU'ların %50'sini kullanmasını sağlayabilir. | Yok, yani %100'e kadar kullanılabilir. | 0-100 |
Önceki parametrelerden herhangi birini kullanmak istiyorsanız, yeniden dizinleme işini başlattığınızda bunları Parametreler kaynağına geçirebilirsiniz.
{
"resourceType": "Parameters",
"parameter": [
{
"name": "maximumConcurrency",
"valueInteger": "3"
},
{
"name": "targetDataStoreUsagePercentage",
"valueInteger": "20"
},
{
"name": "queryDelayIntervalInMilliseconds",
"valueInteger": "1000"
},
{
"name": "maximumNumberOfResourcesPerQuery",
"valueInteger": "1"
}
]
}
Sonraki adımlar
Bu makalede, yeniden dizin işi başlatmayı öğrendiniz. Reindex işini gerektiren yeni arama parametrelerini tanımlamayı öğrenmek için bkz.