Aracılığıyla paylaş


Yeniden dizin oluşturma işi çalıştırma

Azure Health Veri Hizmetleri'nde FHIR hizmetinde henüz dizine eklenmemiş arama parametrelerine sahip olabileceğiniz senaryolar vardır. Bu senaryo, kendi özel arama parametrelerinizi tanımladığınızda geçerlidir. Arama parametresi dizine alınana kadar canlı üretimde kullanılamaz. Bu makalede, FHIR hizmet veritabanınızda henüz dizine alınmamış özel arama parametrelerini dizine almak için yeniden dizin oluşturma işinin nasıl çalıştırıldığı anlatılır.

Uyarı

Başlamadan önce bu makalenin tamamını okumanız önemlidir. Yeniden dizin oluşturma işi çok yoğun performans gerektiren bir iş olabilir. Bu makalede, yeniden dizin işini kısıtlama ve denetleme seçenekleri açıklanır.

Yeniden dizin oluşturma işini çalıştırma

Reindex işi tüm FHIR hizmet veritabanında ve belirli özel arama parametresinde yürütülebilir.

FHIR hizmet veritabanının tamamında reindex işini çalıştırma

Reindex işini ç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 
content-type: application/fhir+json
{ 

"resourceType": "Parameters",  

"parameter": [] 

}

"parameter": [] Yeniden dizin işine ayrılan kaynakları değiştirmeniz gerekmiyorsa alanı boş bırakın (gösterildiği gibi).

İstek başarılı olursa yanıttaki bir kaynağa ek olarak Parameters201 Oluşturuldu durum kodunu da 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": "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
        }
    ]
}

Reindex işini belirli bir özel arama parametresine karşı çalıştırma

Reindex işini belirli özel arama parametresine karşı ç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 
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.}"
    }
] 

}

Not

Yeniden dizin oluşturma işinin durumunu denetlemek veya işi iptal etmek için reindex kimliği gerekir. Bu, yanıtta döndürülen değerde "parameter" 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

Yeniden dizin oluşturma işini başlattıktan sonra, aşağıdaki çağrıyı kullanarak işin durumunu de kontrol edebilirsiniz:

GET {{FHIR_URL}}/_operations/reindex/{{reindexJobId}}

Örnek yanıt:

{
    "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
        }
    ]
}

Yukarıdaki yanıtta aşağıdaki bilgiler gösterilmiştir:

  • 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. resourcesSuccessfullyReindexed/totalResourcesToReindex Eşittir x 100.

  • status: Yeniden dizinleme işinin kuyruğa alınmış, çalışıyor, tamamlandı, başarısız veya iptal edilmiş olduğunu belirtir.

  • resources: Yeniden dizin oluşturma 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': Yeniden dizin oluşturma işinden etkilenen arama parametrelerinin URL'sini listeler.

Yeniden dizin oluşturma işini silme

Yeniden dizin oluşturma işini iptal etmeniz gerekiyorsa, bir DELETE çağrı kullanın ve yeniden dizin oluşturma işi kimliğini belirtin:

DELETE {{FHIR URL}}/_operations/reindex/{{reindexJobId}}

Performansla ilgili önemli noktalar

Yeniden dizin oluşturma işi performans açısından yoğun olabilir. FHIR hizmeti, veritabanınızda yeniden dizinleme işinin nasıl çalıştığını yönetmenize yardımcı olmak için bazı azaltma denetimleri sunar.

Not

Reindex işinin günler boyunca çalışması büyük veri kümelerinde sık rastlanır bir durum değildir.

Aşağıda, yeniden dizinleme işi işlem kaynaklarını denetlemek için kullanılabilen parametrelerin, varsayılanların ve önerilen aralıkların ana hatlarını içeren bir tablo yer almaktadır. İşlemi hızlandırmak (daha fazla işlem kullanmak) veya işlemi yavaşlatmak (daha az işlem kullanmak) için bu parametreleri kullanabilirsiniz.

Parametre Açıklama Varsayılan Kullanılabilir Aralık
QueryDelayIntervalInMilliseconds Yeniden dizin oluşturma işi sırasında her bir kaynak toplu işleminin başlama gecikmesi. Daha küçük bir sayı işi hızlandırırken, daha büyük bir sayı bunu yavaşlatır. 500 MS (.5 saniye) 50 - 500000
MaximumResourcesPerQuery Yeniden dizine alınacak kaynak grubuna dahil edilen en fazla kaynak sayısı. 100 1-5000
MaximumConcurrency Bir kerede yapılan toplu iş sayısı. 1 1-10

Yukarıdaki parametrelerden herhangi birini kullanmak istiyorsanız, yeniden dizin işini başlatmak için ilk POST isteği gönderdiğinizde bunları Parameters kaynağa geçirebilirsiniz.


POST {{FHIR_URL}}/$reindex 
content-type: application/fhir+json
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "maximumConcurrency",
      "valueInteger": "3"
    },
    {
      "name": "queryDelayIntervalInMilliseconds",
      "valueInteger": "1000"
    },
    {
      "name": "maximumNumberOfResourcesPerQuery",
      "valueInteger": "1"
    }
  ]
}

Sonraki adımlar

Bu makalede, FHIR hizmetinizde reindex işi gerçekleştirmeyi öğrendiniz. Özel arama parametrelerini tanımlamayı öğrenmek için bkz.

FHIR®, HL7'nin tescilli ticari markasıdır ve HL7 izniyle kullanılır.