このページでは、探索と分析のために FHIR リソースを一括で BigQuery にエクスポートする方法について説明します。エクスポート オペレーションでは、FHIR ストア内の FHIR リソースタイプごとに 1 つの BigQuery テーブルが作成されます。
クエリのパフォーマンスを向上させ、コストを削減するには、FHIR リソースをパーティション分割テーブルにエクスポートすることを検討してください。手順については、パーティション分割テーブルへの FHIR リソースのエクスポートをご覧ください。
スケジュールに従って FHIR リソースをエクスポートする場合は、データを増分エクスポートすることを検討してください。手順については、増分エクスポートをご覧ください。
BigQuery の権限を設定する
FHIR リソースを BigQuery にエクスポートする前に、Cloud Healthcare Service Agent のサービス アカウントに追加の権限を付与する必要があります。詳しくは、FHIR ストアの BigQuery 権限をご覧ください。
エクスポートの動作を理解する
エクスポート オペレーションの動作は、次の要素によって異なります。
- 宛先テーブルが存在するかどうか。
force
フィールドを設定するかどうか。WriteDisposition
で列挙型を指定するかどうか。列挙型を指定する場合は、force
フィールドを設定しないでください。
それぞれの場合の動作は次のようになります。
- 宛先テーブルが存在し、
force
がtrue
に設定されている場合: エクスポート オペレーションによって既存のテーブルが上書きされます。 - 宛先テーブルが存在し、
force
がfalse
に設定されている: エラーが発生します。 - 宛先テーブルが存在しない場合:
force
フィールドを指定するかどうかにかかわらず、エクスポート オペレーションによって新しいテーブルが作成されます。 宛先テーブルが存在し、
WriteDisposition
がWRITE_TRUNCATE
またはWRITE_APPEND
に設定されている場合: エクスポート オペレーションはエラーを返すのではなく成功します。
このオペレーションでは、FHIR ストア内のリソースタイプごとに 1 つの BigQuery テーブルが出力されます。
FHIR リソースを一括エクスポートする
次のサンプルは、FHIR リソースを BigQuery テーブルにエクスポートする方法を示しています。
BigQuery の宛先を指定する場合は、完全修飾された URI を使用します。
bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID
Console
Google Cloud コンソールを使用して FHIR リソースを BigQuery にエクスポートするには、次の手順を行います。
Google Cloud コンソールで、[データセット] ページに移動します。
エクスポートするデータを含む FHIR ストアがあるデータセットをクリックします。
FHIR ストアと同じ行で [アクション] リストを開き、[エクスポート] を選択します。
表示された [FHIR リソースのエクスポート] ページで、[宛先の選択] セクションを見つけます。[BigQuery テーブル] を選択します。
[宛先テーブルの書き込み処理] セクションで、次のいずれかのオプションを選択して、エクスポート オペレーションの動作を指定します。
- 宛先テーブルが空の場合にのみデータをエクスポートする: これは、
WriteDisposition
でWRITE_EMPTY
列挙型を選択することと同じです。 - 宛先テーブルにデータを追加する: これは、
WriteDisposition
でWRITE_APPEND
列挙型を選択することと同じです。 - FHIR リソースを書き込む前に、宛先テーブル内の既存のデータをすべて消去する: これは、
WriteDisposition
でWRITE_TRUNCATE
列挙型を選択することと同じです。
- 宛先テーブルが空の場合にのみデータをエクスポートする: これは、
[FHIR エクスポート構成] セクションで、[参照] をクリックして BigQuery プロジェクトとデータセットを選択します。
[スキーマタイプ] プルダウンで、BigQuery テーブルの出力スキーマを選択します。次のスキーマを使用できます。
- アナリティクス。SQL on FHIR ドキュメントに基づくスキーマ。BigQuery ではテーブルあたり 10,000 列しか許容されないため、
Parameters.parameter.resource
、Bundle.entry.resource
、Bundle.entry.response.outcome
の各フィールドに対してはスキーマは生成されません。 - アナリティクス V2。次のサポートが追加されている、アナリティクス スキーマと類似したスキーマ。アナリティクス V2 スキーマは、アナリティクス スキーマよりも多く宛先テーブルの領域を使用します。
- アナリティクス。SQL on FHIR ドキュメントに基づくスキーマ。BigQuery ではテーブルあたり 10,000 列しか許容されないため、
[Recursive Structure Depth] スライダーで深度レベルを選択して、出力スキーマ内のすべての再帰構造の深度を設定します。デフォルトでは、再帰的深度は 2 です。
詳細については、
recursiveStructureDepth
をご覧ください。[エクスポート] をクリックして、FHIR リソースを BigQuery にエクスポートします。
- オペレーションのステータスを追跡するには、[オペレーション] タブをクリックします。オペレーションが完了すると、次の状況が表示されます。
- [長時間実行オペレーションのステータス] セクションでは、[OK] の見出しの下に、緑色のチェックマークが表示されます。
- [概要] セクションでは、オペレーション ID と同じ行に緑色のチェックマークと [OK] インジケーターが表示されます。
gcloud
FHIR リソースを BigQuery にエクスポートするには、gcloud healthcare fhir-stores export bq
コマンドを実行します。
FHIR リソースをエクスポートします。
後述のコマンドデータを使用する前に、次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクトの ID
- LOCATION: データセットの場所
- DATASET_ID: FHIR ストアの親データセット
- FHIR_STORE_ID: FHIR ストア ID
- BIGQUERY_DATASET_ID: FHIR リソースをエクスポートする既存の BigQuery データセットの名前
- SCHEMA_TYPE:
SchemaType
の値。次の値のいずれかを使用できます。analytics
: SQL on FHIR ドキュメントに基づくスキーマ。BigQuery ではテーブルあたり 10,000 列しか許容されないため、Parameters.parameter.resource
、Bundle.entry.resource
、Bundle.entry.response.outcome
の各フィールドに対してはスキーマは生成されません。analytics_v2
。analytics
と類似したスキーマで、次のサポートが追加されています。analytics-v2
は、宛先テーブル内のスペースをanalytics
より多く使用します。
- WRITE_DISPOSITION:
WriteDisposition
の値。次の値のいずれかを使用できます。write-empty
: 宛先 BigQuery テーブルが空の場合にのみ、データをエクスポートします。write-truncate
: FHIR リソースを書き込む前に、BigQuery テーブル内の既存のデータをすべて消去します。write-append
: 宛先 BigQuery テーブルにデータを追加します。
- FHIR_RESOURCE_TYPE: オプションのフィールド。カンマ区切りの 1 つ以上の FHIR リソースタイプを指定して、それらのタイプの FHIR リソースのみをエクスポートします。
- SINCE_TIMESTAMP: オプションのフィールド。特定の時間以降に更新された FHIR リソースのみをエクスポートするには、
YYYY-MM-DDThh:mm:ss.sss+zz:zz
の形式で値を指定します。 2 番目の部分に時刻を指定し、タイムゾーンを加えます。たとえば、2015-02-07T13:28:17.239+02:00
と2017-01-01T00:00:00Z
は有効な時刻です。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud healthcare fhir-stores export bq FHIR_STORE_ID \ --location=LOCATION \ --dataset=DATASET_ID \ --bq-dataset=bq://PROJECT_ID.BIGQUERY_DATASET_ID \ --schema-type=SCHEMA_TYPE \ --write-disposition=WRITE_DISPOSITION \ --resource-type=FHIR_RESOURCE_TYPE \ --since=SINCE_TIMESTAMP
Windows(PowerShell)
gcloud healthcare fhir-stores export bq FHIR_STORE_ID ` --location=LOCATION ` --dataset=DATASET_ID ` --bq-dataset=bq://PROJECT_ID.BIGQUERY_DATASET_ID ` --schema-type=SCHEMA_TYPE ` --write-disposition=WRITE_DISPOSITION ` --resource-type=FHIR_RESOURCE_TYPE ` --since=SINCE_TIMESTAMP
Windows(cmd.exe)
gcloud healthcare fhir-stores export bq FHIR_STORE_ID ^ --location=LOCATION ^ --dataset=DATASET_ID ^ --bq-dataset=bq://PROJECT_ID.BIGQUERY_DATASET_ID ^ --schema-type=SCHEMA_TYPE ^ --write-disposition=WRITE_DISPOSITION ^ --resource-type=FHIR_RESOURCE_TYPE ^ --since=SINCE_TIMESTAMP
name
フィールドにオペレーションの名前を出力します。OPERATION_ID
の値をメモします。この値は次の手順で必要になります。レスポンス
Request issued for: [FHIR_STORE_ID] Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID] to complete...⠏ name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
オペレーションの詳細を表示するには、
gcloud healthcare operations describe
を実行してレスポンスの OPERATION_ID を指定します。後述のコマンドデータを使用する前に、次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクトの ID
- DATASET_ID: データセット ID
- LOCATION: データセットの場所
- OPERATION_ID: 長時間実行オペレーションから返された ID
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud healthcare operations describe OPERATION_ID \ --project=PROJECT_ID \ --dataset=DATASET_ID \ --location=LOCATION
Windows(PowerShell)
gcloud healthcare operations describe OPERATION_ID ` --project=PROJECT_ID ` --dataset=DATASET_ID ` --location=LOCATION
Windows(cmd.exe)
gcloud healthcare operations describe OPERATION_ID ^ --project=PROJECT_ID ^ --dataset=DATASET_ID ^ --location=LOCATION
次のようなレスポンスが返されます。
レスポンス
done: true // If there were any errors, an `error` field displays instead of a `response` field. // See Troubleshooting long-running operations for a list of response codes. error: ERROR code: ERROR_CODE message: DESCRIPTION metadata: '@type': 'type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata' apiMethodName: 'google.cloud.healthcare.v1.fhir.FhirStoreService.ExportResources_bq' counter: success: 'SUCCESS_COUNT' // If there were any failures, they display in the `failure` field. failure: 'FAILURE_COUNT' createTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ' endTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ' logsUrl: https://console.cloud.google.com/CLOUD_LOGGING_URL name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID // The `response` field only displays if there were no errors. response: '@type': 'type.googleapis.com/google.cloud.healthcare.v1.fhir.ExportResourcesResponse'
REST
FHIR リソースを BigQuery にエクスポートするには、projects.locations.datasets.fhirStores.export
メソッドを使用します。
FHIR リソースをエクスポートします。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクトの ID
- LOCATION: データセットの場所
- DATASET_ID: FHIR ストアの親データセット
- FHIR_STORE_ID: FHIR ストア ID
- BIGQUERY_DATASET_ID: FHIR リソースをエクスポートする既存の BigQuery データセットの名前
- SCHEMA_TYPE:
SchemaType
の値。次の値のいずれかを使用できます。ANALYTICS
: SQL on FHIR ドキュメントに基づくスキーマ。BigQuery ではテーブルあたり 10,000 列しか許容されないため、Parameters.parameter.resource
、Bundle.entry.resource
、Bundle.entry.response.outcome
の各フィールドに対してはスキーマは生成されません。ANALYTICS_V2
。ANALYTICS
と類似したスキーマで、次のサポートが追加されています。
.ANALYTICS_V2
は、宛先テーブル内のスペースをANALYTICS
より多く使用します。
- WRITE_DISPOSITION:
WriteDisposition
の値。次の値のいずれかを使用できます。WRITE_EMPTY
: 宛先 BigQuery テーブルが空の場合にのみ、データをエクスポートします。WRITE_TRUNCATE
: FHIR リソースを書き込む前に、BigQuery テーブル内の既存のデータをすべて消去します。WRITE_APPEND
: 宛先 BigQuery テーブルにデータを追加します。
- FHIR_RESOURCE_TYPE: オプションのフィールド。カンマ区切りの 1 つ以上の FHIR リソースタイプを指定して、それらのタイプの FHIR リソースのみをエクスポートします。
- SINCE_TIMESTAMP: オプションのフィールド。特定の時間以降に更新された FHIR リソースのみをエクスポートするには、
YYYY-MM-DDThh:mm:ss.sss+zz:zz
の形式で値を指定します。 2 番目の部分に時刻を指定し、タイムゾーンを加えます。たとえば、2015-02-07T13:28:17.239+02:00
と2017-01-01T00:00:00Z
は有効な時刻です。
リクエストの本文(JSON):
{ "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", }, "writeDisposition": "WRITE_DISPOSITION" }, "_type": "FHIR_RESOURCE_TYPE", "_since": "SINCE_TIMESTAMP" }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を
request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。cat > request.json << 'EOF' { "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", }, "writeDisposition": "WRITE_DISPOSITION" }, "_type": "FHIR_RESOURCE_TYPE", "_since": "SINCE_TIMESTAMP" } 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/fhirStores/FHIR_STORE_ID:export"PowerShell
リクエスト本文を
request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。@' { "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", }, "writeDisposition": "WRITE_DISPOSITION" }, "_type": "FHIR_RESOURCE_TYPE", "_since": "SINCE_TIMESTAMP" } '@ | 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/fhirStores/FHIR_STORE_ID:export" | Select-Object -Expand ContentAPI Explorer
リクエスト本文をコピーして、メソッドのリファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。このツールにリクエスト本文を貼り付け、その他の必須フィールドに入力して、[Execute] をクリックします。
OPERATION_ID
の値をメモします。この値は次の手順で必要になります。projects.locations.datasets.operations.get
メソッドを使用して、長時間実行オペレーションのステータスを取得します。リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクトの ID
- DATASET_ID: データセット ID
- LOCATION: データセットの場所
- 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
が含まれている場合、長時間実行オペレーションは終了しています。
パーティション分割テーブルへの FHIR リソースのエクスポート
FHIR リソースを BigQuery パーティション分割テーブルにエクスポートするには、FHIR ストアで lastUpdatedPartitionConfig
フィールドに TimePartitioning
列挙型を構成します。
パーティション分割テーブルは、BigQuery の時間単位のパーティション分割テーブルと同様に動作します。パーティション分割テーブルには lastUpdated
という名前の列が追加されます。これは、FHIR リソースの meta.lastUpdated
フィールドから生成された meta.lastUpdated
列のコピーです。BigQuery は、lastUpdated
列を使用して、時間、日、月、年でテーブルをパーティション分割します。
パーティションの粒度を選択する方法に関する推奨事項については、日単位、時間単位、月単位、年単位によるパーティショニングを選択するをご覧ください。
パーティション分割されていない既存の BigQuery テーブルをパーティション分割テーブルに変換することはできません。患者リソースの変更をパーティション分割されていない Patients
テーブルにエクスポートし、後で同じ BigQuery データセットにエクスポートするテーブル パーティショニングを設定した新しい FHIR ストアを作成した場合、Cloud Healthcare API は引き続きパーティション分割されていない Patients
テーブルにエクスポートします。パーティション分割テーブルの使用を開始するには、既存の Patients
テーブルを削除するか、異なる BigQuery データセットを使用します。
既存の FHIR ストア構成にパーティショニングを追加しても、既存のパーティション分割されていないテーブルに依然としてエクスポートできます。ただし、パーティショニングは新しいテーブルにのみ適用されます。
次のサンプルは、FHIR リソースを BigQuery のパーティション分割テーブルにエクスポートする方法を示しています。
Console
Google Cloud コンソールと gcloud CLI では、この操作はサポートされていません。代わりに、curl
、PowerShell、またはご希望の言語を使用してください。
gcloud
Google Cloud コンソールと gcloud CLI では、この操作はサポートされていません。代わりに、curl
、PowerShell、またはご希望の言語を使用してください。
REST
FHIR リソースを BigQuery のパーティション分割テーブルにエクスポートするには、projects.locations.datasets.fhirStores.export
メソッドを使用します。
FHIR リソースをエクスポートします。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクトの ID
- LOCATION: データセットの場所
- DATASET_ID: FHIR ストアの親データセット
- FHIR_STORE_ID: FHIR ストア ID
- BIGQUERY_DATASET_ID: FHIR リソースをエクスポートする既存の BigQuery データセットの名前
- SCHEMA_TYPE:
SchemaType
の値。次の値のいずれかを使用できます。ANALYTICS
: SQL on FHIR ドキュメントに基づくスキーマ。BigQuery ではテーブルあたり 10,000 列しか許容されないため、Parameters.parameter.resource
、Bundle.entry.resource
、Bundle.entry.response.outcome
の各フィールドに対してはスキーマは生成されません。ANALYTICS_V2
。ANALYTICS
と類似したスキーマで、次のサポートが追加されています。
.ANALYTICS_V2
は、宛先テーブル内のスペースをANALYTICS
より多く使用します。
- TIME_PARTITION_TYPE: エクスポートされた FHIR リソースを分割する粒度。次の値のいずれかを使用できます。
HOUR
: 時間単位でデータを分割するDAY
: 日付単位でデータを分割するMONTH
: 月単位でデータを分割するYEAR
: 年単位でデータを分割する
- WRITE_DISPOSITION:
WriteDisposition
の値。次の値のいずれかを使用できます。WRITE_EMPTY
: BigQuery テーブルが空の場合にのみデータをエクスポートします。WRITE_TRUNCATE
: DICOM インスタンスを書き込む前に、BigQuery テーブル内の既存のデータをすべて消去します。WRITE_APPEND
: BigQuery テーブルにデータを追加します。
リクエストの本文(JSON):
{ "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", "lastUpdatedPartitionConfig": { "type": "TIME_PARTITION_TYPE" } }, "writeDisposition": "WRITE_DISPOSITION" } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を
request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。cat > request.json << 'EOF' { "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", "lastUpdatedPartitionConfig": { "type": "TIME_PARTITION_TYPE" } }, "writeDisposition": "WRITE_DISPOSITION" } } 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/fhirStores/FHIR_STORE_ID:export"PowerShell
リクエスト本文を
request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。@' { "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", "lastUpdatedPartitionConfig": { "type": "TIME_PARTITION_TYPE" } }, "writeDisposition": "WRITE_DISPOSITION" } } '@ | 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/fhirStores/FHIR_STORE_ID:export" | Select-Object -Expand ContentAPI Explorer
リクエスト本文をコピーして、メソッドのリファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。このツールにリクエスト本文を貼り付け、その他の必須フィールドに入力して、[Execute] をクリックします。
次のような JSON レスポンスが返されます。
projects.locations.datasets.operations.get
メソッドを使用して、長時間実行オペレーションのステータスを取得します。リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクトの ID
- DATASET_ID: データセット ID
- LOCATION: データセットの場所
- 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
が含まれている場合、長時間実行オペレーションは終了しています。
パーティション分割テーブルをクエリする
パーティション分割テーブルに対するクエリ実行時のクエリ費用を削減するには、WHERE
句を使用して時間単位でフィルタします。
たとえば、PartitionType
列挙型を DAY
に設定するとします。特定の日付に更新された Patient リソースの Patients
テーブルをクエリするには、次のクエリを実行します。
SELECT * FROM `PROJECT_ID.BIGQUERY_DATASET.Patients` WHERE DATE(lastUpdated) = 'YYYY-MM-DD'
増分エクスポート
タイムスタンプを指定して、前回正常にエクスポートされた以降に FHIR ストアに追加された FHIR リソースのみをエクスポートできます。これにより、パフォーマンスが向上し、FHIR ストア全体を再エクスポートするための費用が発生することを回避できます。また、エクスポートされたデータは常に最新の状態になります。
fhirStores.export
を呼び出すときに、_since
フィールドにタイムスタンプを指定します。
BigQuery で FHIR データの照会と分析を行う
FHIR リソースを BigQuery にエクスポートした後のエクスポートされたデータのクエリ方法と分析方法の詳細については、BigQuery での FHIR データの分析ソリューションをご覧ください。このソリューションは、FHIR での Synthea™ Generated Synthetic Data 一般公開データセットを使用しています。このデータセットには、Synthea™ と FHIR 形式で生成された 100 万を超える合成患者レコードがホストされています。
FHIR エクスポート リクエストのトラブルシューティング
FHIR エクスポート リクエスト中にエラーが発生した場合、そのエラーは Cloud Logging に記録されます。詳細については、Cloud Logging でのエラーログの表示をご覧ください。
オペレーション全体がエラーで返る場合は、長時間実行オペレーションのトラブルシューティングをご覧ください。
列を NULLABLE から REPEATED に変換できません
このエラーは、拡張が繰り返された場合に発生します。このエラーを解決するには、ANALYTICS_V2
スキーマ タイプを使用します。ANALYTICS_V2
を使用している場合は、2 つの拡張機能の競合、または拡張機能と別のフィールドの競合が発生する可能性があります。
列名は、拡張機能の URL の最後の /
文字の後のテキストから生成されます。拡張機能の URL の末尾が /resource_field name
のような値の場合、競合が発生する可能性があります。\
このエラーが再発しないようにするには、フィールド名が入力するリソース フィールドと同じである拡張機能を使用しないでください。
次のステップ
- BigQuery のデータ ガバナンスとセキュリティの詳細については、データ セキュリティとデータ ガバナンスの概要をご覧ください。