이 페이지에서는 PITR(point-in-time recovery)을 사용하여 HL7v2 스토어의 HL7v2 메시지를 지난 21일 이내의 상태로 복구하는 방법을 설명합니다. PITR을 사용하면 HL7v2 메시지를 실수로 삭제한 경우와 같은 원치 않는 변경사항을 복구할 수 있습니다.
시작하기 전에
PITR 요청은 고급 작업 요청으로 분류되며 그에 따라 요금이 청구됩니다. PITR을 사용하기 전에 고급 작업 요청의 가격 책정을 검토하세요.
복구 워크플로
프로덕션 복구가 예상대로 실행되도록 하려면 먼저 테스트 실행을 수행합니다. 테스트 실행은 복구할 HL7v2 메시지의 ID가 포함된 하나 이상의 파일을 출력합니다. 출력 파일이 정확한지 확인한 후에 프로덕션에서 복구를 다시 실행하세요.
특정 HL7v2 메시지를 복구하거나 필터링 기준에 따라 HL7v2 메시지를 복구하려면 필터를 지정합니다.
테스트 실행
프로덕션에서 HL7v2 메시지를 복구하기 전에 테스트 실행을 수행합니다.
다음 샘플은 hl7V2Stores.rollback
메서드를 사용하여 테스트 실행을 수행하는 방법을 보여줍니다.
REST
HL7v2 메시지를 복구합니다.
테스트 실행을 수행하려면
force
필드가false
인지 확인합니다.요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트의 IDLOCATION
: 데이터 세트 위치DATASET_ID
: HL7v2 저장소의 상위 데이터 세트HL7V2_STORE_ID
: HL7v2 저장소 IDRECOVERY_TIMESTAMP
: 지난 21일 이내의 복구 지점. RFC 3339 형식을 사용합니다. 시간을 초 단위로 지정하고 시간대를 포함합니다(예:2015-02-07T13:28:17.239+02:00
또는2017-01-01T00:00:00Z
).CLOUD_STORAGE_BUCKET
: 출력 파일이 기록되는 Cloud Storage 폴더 또는 버킷의 정규화된 URI
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을
request.json
파일에 저장합니다. 터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.cat > request.json << 'EOF' { "rollbackTime": "RECOVERY_TIMESTAMP", "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET", "force": "false" } EOF
그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:rollback"PowerShell
요청 본문을
request.json
파일에 저장합니다. 터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.@' { "rollbackTime": "RECOVERY_TIMESTAMP", "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET", "force": "false" } '@ | Out-File -FilePath request.json -Encoding utf8
그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:rollback" | Select-Object -Expand ContentAPI 탐색기
요청 본문을 복사하고 메서드 참조 페이지를 엽니다. 페이지 오른쪽에 API 탐색기 패널이 열립니다. 이 도구를 사용하여 요청을 보낼 수 있습니다. 요청 본문을 이 도구에 붙여넣고 다른 필수 필드를 입력한 후 실행을 클릭합니다.
OPERATION_ID
의 값을 확인합니다. 다음 단계에서 이 값이 필요합니다.projects.locations.datasets.operations.get
메서드를 사용하여 장기 실행 작업의 상태를 가져옵니다.요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트의 IDDATASET_ID
: 데이터 세트 IDLOCATION
: 데이터 세트 위치OPERATION_ID
: 장기 실행 작업에서 반환된 ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI 탐색기
메서드 참조 페이지를 엽니다. 페이지 오른쪽에 API 탐색기 패널이 열립니다. 이 도구를 사용하여 요청을 보낼 수 있습니다. 모든 필수 필드를 입력하고 실행을 클릭합니다.
"done": true
가 포함되었으면 장기 실행 작업이 완료된 것입니다.
테스트 실행 출력 파일 보기
각 테스트 실행은 복구할 HL7v2 메시지의 ID 및 유형이 포함된 하나 이상의 파일을 출력합니다. 대상 Cloud Storage 버킷의 rollback_messages
폴더에 있는 하위 폴더에 파일이 생성됩니다. 하위 폴더 이름은 hl7V2Stores.rollback
응답에서 반환되는 LRO ID입니다. 파일을 확인하고 복구가 예상대로 작동하는지 확인하려면 객체 메타데이터 보기를 참조하세요.
파일 수는 복구된 HL7v2 메시지 수에 비례합니다.
파일 이름은 trial-NUMBER-of-TOTAL_NUMBER.txt
형식을 사용합니다. 여기서 NUMBER
는 파일 번호이고 TOTAL_NUMBER
는 총 파일 수입니다.
테스트 실행 출력 파일 스키마
테스트 실행 복구의 출력 파일에 사용되는 스키마는 다음 표와 같습니다.
MESSAGE_ID |
TIMESTAMP |
---|---|
HL7v2 메시지 ID입니다. | HL7v2 스토어에서 HL7v2 메시지가 생성되었거나 업데이트된 시간입니다. |
프로덕션에서 복구
프로덕션에서 복구하기 전에 테스트 실행을 수행하고 시험 이전 출력 파일을 검사하여 프로덕션 복구가 예상대로 실행되는지 확인합니다.
다음 샘플은 hl7V2Stores.rollback
메서드를 사용하여 프로덕션에서 HL7v2 메시지를 복원하는 방법을 보여줍니다.
REST
HL7v2 메시지를 복구합니다.
force
필드가true
인지 확인합니다.요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트의 IDLOCATION
: 데이터 세트 위치DATASET_ID
: HL7v2 저장소의 상위 데이터 세트HL7V2_STORE_ID
: HL7v2 저장소 IDRECOVERY_TIMESTAMP
: 지난 21일 이내의 복구 지점. RFC 3339 형식을 사용합니다. 시간을 초 단위로 지정하고 시간대를 포함합니다(예:2015-02-07T13:28:17.239+02:00
또는2017-01-01T00:00:00Z
).CLOUD_STORAGE_BUCKET
: 출력 파일이 기록되는 Cloud Storage 폴더 또는 버킷의 정규화된 URI
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을
request.json
파일에 저장합니다. 터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.cat > request.json << 'EOF' { "rollbackTime": "RECOVERY_TIMESTAMP", "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET", "force": "true" } EOF
그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:rollback"PowerShell
요청 본문을
request.json
파일에 저장합니다. 터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.@' { "rollbackTime": "RECOVERY_TIMESTAMP", "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET", "force": "true" } '@ | Out-File -FilePath request.json -Encoding utf8
그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:rollback" | Select-Object -Expand ContentAPI 탐색기
요청 본문을 복사하고 메서드 참조 페이지를 엽니다. 페이지 오른쪽에 API 탐색기 패널이 열립니다. 이 도구를 사용하여 요청을 보낼 수 있습니다. 요청 본문을 이 도구에 붙여넣고 다른 필수 필드를 입력한 후 실행을 클릭합니다.
OPERATION_ID
의 값을 확인합니다. 다음 단계에서 이 값이 필요합니다.projects.locations.datasets.operations.get
메서드를 사용하여 장기 실행 작업의 상태를 가져옵니다.요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트의 IDDATASET_ID
: 데이터 세트 IDLOCATION
: 데이터 세트 위치OPERATION_ID
: 장기 실행 작업에서 반환된 ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI 탐색기
메서드 참조 페이지를 엽니다. 페이지 오른쪽에 API 탐색기 패널이 열립니다. 이 도구를 사용하여 요청을 보낼 수 있습니다. 모든 필수 필드를 입력하고 실행을 클릭합니다.
"done": true
가 포함되었으면 장기 실행 작업이 완료된 것입니다.
프로덕션 복구 출력 파일 보기
프로덕션 복구는 다음 파일을 출력합니다. 대상 Cloud Storage 버킷의 rollback_messages
폴더에 있는 하위 폴더에 파일이 생성됩니다. 하위 폴더 이름은 hl7V2Stores.rollback
응답에서 반환되는 LRO ID입니다. 파일을 보려면 객체 메타데이터 보기를 참조하세요.
success-NUMBER-of-TOTAL_NUMBER.txt
: 성공적으로 복구된 HL7v2 메시지를 포함합니다.fail-NUMBER-of-TOTAL_NUMBER.txt
: 복구에 실패한 HL7v2 메시지를 포함합니다. 실패가 없더라도 빈 파일이 생성됩니다.
파일 이름에서 NUMBER
는 파일 번호이고 TOTAL_NUMBER
는 총 파일 수입니다.
프로덕션 출력 파일 스키마
프로덕션 복구의 성공 및 실패 파일은 다음 스키마를 사용합니다. 오류 파일에는 ERROR_MESSAGE
열이 추가로 포함됩니다.
MESSAGE_ID |
ERROR_MESSAGE (오류 파일만 해당) |
---|---|
HL7v2 메시지 ID입니다. | 오류 파일만 해당. HL7v2 메시지를 복구할 수 없는 이유를 설명합니다. |
필터를 사용하여 HL7v2 스토어를 이전 상태로 복원
HL7v2 스토어가 하나 이상의 장기 실행 작업(LRO)으로 수정된 경우 필터에 LRO ID를 지정하여 HL7v2 스토어를 이전 상태로 복원할 수 있습니다. 예를 들어 HL7v2 스토어를 가져오기 작업으로 HL7v2 메시지를 가져오기 전인 이전 상태로 복원할 수 있습니다.
hl7V2Stores.rollback
요청을 보낼 때 RollbackHL7MessagesFilteringFields
객체에 LRO ID를 지정합니다.
Cloud Healthcare API 데이터 세트의 LRO ID를 나열하고 확인하는 방법에 대한 자세한 내용은 LRO 나열을 참조하세요.