将 FHIR 资源导出到 BigQuery

本页面介绍了如何将 FHIR 资源导出到 BigQuery 以进行探索和分析。导出操作会为 FHIR 存储区中的每种 FHIR 资源类型输出一个 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 存储区中的每种资源类型输出一个 BigQuery 表。

控制台

如需使用 Google Cloud 控制台将 FHIR 资源导出到 BigQuery,请完成以下步骤:

  1. 在 Google Cloud 控制台中,进入数据集页面。

    前往“数据集”页面

  2. 点击包含您要导出的数据的 FHIR 存储区的数据集。

  3. 在 FHIR 存储区所在的行中,打开操作列表,然后选择导出

  4. 在显示的导出 FHIR 资源页面上,找到选择目标位置部分。选择 BigQuery 表

  5. 目标表的写入处置方式部分,选择以下选项之一,以确定导出操作的行为:

    • 仅在目标表为空时才导出数据:这相当于在 WriteDisposition 中选择 WRITE_EMPTY 枚举。
    • 将数据附加到目标表:这相当于在 WriteDisposition 中选择 WRITE_APPEND 枚举。
    • 在写入 FHIR 资源之前清空目标表中的所有现有数据:这相当于在 WriteDisposition 中选择 WRITE_TRUNCATE 枚举。
  6. FHIR 导出配置部分中,点击浏览,选择 BigQuery 项目和数据集。

  7. 架构类型下拉列表中,选择 BigQuery 表的输出架构。可用的架构如下:

    • 数据分析。基于 SQL on FHIR 文档的架构。由于 BigQuery 只允许每个表包含 1 万列,因此系统不会为 Parameters.parameter.resourceBundle.entry.resourceBundle.entry.response.outcome 字段生成架构。
    • Google Analytics(分析)V2。一种与 Google Analytics(分析)架构类似的架构,并新增了对以下各项的支持:。与 Google Analytics(分析)架构相比,Google Analytics(分析)V2 架构在目标表中占用的空间更多。

  8. 递归结构深度滑块中选择深度级别,以设置输出架构中所有递归结构的深度。默认情况下,递归值为 2。

    如需了解详情,请参阅 recursiveStructureDepth

  9. 点击导出,将 FHIR 资源导出到 BigQuery。

  10. 要跟踪操作的状态,请点击操作标签页。操作完成后,系统会显示以下指示:
    • 长时间运行的操作状态部分下方的确定标题下会显示一个绿色的对勾标记。
    • 概览部分在操作 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:您要从中导出 FHIR 资源的现有 BigQuery 数据集的名称
    • SCHEMA_TYPESchemaType 的值。请使用以下某个值:
      • analytics。基于 SQL on FHIR 文档的架构。由于 BigQuery 只允许每个表包含 1 万列,因此系统不会为 Parameters.parameter.resourceBundle.entry.resourceBundle.entry.response.outcome 字段生成架构。
      • analytics_v2。一种类似于 analytics 的架构,增加了对以下内容的支持:

        在目标表中,analytics-v2 占用的空间多于 analytics

    • WRITE_DISPOSITIONWriteDisposition 的值。请使用以下某个值:
      • write-empty。仅在目标 BigQuery 表为空时才导出数据。
      • write-truncate。请先清空 BigQuery 表中的所有现有数据,然后再写入 FHIR 资源。
      • 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
    
    响应如下所示。响应中包含长时间运行的操作的标识符。如果方法调用可能需要大量时间才能完成,系统就会返回长时间运行的操作。该命令会轮询长时间运行的操作,然后在导出完成后在 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:您要从中导出 FHIR 资源的现有 BigQuery 数据集的名称
    • SCHEMA_TYPESchemaType 的值。请使用以下某个值:
      • ANALYTICS。基于 SQL on FHIR 文档的架构。由于 BigQuery 只允许每个表包含 1 万列,因此系统不会为 Parameters.parameter.resourceBundle.entry.resourceBundle.entry.response.outcome 字段生成架构。
      • ANALYTICS_V2。一种类似于 ANALYTICS 的架构,增加了对以下内容的支持:

        在目标表中,ANALYTICS_V2 占用的空间多于 ANALYTICS

        .
    • WRITE_DISPOSITIONWriteDisposition 的值。请使用以下某个值:
      • WRITE_EMPTY。仅在目标 BigQuery 表为空时才导出数据。
      • WRITE_TRUNCATE。请先清空 BigQuery 表中的所有现有数据,然后再写入 FHIR 资源。
      • 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

    API Explorer

    复制请求正文并打开方法参考页面。API Explorer 面板会在页面右侧打开。您可以与此工具进行交互以发送请求。将请求正文粘贴到此工具中,填写任何其他必填字段,然后点击执行

    输出如下所示。响应包含长时间运行的操作 (LRO) 的标识符。如果方法调用可能需要更多时间才能完成,系统就会返回长时间运行的操作。请注意 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

    API Explorer

    打开方法参考页面。API Explorer 面板会在页面右侧打开。您可以与此工具进行交互以发送请求。填写所有必填字段,然后点击执行

    输出如下所示。如果响应包含 "done": true,则表示长时间运行的操作已完成。

