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

时间:2014-07-26 15:12:06

标签: google-bigquery google-cloud-storage

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

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

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

对此有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:0)

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

bq --skip_leading_rows 1