将Bigquery中的表导出为GCS拆分大小

时间:2018-06-08 00:53:24

标签: google-bigquery

我正在将一个大小> 1GB的表从Bigquery导出到GCS中,但它将文件拆分为2-3 MB的非常小的文件。有没有办法获得更大的文件,如每个文件40-60MB而不是2-3 MB。

我通过api进行支持 https://cloud.google.com/bigquery/docs/exporting-data#exporting_data_into_one_or_more_files

https://cloud.google.com/bigquery/docs/reference/v2/jobs

Bigquery上的源表大小为60 GB。我用格式提取数据 - NewLine_Delimited_Json和GZIP压缩

destination_cloud_storage_uris=[
        'gs://bucket_name/main_folder/partition_date=xxxxxxx/part-*.gz'
    ]

2 个答案:

答案 0 :(得分:1)

您是否尝试导出分区表?如果是,则将每个分区导出为不同的表,这可能会导致小文件。 我使用以下每个命令在cli中运行导出,并在两种情况下接收大小为49 MB的文件:

bq extract --compression=GZIP --destination_format=NEWLINE_DELIMITED_JSON project:dataset.table gs://bucket_name/path5-component/file-name-*.gz

bq extract --compression=GZIP project:dataset.table gs://bucket_name/path5-component/file-name-*.gz

答案 1 :(得分:0)

请在问题中添加更多详细信息,以便我们提供具体建议:您如何确切地要求此出口?

尽管如此,如果您在GCS中有许多文件并且想要将它们全部合并为一个,您可以这样做:

gsutil compose gs://bucket/obj1 [gs://bucket/obj2 ...] gs://bucket/composite