將 FHIR 資源批次匯出至 BigQuery

本頁面說明如何將 FHIR 資源批次匯出至 BigQuery,以供探索和分析。匯出作業會為 FHIR 存放區中的每個 FHIR 資源類型建立一個 BigQuery 資料表。

如要提升查詢效能並降低成本,建議將 FHIR 資源匯出至分區資料表。如需操作說明,請參閱「將 FHIR 資源匯出至分區資料表」。

如果您定期匯出 FHIR 資源,建議您以遞增方式匯出資料。如需操作說明,請參閱「增量匯出」。

設定 BigQuery 權限

將 FHIR 資源匯出至 BigQuery 前,您必須將額外權限授予 Cloud Healthcare 服務代理程式 服務帳戶。詳情請參閱「FHIR 存放區 BigQuery 權限」。

瞭解匯出行為

匯出作業的行為取決於下列因素:

  • 目的地資料表是否存在。
  • 您是否設定 force 欄位。
  • 是否在 WriteDisposition 中指定列舉。如果指定列舉,請勿設定 force 欄位。

各個情況的行為如下:

  • 目標資料表存在,且 force 設為 true:匯出作業會覆寫現有資料表
  • 目的地資料表存在,且 force 設為 false:發生錯誤
  • 目標資料表不存在:匯出作業會建立新資料表,無論您是否指定 force 欄位
  • 目的地資料表存在,且您將 WriteDisposition 設為 WRITE_TRUNCATEWRITE_APPEND:匯出作業會成功,而不是傳回錯誤

這項作業會為 FHIR 存放區中的每個資源類型輸出一個 BigQuery 資料表。

批次匯出 FHIR 資源

下列範例說明如何將 FHIR 資源匯出至 BigQuery 資料表。

指定 BigQuery 目的地時,請使用完整 URI:

bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID

控制台

如要使用Google Cloud 控制台將 FHIR 資源匯出至 BigQuery,請完成下列步驟:

  1. 在 Google Cloud 控制台中,前往「Datasets」(資料集) 頁面。

    前往「資料集」頁面

  2. 按一下含有 FHIR 儲存庫的資料集,該儲存庫包含您要匯出的資料。

  3. 在 FHIR 儲存庫所在的資料列中,開啟「動作」清單,然後選取「匯出」

  4. 在隨即顯示的「Export FHIR resources」(匯出 FHIR 資源) 頁面中,找到「Select a destination」(選取目的地) 專區。選取「BigQuery 資料表」

  5. 在「目標資料表寫入配置」部分,選取下列其中一個選項,決定匯出作業的行為:

    • 只在目的地資料表空白時匯出資料:這相當於在 WriteDisposition 中選取 WRITE_EMPTY 列舉。
    • 將資料附加至目的地資料表:這相當於在 WriteDisposition 中選取 WRITE_APPEND 列舉。
    • 在寫入 FHIR 資源前清除目的地資料表中的所有現有資料:這等同於在 WriteDisposition 中選取 WRITE_TRUNCATE 列舉。
  6. 在「FHIR 匯出設定」部分,按一下「瀏覽」,選取 BigQuery 專案和資料集。

  7. 在「結構定義類型」下拉式選單中,選取 BigQuery 資料表的輸出結構定義。可用的結構定義如下:

    • Analytics。以 FHIR 的 SQL 文件為基礎的結構定義。由於 BigQuery 每張資料表最多只能有 10,000 個資料欄,因此系統不會為 Parameters.parameter.resourceBundle.entry.resourceBundle.entry.response.outcome 欄位產生結構定義。
    • Analytics V2。類似於 Analytics 結構定義的結構定義,但新增了下列支援:Analytics 第 2 版結構定義在目的地表格中使用的空間,比 Analytics 結構定義更多。

  8. 在「遞迴結構深度」滑桿中選取深度層級,即可為輸出結構定義中的所有遞迴結構設定深度。根據預設,遞迴值為 2。

    詳情請參閱 recursiveStructureDepth

  9. 按一下「匯出」,將 FHIR 資源匯出至 BigQuery。

  10. 如要追蹤作業狀態,請按一下「Operations」(作業) 分頁標籤。作業完成後,會顯示下列指標:
    • 「長時間執行的作業狀態」部分在「OK」標題下方顯示綠色勾號。
    • 「總覽」部分會顯示綠色勾號和「OK」指標,與作業 ID 位於同一列。
    如果發生任何錯誤,請按一下「動作」,然後點選「在 Cloud Logging 中查看詳細資料」

gcloud

