我正在将一个大小> 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'
]
答案 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