从 Cloud Storage 加载 BigQuery InternalError(适用于直接文件上传)

Posted

技术标签:

【中文标题】从 Cloud Storage 加载 BigQuery InternalError(适用于直接文件上传)【英文标题】:BigQuery InternalError loading from Cloud Storage (works with direct file upload) 【发布时间】:2015-10-09 21:19:42 【问题描述】:

每当我尝试将存储在 CloudStorage 中的 CSV 文件加载到 BigQuery 中时,都会收到一个 InternalError(使用 Web 界面和命令行)。 CSV 是 Google Ngram 数据集的(缩写)部分。

类似的命令:

bq load 1grams.ngrams gs://otichybucket/import_test.csv word:STRING,year:INTEGER,freq:INTEGER,volume:INTEGER

给我:

BigQuery error in load operation: Error processing job 'otichyproject1:bqjob_r28187461b449065a_000001504e747a35_1': An internal error occurred and the request could not be completed.

但是,当我直接使用 Web 界面加载此文件并将文件上传作为源(从我的本地驱动器加载)时,它可以工作。

我需要从 Cloud Storage 加载,因为我需要加载更大的文件(原始 ngrams 数据集)。

我尝试了不同的文件,总是一样。

【问题讨论】:

【参考方案1】:

我是 BigQuery 团队的一名工程师。我能够查找您的工作,但读取 Google Cloud Storage 对象时似乎出现问题。

不幸的是,我们没有记录太多的上下文,但是查看代码,可能导致这种情况的原因是:

    您为作业指定的 URI 格式不正确。它看起来没有格式错误,但可能有一些我没有注意到的奇怪的 UTF8 非打印字符。

    您的存储桶的“区域”出乎意料。您是否有可能将 GCS 存储桶上的数据位置设置为 US、EU 或 ASIA 以外的位置。有关存储桶位置的更多信息,请参阅here。如果是这样,并且您已将位置设置为区域而不是大陆,则可能会导致此错误。

    GCS 中可能存在一些内部错误导致此问题。但是,我在任何日志中都没有看到这种情况,应该是相当罕见的。

我们将添加更多日志记录以在未来检测到这一点并解决区域存储桶的问题(但是,区域存储桶可能会失败,因为 bigquery 不支持跨区域数据移动,但至少它们会失败并出现可理解的错误)。

【讨论】:

您好,感谢您的回复。我认为 1 不应该适用,因为我直接从 Chrome 复制了所有内容。 2.你是对的,桶在一个地区,我会用美国桶再试一次,然后报告。如果错误更容易理解,那肯定会有所帮助。在上传 ngram 数据失败后,我尝试使用公共 trigram 数据集,但失败得很惨, otichyproject1:job_5C7IPqdwS_owrMRIvqzodO8Q7NI 运行了 2.5 小时并以另一个内部错误结束。我应该为此提出一个新问题吗? 好的,你是对的,从同一大陆的存储桶加载到 BigQuery 工作正常,谢谢!

以上是关于从 Cloud Storage 加载 BigQuery InternalError(适用于直接文件上传)的主要内容,如果未能解决你的问题,请参考以下文章

Bigquery 无法从 Google Cloud Storage 加载数据

从 Cloud Storage 加载 BigQuery InternalError(适用于直接文件上传)

Dataflow 中的 BigQuery 无法从 Cloud Storage 加载数据:为非记录字段指定了 JSON 对象

如何将 Google Cloud Storage 中的千兆字节数据加载到 pandas 数据帧中?

将存储在 Google Cloud Storage 中的文件加载到 Big Query 时出错

如何使用 API 存储在 Google Cloud Storage 中的架构文件在 BigQuery 加载作业上设置架构?