如要將 FHIR 資源匯出至 BigQuery,請執行 gcloud healthcare fhir-stores export bq 指令。

  1. 匯出 FHIR 資源。

    使用下方的任何指令資料之前,請先替換以下項目:

    • PROJECT_ID:您的 Google Cloud 專案 ID
    • LOCATION:資料集位置
    • DATASET_ID:FHIR 儲存庫的父項資料集
    • FHIR_STORE_ID:FHIR 儲存庫 ID
    • BIGQUERY_DATASET_ID:現有 BigQuery 資料集的名稱,您要將 FHIR 資源匯出至該資料集
    • SCHEMA_TYPESchemaType 的值。請使用下列其中一個值:
      • analytics. 以 FHIR 上的 SQL 文件為基礎的結構定義。由於 BigQuery 每張資料表最多只能有 10,000 個資料欄,因此系統不會為 Parameters.parameter.resourceBundle.entry.resourceBundle.entry.response.outcome 欄位產生結構定義。
      • analytics_v2。類似於 analytics 的架構,但新增了下列項目的支援:

        analytics-v2analytics 佔用更多目標資料表空間。

    • WRITE_DISPOSITIONWriteDisposition 的值。請使用下列其中一個值:
      • write-empty。只在目的地 BigQuery 資料表空白時匯出資料。
      • write-truncate。在寫入 FHIR 資源前,清除 BigQuery 資料表中的所有現有資料。
      • write-append. 將資料附加至目的地 BigQuery 資料表。
    • FHIR_RESOURCE_TYPE:選填欄位。指定一或多個以半形逗號分隔的 FHIR 資源類型,只匯出這些類型的 FHIR 資源。
    • SINCE_TIMESTAMP:選填欄位。以 YYYY-MM-DDThh:mm:ss.sss+zz:zz 格式指定值,即可只匯出特定時間後更新的 FHIR 資源。指定時間時須精確到秒,並包含時區。舉例來說,2015-02-07T13:28:17.239+02:002017-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
    回應如下。回應會包含長時間執行作業的 ID。 如果方法呼叫可能需要大量時間才能完成,系統就會傳回長時間執行的作業。這個指令會輪詢長期執行作業,然後在匯出完成後,於 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
    

  2. 如要查看作業的詳細資料,請執行 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 方法。

  1. 匯出 FHIR 資源:

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:您的 Google Cloud 專案 ID
    • LOCATION:資料集位置
    • DATASET_ID:FHIR 儲存庫的父項資料集
    • FHIR_STORE_ID:FHIR 儲存庫 ID
    • BIGQUERY_DATASET_ID:現有 BigQuery 資料集的名稱,您要將 FHIR 資源匯出至該資料集
    • SCHEMA_TYPESchemaType 的值。請使用下列其中一個值:
      • ANALYTICS. 以 FHIR 的 SQL 文件為基礎的結構定義。由於 BigQuery 每張資料表最多只能有 10,000 個資料欄,因此系統不會為 Parameters.parameter.resourceBundle.entry.resourceBundle.entry.response.outcome 欄位產生結構定義。
      • ANALYTICS_V2。類似 ANALYTICS 的架構,但新增了下列支援:

        ANALYTICS_V2 在目的地資料表使用的空間比 ANALYTICS

    • WRITE_DISPOSITIONWriteDisposition 的值。請使用下列其中一個值:
      • WRITE_EMPTY。只在目的地 BigQuery 資料表空白時匯出資料。
      • WRITE_TRUNCATE。在寫入 FHIR 資源前,清除 BigQuery 資料表中的所有現有資料。
      • WRITE_APPEND. 將資料附加至目的地 BigQuery 資料表。
    • FHIR_RESOURCE_TYPE:選填欄位。指定一或多個以半形逗號分隔的 FHIR 資源類型,只匯出這些類型的 FHIR 資源。
    • SINCE_TIMESTAMP:選填欄位。以 YYYY-MM-DDThh:mm:ss.sss+zz:zz 格式指定值,即可只匯出特定時間後更新的 FHIR 資源。指定時間時須精確到秒,並包含時區。舉例來說,2015-02-07T13:28:17.239+02:002017-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 Content

    APIs Explorer

    複製要求內文並開啟方法參考資料頁面。系統會在頁面右側開啟 APIs Explorer 面板。您可以使用這項工具來傳送要求。將要求內文貼到這項工具中,並填妥其他必填欄位,然後按一下「Execute」(執行)

    輸出內容如下所示。回應會包含長時間執行作業 (LRO) 的 ID。如果方法呼叫可能需要額外時間才能完成,系統會傳回長時間執行的作業。請記下 OPERATION_ID 的值。您會在下一個步驟中用到這個值。

  2. 使用 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 Content

    APIs Explorer

    開啟方法參考頁面。系統會在頁面右側開啟 APIs Explorer 面板。您可以使用這項工具來傳送要求。完成任何必填欄位,然後按一下「執行」

    輸出內容如下所示。如果回應包含 "done": true,表示長時間執行的作業已完成。

將 FHIR 資源匯出至分區資料表

如要將 FHIR 資源匯出至 BigQuery 分區資料表,請在 FHIR 儲存庫的 lastUpdatedPartitionConfig 欄位中設定 TimePartitioning 列舉。

