このページでは、探索と分析のために FHIR リソースを BigQuery にエクスポートする方法について説明します。 エクスポート オペレーションでは、FHIR ストア内の FHIR リソースタイプごとに 1 つの BigQuery テーブルを出力します。
クエリのパフォーマンスを向上させ、コストを削減するには、BigQuery ストリーミングをパーティション分割テーブルに構成します。手順については、パーティション分割テーブルに FHIR リソースをエクスポートするをご覧ください。
BigQuery の権限を設定する
FHIR リソースを BigQuery にエクスポートする前に、Cloud Healthcare Service Agent のサービス アカウントに追加の権限を付与する必要があります。詳しくは、FHIR ストアの BigQuery 権限をご覧ください。
FHIR リソースのエクスポート
次のサンプルは、FHIR リソースを BigQuery テーブルにエクスポートする方法を示しています。
BigQuery の宛先を設定するときは、次のように完全修飾された URI を使用します。
bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID
エクスポート オペレーションの動作は、以下によって異なります。
- 宛先テーブルがすでに存在するかどうか。
force
フィールドを設定するかどうか。WriteDisposition
で列挙型を指定するかどうか。列挙型を指定する場合は、force
フィールドを設定しないでください。
それぞれの場合の動作は次のようになります。
- 宛先テーブルがすでに存在し、
force
がtrue
に設定されている場合、エクスポート オペレーションにより既存のテーブルが上書きされます。 - 宛先テーブルがすでに存在し、
force
がfalse
に設定されている場合は、エラーが発生します。 - 宛先テーブルが存在しない場合は、
force
フィールドを指定するかどうかにかかわらず、エクスポート オペレーションによって新しいテーブルが作成されます。 WriteDisposition
を使用する場合、宛先テーブルがすでに存在していて空であれば、エクスポート オペレーションはエラーを返すのではなく、正常に実行されます。
このオペレーションでは、FHIR ストア内のリソースタイプごとに 1 つの BigQuery テーブルが出力されます。
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: オプションのフィールド。カンマ区切りの FHIR リソースタイプを 1 つ以上指定して、それらのタイプの 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: オプションのフィールド。カンマ区切りの FHIR リソースタイプを 1 つ以上指定して、それらのタイプの 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'
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 のデータ ガバナンスとセキュリティの詳細については、データ セキュリティとデータ ガバナンスの概要をご覧ください。