本頁面說明如何將 FHIR 資源批次匯出至 BigQuery,以便進行探索和分析。匯出作業會為 FHIR 儲存庫中的每個 FHIR 資源類型建立一個 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 儲存庫中的每個資源類型輸出一個 BigQuery 資料表。
批次匯出 FHIR 資源
以下範例說明如何將 FHIR 資源匯出至 BigQuery 資料表。
指定 BigQuery 目的地時,請使用完整的 URI:
bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID
控制台
如要使用Google Cloud 主控台將 FHIR 資源匯出至 BigQuery,請完成下列步驟:
在 Google Cloud 控制台中,前往「Datasets」(資料集) 頁面。
按一下含有您要匯出資料的 FHIR 儲存庫資料集。
在 FHIR 儲存庫所在的資料列中,開啟「動作」清單,然後選取「匯出」。
在隨即顯示的「Export FHIR resources」(匯出 FHIR 資源) 頁面中,找出「Select a destination」(選取目的地) 專區。選取「BigQuery 資料表」。
在「Destination table write disposition」部分,選取下列任一選項,決定匯出作業的行為:
- 只在目的地資料表空白時匯出資料:這等同於在
WriteDisposition
中選取WRITE_EMPTY
列舉。 - 將資料附加至目的地資料表:這等同於在
WriteDisposition
中選取WRITE_APPEND
列舉。 - 在寫入 FHIR 資源前清除目的地資料表中的所有現有資料:這相當於在
WriteDisposition
中選取WRITE_TRUNCATE
列舉。
- 只在目的地資料表空白時匯出資料:這等同於在
在「FHIR 匯出設定」部分,按一下「瀏覽」,選取 BigQuery 專案和資料集。
在「Schema type」下拉式選單中,選取 BigQuery 資料表的輸出結構定義。可用的結構定義如下:
- Analytics。以 FHIR 上的 SQL 文件為基礎的結構定義。由於 BigQuery 每個資料表最多只能有 10,000 個欄位,因此系統不會為
Parameters.parameter.resource
、Bundle.entry.resource
和Bundle.entry.response.outcome
欄位產生結構定義。 - Analytics 第 2 版。與 Analytics 結構定義類似,但新增了以下支援功能:Analytics 第 2 版結構定義在目標資料表中使用的空間比 Analytics 結構定義多。
- Analytics。以 FHIR 上的 SQL 文件為基礎的結構定義。由於 BigQuery 每個資料表最多只能有 10,000 個欄位,因此系統不會為
在「Recursive Structure Depth」滑桿中選取深度層級,即可設定輸出結構中的所有遞迴結構深度。根據預設,遞迴值為 2。
詳情請參閱
recursiveStructureDepth
。按一下「Export」,將 FHIR 資源匯出至 BigQuery。
- 如要追蹤作業狀態,請按一下「Operations」分頁。作業完成後,系統會顯示下列指示:
- 「長時間執行的作業狀態」部分的「OK」標題下方有綠色勾號。
- 「總覽」部分會顯示綠色勾號和「OK」指標,與作業 ID 位於同一行。
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
:以 FHIR 上的 SQL 文件為基礎的結構定義。由於 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 資源類型,即可只匯出這些類型的 FHIR 資源。
- SINCE_TIMESTAMP:選填欄位。請使用
YYYY-MM-DDThh:mm:ss.sss+zz:zz
格式指定值,只匯出特定時間之後更新的 FHIR 資源。請指定精確到秒的時間,並附上時區。舉例來說,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
:以 FHIR 上的 SQL 文件為基礎的結構定義。由於 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 資源類型,即可只匯出這些類型的 FHIR 資源。
- SINCE_TIMESTAMP:選填欄位。請使用
YYYY-MM-DDThh:mm:ss.sss+zz:zz
格式指定值,只匯出特定時間之後更新的 FHIR 資源。請指定精確到秒的時間,並附上時區。舉例來說,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 ContentAPIs Explorer
複製要求主體並開啟方法參考頁面。系統會在頁面右側開啟 API Explorer 面板。 您可以使用這項工具來傳送要求。將要求主體貼到這項工具中,並填妥其他必填欄位,然後按一下「執行」。
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 ContentAPIs Explorer
開啟方法參考頁面。系統會在頁面右側開啟 API Explorer 面板。 您可以使用這項工具來傳送要求。完成所有必填欄位,然後按一下「執行」。
"done": true
,表示長時間執行作業已完成。
將 FHIR 資源匯出至分區資料表
如要將 FHIR 資源匯出至 BigQuery 分區資料表,請在 FHIR 儲存庫的 lastUpdatedPartitionConfig
欄位中設定 TimePartitioning
列舉。
分區資料表的運作方式與 BigQuery 的時間單位分區資料表類似。分區資料表會新增名為 lastUpdated
的資料欄,這是 meta.lastUpdated
資料欄的重複資料欄,該資料欄是從 FHIR 資源中的 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
方法。
匯出 FHIR 資源:
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID: Google Cloud 專案的 ID
- LOCATION:資料集位置
- DATASET_ID:FHIR 儲存庫的父項資料集
- FHIR_STORE_ID:FHIR 儲存庫 ID
- BIGQUERY_DATASET_ID:匯出 FHIR 資源的現有 BigQuery 資料集名稱
- SCHEMA_TYPE:
SchemaType
的值。請使用下列其中一個值:ANALYTICS
:以 FHIR 上的 SQL 文件為基礎的結構定義。由於 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 ContentAPIs Explorer
複製要求主體並開啟方法參考頁面。系統會在頁面右側開啟 API Explorer 面板。 您可以使用這項工具來傳送要求。將要求主體貼到這項工具中,並填妥其他必填欄位,然後按一下「執行」。
您應該會收到如下的 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 ContentAPIs Explorer
開啟方法參考頁面。系統會在頁面右側開啟 API Explorer 面板。 您可以使用這項工具來傳送要求。完成所有必填欄位,然後按一下「執行」。
"done": true
,表示長時間執行作業已完成。
查詢分區資料表
如要降低查詢分區資料表時的查詢費用,請使用 WHERE
子句,依時間單位篩選資料。
舉例來說,假設您將 PartitionType
列舉設為 DAY
。如要查詢 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 資料」解決方案,瞭解如何查詢及分析匯出的資料。這項解決方案使用 Synthea™ 在 FHIR 中產生的合成資料公開資料集,其中包含超過 100 萬筆以 Synthea™ 和 FHIR 格式產生的合成病患記錄。
排解 FHIR 匯出要求問題
如果在 FHIR 匯出要求期間發生錯誤,系統會將錯誤記錄到 Cloud Logging。詳情請參閱「查看 Cloud Logging 中的錯誤記錄檔」。
如果整個作業傳回錯誤,請參閱長期執行作業的疑難排解。
無法將資料欄從 NULLABLE 轉換為 REPEATED
這個錯誤是因為重複的擴充功能。如要解決這項錯誤,請使用 ANALYTICS_V2
結構定義類型。如果您使用 ANALYTICS_V2
,兩個擴充功能之間可能會發生衝突,或是擴充功能與其他欄位之間發生衝突。
資料欄名稱會從擴充資料網址中最後一個 /
字元後方的文字產生。如果擴充資料網址結尾為 /resource_field name
這類值,就可能發生衝突。\
為避免再次發生這種錯誤,如果擴充資料欄位名稱與要填入的資源欄位相同,請勿使用擴充資料。
後續步驟
- 如要進一步瞭解 BigQuery 的資料治理和安全性,請參閱「資料安全性和治理總覽」。