BigQuery로 FHIR 리소스 변경사항 스트리밍

이 페이지에서는 FHIR 저장소에서 FHIR 리소스가 생성, 업데이트, 패치 또는 삭제될 때마다 BigQuery로 리소스 변경사항을 내보내도록 Cloud Healthcare API를 구성하는 방법을 설명합니다.

BigQuery 권한 설정

FHIR 리소스 변경사항을 BigQuery로 스트리밍하려면 Cloud Healthcare 서비스 에이전트 서비스 계정에 추가 권한을 부여해야 합니다. 자세한 내용은 FHIR 저장소 BigQuery 권한을 참조하세요.

FHIR 리소스 변경사항 스트리밍

다음 샘플은 FHIR 리소스 변경사항을 BigQuery 데이터 세트로 스트리밍하는 방법을 보여줍니다.

자세한 내용은 FHIR 저장소 리소스의 streamConfigs 필드를 참조하세요.

curl

BigQuery 스트리밍을 사용 설정하려면 FHIR 저장소의 streamConfigs 필드를 업데이트해야 합니다. FHIR 저장소를 업데이트하려면 다음 정보를 사용하여 PATCH 요청을 수행합니다.

  • 상위 데이터 세트
  • FHIR 저장소
  • BigQuery 데이터 세트
  • BigQuery 프로젝트
  • 업데이트 마스크
  • 액세스 토큰

다음 샘플은 curl을 사용하는 PATCH 요청을 보여줍니다.

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'streamConfigs': [
        {
          'bigqueryDestination': {
            'datasetUri': 'bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID',
            'schemaConfig': {
              'schemaType': 'ANALYTICS'
            }
          }
        }
      ]
    }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=streamConfigs"

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  'streamConfigs': [
   {
     'bigqueryDestination': {
       'datasetUri': 'bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID',
       'schemaConfig': {
         'schemaType': 'ANALYTICS'
       }
     }
   }
  ]
}

BigQuery 스트리밍을 구성하면 Cloud Healthcare API는 FHIR 리소스가 생성, 업데이트, 패치 또는 삭제될 때마다 BigQuery 테이블에 새 행을 삽입합니다.

PowerShell

BigQuery 스트리밍을 사용 설정하려면 FHIR 저장소의 streamConfigs 필드를 업데이트해야 합니다. FHIR 저장소를 업데이트하려면 다음 정보를 사용하여 PATCH 요청을 수행합니다.

  • 상위 데이터 세트
  • FHIR 저장소
  • BigQuery 데이터 세트
  • BigQuery 프로젝트
  • 업데이트 마스크
  • 액세스 토큰

다음 샘플은 Windows PowerShell을 사용한 PATCH 요청을 보여줍니다.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Patch `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
      'streamConfigs': [
        {
          'bigqueryDestination': {
            'datasetUri': 'bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID',
            'schemaConfig': {
              'schemaType': 'ANALYTICS'
            }
          }
        }
      ]
  }" `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=streamConfigs" | Select-Object -Expand Content

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  'streamConfigs': [
   {
     'bigqueryDestination': {
       'datasetUri': 'bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID',
       'schemaConfig': {
         'schemaType': 'ANALYTICS'
       }
     }
   }
  ]
}

BigQuery 스트리밍을 구성하면 Cloud Healthcare API는 FHIR 리소스가 생성, 업데이트, 패치 또는 삭제될 때마다 BigQuery 테이블에 새 행을 삽입합니다.

FHIR 스트리밍 문제해결

리소스 변경사항이 BigQuery로 전송될 때 오류가 발생하면 오류가 Cloud Logging에 로깅됩니다. 자세한 내용은 Cloud Logging에서 오류 로그 보기를 참조하세요.