Bigquery 在文件大小为 8GB 的​​ GCS 中导出表,即使使用单个通配符 URI 将表导出到小于 1 gb 的文件块中

Posted

技术标签:

【中文标题】Bigquery 在文件大小为 8GB 的​​ GCS 中导出表,即使使用单个通配符 URI 将表导出到小于 1 gb 的文件块中【英文标题】:Bigquery exporting tables in GCS of file size 8GB even using single wildcard URI to export the table in less than 1 gb chunksof file 【发布时间】:2020-04-08 08:46:47 【问题描述】:

我尝试手动使用命令行将具有 140GB 数据的大查询表导出到 GCS 存储桶中小于 1GB 的文件中。导出后总共创建了 168 个文件。从 1 到 167 的所有文件都小于 1GB,但在使用命令行或使用大查询界面导出时,最后一个文件大约为 8GB。

这是GCS存储桶的截图。

我按照Export bigquery table to GCS 将表导出到多个文件中,使用单个通配符 uri 将导出的表拆分为块。

我希望所有导出的文件都只有 1 GB 左右。有人可以帮我吗?谢谢。

【问题讨论】:

【参考方案1】:

你读错了文档。

BigQuery 中没有每个文件导出配置 1GB。

have read 的 1GB 是指您尝试导出的数据大小。

如果您要导出超过 1 GB 的数据,则必须导出数据 到多个文件。当您将数据导出到多个文件时, 文件的大小会有所不同

因此,这表明如果您的表大于 1GB,则必须导出到多个文件。但它不会告诉您文件会小于 1GB,它会告诉您文件大小会有所不同。

【讨论】:

但是,我同意@ascii_walker,行为很奇怪。我建议您打开支持案例以确保这是预期的行为。 @guillaumeblaquiere 几年前我已经这样做了,他们更正了文档页面。它现在明确指出“文件大小不同”。这是他们能做的最多了。

以上是关于Bigquery 在文件大小为 8GB 的​​ GCS 中导出表,即使使用单个通配符 URI 将表导出到小于 1 gb 的文件块中的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 64 位 java/linux 环境中运行具有 8gb 堆大小的 Weblogic

Google BigQuery Payload 大小限制为 10485760 字节

在 Dataflow 中从 BigQuery 写入云存储时如何设置文件大小而不是分片数

将 10 MB 数据上传到 Bigquery

如何限制从 bigquery 导出到 gcs 的文件大小?

从 BigQuery 转换为 MySQL,可变数组大小