このページでは、ポイントインタイム リカバリ(PITR)を使用して、HL7v2 ストア内の HL7v2 メッセージを過去 21 日以内の状態に復元する方法について説明します。PITR を使用して、HL7v2 メッセージが誤って削除されるなどの不要な変更から復元できます。
始める前に
PITR リクエストは高度なオペレーション リクエストに分類され、それに応じて課金されます。PITR を使用する前に、高度なオペレーション リクエストの料金を確認してください。
復元ワークフロー
本番環境の復元が期待どおりに実行されるように、まずドライランを実行します。ドライランでは、復元する HL7v2 メッセージの ID を含む 1 つ以上のファイルが出力されます。本番環境での復元を再度実行する前に、出力ファイルの正確性を確認します。
特定の 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 形式を使用します。2 番目の部分に時刻を指定し、タイムゾーンを加えます(例: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 Explorer
リクエスト本文をコピーして、メソッドのリファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。このツールにリクエスト本文を貼り付け、その他の必須フィールドに入力して、[Execute] をクリックします。
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 Explorer
メソッド リファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。必須フィールドを入力して、[Execute] をクリックします。
"done": true
が含まれている場合、長時間実行オペレーションは終了しています。
ドライランの出力ファイルを表示する
各ドライランは、復元する HL7v2 メッセージの ID とタイプを含む 1 つ以上のファイルを出力します。ファイルは、送信先の 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 形式を使用します。2 番目の部分に時刻を指定し、タイムゾーンを加えます(例: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 Explorer
リクエスト本文をコピーして、メソッドのリファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。このツールにリクエスト本文を貼り付け、その他の必須フィールドに入力して、[Execute] をクリックします。
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 Explorer
メソッド リファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。必須フィールドを入力して、[Execute] をクリックします。
"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 ストアが 1 つ以上の長時間実行オペレーション(LRO)によって変更された場合は、フィルタで LRO ID を指定して、HL7v2 ストアを以前の状態に復元できます。たとえば、インポート オペレーションで HL7v2 メッセージをインポートする前の状態に HL7v2 ストアを復元できます。
hl7V2Stores.rollback
リクエストを送信するときに、RollbackHL7MessagesFilteringFields
オブジェクトで LRO ID を指定します。
Cloud Healthcare API データセットで LRO ID を一覧表示して表示する方法については、LRO の一覧表示をご覧ください。