首页 > 解决方案 > BigQuery 上传作业返回错误 - 有效负载部分计数错误?

问题描述

我们在上传到 BigQuery/云存储时遇到错误:

要求

POST https://www.googleapis.com/upload/bigquery/v2/projects/XXX HTTP/1.1
Content-Type: multipart/related; boundary="PART_TAG_DATA_IMPORTER"
Host: www.googleapis.com
Content-Length: 652

--PART_TAG_DATA_IMPORTER
Content-Type: application/json; charset=UTF-8

{"configuration":{"load":{"createDisposition":"CREATE_IF_NEEDED","destinationTable":{"datasetId":"XX","projectId":"XX","tableId":"XX"},"schema":{"fields":[{"mode":"required","name":"xx1","type":"INTEGER"},{"mode":"required","name":"xx2","type":"STRING"},{"mode":"required","name":"xx3","type":"INTEGER"}]},"skipLeadingRows":1,"sourceFormat":"CSV","sourceUris":["gs://XXX/9f41d369-b63e-4858-9108-7d1243175955.csv"],"writeDisposition":"WRITE_TRUNCATE"}}}
--PART_TAG_DATA_IMPORTER--

回复:

HTTP/1.1 400 Bad Request
X-GUploader-UploadID: XXX
Content-Length: 77
Date: Fri, 15 Nov 2019 10:23:33 GMT
Server: UploadServer
Content-Type: text/html; charset=UTF-8
Alt-Svc: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000

Payload parts count different from expected 2. Request payload parts count: 1

还有人收到这个吗?从昨晚开始一切都很好。我们的代码库没有任何变化,大约 80% 的案例都发生了错误,但在 5-6 次尝试后(有时)它会通过。

我们正在使用 .NET 并拥有最新的 Google.Apis 库,但这可以通过对服务器的简单请求来重现。它有时也会正常通过。

标签: google-cloud-platformgoogle-bigquerygoogle-cloud-storage

解决方案


谷歌在/upload/bigquery/v2/projects/{projectId}/jobs端点添加了一条不能接收单部分消息的规则。

/bigquery/v2/projects/{projectId}/jobs根据此处的文档从 GCS 上传时需要使用(没有明确说明):

https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/insert


推荐阅读