Google bigquery 将大文件从Google BigQuery传输到Google云存储

Google bigquery 将大文件从Google BigQuery传输到Google云存储,google-bigquery,google-cloud-storage,Google Bigquery,Google Cloud Storage,我需要将BigQuery中的一个大表2B记录传输到csv格式的云存储。我正在使用控制台进行传输 由于文件的大小,我需要指定一个包含*的uri来分割导出。我最终在云存储中存储了400个csv文件。每个都有一个标题行 这使得合并文件非常耗时,因为我需要将csv文件下载到另一台机器上,去掉标题行,合并文件,然后重新上载。FY组合csv文件的大小约为48GB 有更好的方法吗?使用API,您可以告诉BigQuery在表提取期间不要打印标题行。这是通过将configuration.extract.print

我需要将BigQuery中的一个大表2B记录传输到csv格式的云存储。我正在使用控制台进行传输

由于文件的大小,我需要指定一个包含*的uri来分割导出。我最终在云存储中存储了400个csv文件。每个都有一个标题行

这使得合并文件非常耗时,因为我需要将csv文件下载到另一台机器上,去掉标题行,合并文件,然后重新上载。FY组合csv文件的大小约为48GB


有更好的方法吗?

使用API,您可以告诉BigQuery在表提取期间不要打印标题行。这是通过将
configuration.extract.printHeader
选项设置为
false
来实现的。有关更多信息,请参阅。命令行实用程序也应该能够做到这一点

完成此操作后,连接文件就容易多了。在Linux/Mac计算机中,它将是一个
cat
命令。但是,您也可以尝试使用
compose
操作直接从云存储连接。可以从API或命令行实用程序执行合成

由于合成操作仅限于32个组件,因此必须在32个文件之后合成32个文件。这将为400个文件进行大约13次合成操作。请注意,我从未尝试过合成操作,因此我只是猜测这一部分。

在控制台中,使用该实用程序剥离标题:

bq --skip_leading_rows 1

合并后如何处理这些CSV文件?为什么上传前需要合并(为什么不能单独上传)?您真的需要标题吗,或者您可以在代码中假设列序列?