分段上传到 Google Bigquery

Posted

技术标签:

【中文标题】分段上传到 Google Bigquery【英文标题】:Multipart upload to Google Bigquery 【发布时间】:2015-11-25 23:14:13 【问题描述】:

我正在尝试为我的加载作业(多部分)制定一个主体到 Bigquery。按照https://cloud.google.com/bigquery/loading-data-post-request#multipart上的例子:

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


  "configuration": 
    "load": 
      "sourceFormat": "NEWLINE_DELIMITED_JSON",
      "schema": 
        "fields": [
            "name":"word","type":"STRING",
            "name":"word_count","type":"INTEGER",
            "name":"corpus","type":"STRING",
            "name":"corpus_date","type":"INTEGER"
        ]
      ,
      "destinationTable": 
        "projectId":"myproject",
        "datasetId":"mydataset",
        "tableId":"mytable"
      
    
  


--foo_bar_baz
Content-Type: */*

[MY-JSON-DATA]
--foo_bar_baz--

但我从谷歌得到消息说:

"message": "作业配置必须只包含一个特定于作业的配置对象(例如,查询、加载、提取、电子表格提取),但有 0 个:"

如果我查看https://cloud.google.com/bigquery/docs/reference/v2/jobs#configuration.load 的文档,似乎 sourceUris[] 是必需的,但示例不包含它。我的数据不在谷歌云存储中,而是在请求中。为什么它没有检测到我的加载详细信息?

感谢您的帮助。 //莱夫

【问题讨论】:

【参考方案1】:

根据消息 - 看起来你在下面不见了

Content-Type: multipart/related; boundary="foo_bar_baz"

【讨论】:

感谢您的支持。所以我的标头中有 Content-Type ,这些都是我的标头:Content-Type: multipart/related; boundary="foo_bar_baz" Content-Length: 8564 Authorization: Bearer XXX 对吗?最好的问候d//L【参考方案2】:

你是对的。我在 Content-Type 的标题中有一个额外的空间,我使用 fiddler 看到它,它看起来像这样:

`Content-Type:多部分/相关;边界="foo_bar_baz"

感谢您的支持。

【讨论】:

以上是关于分段上传到 Google Bigquery的主要内容,如果未能解决你的问题,请参考以下文章

HTML5 文件域+FileReader 分段读取文件并上传到服务器

从 Apache Spark 分段上传到 Amazon S3

WebFlux WebClient 在分段上传期间将整个文件加载到直接缓冲内存中

获取分段上传 Alamofire 5 的上传进度

Google Filament 渲染引擎分段错误

s3cmd - 删除失败的分段上传占用空间并收费