Google bigquery将大表导出到Google Cloud存储中的多个对象

问题描述:

我有两个bigquery表,大于1 GB。Google bigquery将大表导出到Google Cloud存储中的多个对象

要导出到存储,

https://googlecloudplatform.github.io/google-cloud-php/#/docs/google-cloud/v0.39.2/bigquery/table?method=export

$destinationObject = $storage->bucket('myBucket')->object('tableOutput_*'); 
$job = $table->export($destinationObject); 

我使用通配符。

奇怪的事情是一个bigquery表格被导出为60个文件,每个文件的大小为3 - 4 MB。

将另一个表导出到3个文件,每个文件接近1 GB,900 MB。

这些代码是相同的。唯一的区别在于表格导出到3个文件的情况。我把它们放到一个子文件夹中。

导出为60个文件的文件夹位于子文件夹的上一级。

我的问题是,bigquery是如何决定将一个文件分解成几十个较小的文件或只是分成几个大文件(只要每个文件小于1GB)?

谢谢!

+0

有人猜测,我认为这取决于表是多么分散。但是,也许像@felipehoffa这样的Google员工可以发现更多的亮点。但是,这不应该是一个问题。是吗? –

+0

好吧。这可能是一个问题。我想把它分成更小的文件。当我处理1GB文件时,比如将其上传到Elasticsearch,我得到了超时问题, – searain

+0

AFAIK,您无法控制导出文件的数量或大小。 –

BigQuery不保证导出文件的大小,目前还没有办法调整它。