分區資料表運作方式與 BigQuery 時間單位分區資料表類似。分區資料表會新增名為 lastUpdated 的資料欄,這是從 FHIR 資源的 meta.lastUpdated 欄位產生的 meta.lastUpdated 資料欄副本。BigQuery 會使用 lastUpdated 資料欄,依小時、天、月或年將資料表分區。

如需如何選取分區細微程度的建議,請參閱「選取每日、每小時、每月或每年分區」。

您無法將現有的非分區 BigQuery 資料表轉換為分區資料表。如果將 Patient 資源變更匯出至非分區 Patients 資料表,然後建立新的 FHIR 儲存庫 (含資料表分區),並匯出至相同的 BigQuery 資料集,Cloud Healthcare API 仍會將資料匯出至非分區 Patients 資料表。如要開始使用已分割的資料表,請刪除現有的 Patients 資料表,或使用其他 BigQuery 資料集。

如果您在現有的 FHIR 存放區設定中新增分區,仍可匯出至現有的非分區資料表。不過,分區功能只會對新資料表生效。

下列範例說明如何將 FHIR 資源匯出至 BigQuery 分區資料表。

控制台

Google Cloud 控制台和 gcloud CLI 不支援這項操作。請改用 curl、PowerShell 或偏好語言。

gcloud

Google Cloud 控制台和 gcloud CLI 不支援這項操作。請改用 curl、PowerShell 或偏好語言。

REST

如要將 FHIR 資源匯出至 BigQuery 分區資料表,請使用 projects.locations.datasets.fhirStores.export 方法。

  1. 匯出 FHIR 資源:

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:您的 Google Cloud 專案 ID
    • LOCATION:資料集位置
    • DATASET_ID:FHIR 儲存庫的父項資料集
    • FHIR_STORE_ID:FHIR 儲存庫 ID
    • BIGQUERY_DATASET_ID:現有 BigQuery 資料集的名稱,您要將 FHIR 資源匯出至該資料集
    • SCHEMA_TYPESchemaType 的值。請使用下列其中一個值:
      • ANALYTICS. 以 FHIR 的 SQL 文件為基礎的結構定義。由於 BigQuery 每張資料表最多只能有 10,000 個資料欄,因此系統不會為 Parameters.parameter.resourceBundle.entry.resourceBundle.entry.response.outcome 欄位產生結構定義。
      • ANALYTICS_V2。類似 ANALYTICS 的架構,但新增了下列支援:

        ANALYTICS_V2 在目的地資料表使用的空間比 ANALYTICS

    • TIME_PARTITION_TYPE:分割匯出 FHIR 資源的精細程度。請使用下列其中一個值:
      • HOUR:按小時分區資料
      • DAY:按天分區資料
      • MONTH:按月分區資料
      • YEAR:按年份劃分資料
    • WRITE_DISPOSITIONWriteDisposition 的值。請使用下列其中一個值:
      • 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 Content

    APIs Explorer

    複製要求內文並開啟方法參考資料頁面。系統會在頁面右側開啟 APIs Explorer 面板。您可以使用這項工具來傳送要求。將要求內文貼到這項工具中,並填妥其他必填欄位,然後按一下「Execute」(執行)

    您應該會收到如下的 JSON 回應:

  2. 使用 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 Content

    APIs Explorer

    開啟方法參考頁面。系統會在頁面右側開啟 APIs Explorer 面板。您可以使用這項工具來傳送要求。完成任何必填欄位,然後按一下「執行」

    輸出內容如下所示。如果回應包含 "done": true,表示長時間執行的作業已完成。

查詢分區資料表

如要減少查詢分區資料表時的查詢費用,請使用 WHERE 子句依時間單位篩選。

舉例來說,假設您將 PartitionType 列舉設為 DAY。如要查詢 Patients 資料表,找出在特定日期更新的 Patient 資源,請執行下列查詢:

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™ 生成合成資料公開資料集,其中包含超過 100 萬筆以 Synthea™ 和 FHIR 格式生成的合成病患記錄。

排解 FHIR 匯出要求問題

如果 FHIR 匯出要求發生錯誤,系統會將錯誤記錄到 Cloud Logging。詳情請參閱「查看 Cloud Logging 中的錯誤記錄檔」。

如果整個作業傳回錯誤,請參閱「排解長期執行的作業問題」。

無法將資料欄從 NULLABLE 轉換為 REPEATED

這個錯誤是由重複的擴充功能所造成。如要解決這項錯誤,請使用 ANALYTICS_V2 結構化資料類型。如果您使用 ANALYTICS_V2,可能會有兩個擴充功能之間發生衝突,或是擴充功能與其他欄位發生衝突。

系統會根據擴展網址中最後一個 / 字元後的文字產生資料欄名稱。如果擴展網址以 /resource_field name 等值結尾,可能會發生衝突。\

為避免再次發生這項錯誤,請勿使用欄位名稱與您填入的資源欄位相同的擴充功能。

後續步驟