google-cloud-platform - 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 库,但这可以通过对服务器的简单请求来重现。它有时也会正常通过。
解决方案
谷歌在/upload/bigquery/v2/projects/{projectId}/jobs
端点添加了一条不能接收单部分消息的规则。
/bigquery/v2/projects/{projectId}/jobs
根据此处的文档从 GCS 上传时需要使用(没有明确说明):
https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/insert
推荐阅读
- json - Typescript 建模:当 IDE 不知道结构时如何处理来自 API 的对象
- c# - 在给定半径、中心和 3D 位置的球体上查找点
- windows - 清除特定文本文件行的内容而不删除回车
- haskell - 如何在侧面和向下建造一棵树?
- python - 运行 pyinstaller 时出错(1920,'LoadLibraryEx','系统无法访问文件')
- c - 在C中的结构上使用malloc后数组中的默认值是什么
- python - python内存如何管理字符串对象?
- python - 计算python字符串中出现一次的唯一字母总数?
- c# - 将事件传播到所有控件
- android - 两个组件中的范围注释基本上意味着什么(一个取决于另一个)