将 FHIR 资源导出到分区表

如需将 FHIR 资源导出到 BigQuery 分区表,请在 FHIR 存储区的 lastUpdatedPartitionConfig 字段中设置 TimePartitioning 枚举。

分区表的工作方式类似于 BigQuery 时间单位分区表。分区表添加了一个名为 lastUpdated 的列,该列与从 FHIR 资源中的 meta.lastUpdated 字段生成的 meta.lastUpdated 列重复。BigQuery 使用 lastUpdated 列按小时、天、月或年对表进行分区。

如需了解如何选择分区粒度,请参阅选择每日、每小时、每月或每年分区

您无法将现有的非分区 BigQuery 表转换为分区表。如果您将患者资源更改导出到非分区 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:您要从中导出 FHIR 资源的现有 BigQuery 数据集的名称
    • SCHEMA_TYPESchemaType 的值。请使用以下某个值:
      • ANALYTICS。基于 SQL on FHIR 文档的架构。由于 BigQuery 只允许每个表包含 1 万列,因此系统不会为 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:先清空 BigQuery 表中的所有现有数据,然后再写入 DICOM 实例。
      • 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

    API Explorer

    复制请求正文并打开方法参考页面。API Explorer 面板会在页面右侧打开。您可以与此工具进行交互以发送请求。将请求正文粘贴到此工具中,填写任何其他必填字段,然后点击执行

    您应该收到类似以下内容的 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

    API Explorer

    打开方法参考页面。API Explorer 面板会在页面右侧打开。您可以与此工具进行交互以发送请求。填写所有必填字段,然后点击执行

    输出如下所示。如果响应包含 "done": true,则表示长时间运行的操作已完成。

查询分区表

如需在查询分区表时降低查询费用,请使用 WHERE 子句按时间单位进行过滤。

例如,假设您将 PartitionType 枚举设置为 DAY。如需在 Patients 表中查询在特定日期更新的患者资源,请运行以下查询:

SELECT * FROM `PROJECT_ID.BIGQUERY_DATASET.Patients`
  WHERE DATE(lastUpdated) = 'YYYY-MM-DD'

在 BigQuery 中查询和分析 FHIR 数据

将 FHIR 资源导出到 BigQuery 后,请参阅在 BigQuery 中分析 FHIR 数据解决方案,了解如何查询和分析导出的数据。该解决方案使用 FHIR 中由 Synthea™ 生成的合成数据 公共数据集,该数据集托管了在 Synthea™ 中使用 FHIR 格式生成的超过 100 万条合成患者记录。

对 FHIR 导出请求进行问题排查

如果在执行 FHIR 导出请求期间发生错误,则错误会记录到 Cloud Logging。如需了解详情,请参阅在 Cloud Logging 中查看错误日志

如果整个操作返回错误,请参阅排查长时间运行的操作问题

后续步骤