如何下载Google BigQuery数据集中的所有数据?

mar*_*ark 12 google-bigquery

有没有一种简单的方法可以直接下载Google BigQuery上某个数据集中包含的所有数据?我实际上正在下载"as csv",一个接一个地进行查询,但它不允许我获得超过15k行,而我需要下载的行超过5M.谢谢

Cir*_*四事件 7

详细的逐步下载大型查询输出

  1. 启用结算

    您必须将您的信用卡号码提供给Google才能导出输出,您可能需要付费.

    但免费配额(1TB的处理数据)应该足以满足许多业余爱好项目的需求.

  2. 创建一个项目

  3. 将结算与项目相关联

  4. 做你的查询

  5. 创建一个新的数据集

  6. 如果输出非常大,请单击"显示选项"并启用"允许大结果"

  7. 将查询结果导出到数据集中的表

  8. 在云存储上创建一个存储桶.

  9. 将表导出到已创建的云存储上.

    • 确保单击GZIP压缩

    • 使用像这样的名字<bucket>/prefix.gz.

      如果输出非常大,则文件名必须带有星号*,输出将分成多个文件.

  10. 将表从云存储下载到您的计算机.

    如果大文件被拆分,似乎无法从Web界面下载多个文件,但您可以安装gsutil并运行:

    gsutil -m cp -r 'gs://<bucket>/prefix_*' .
    
    Run Code Online (Sandbox Code Playgroud)

    另请参阅:将文件和文件夹从Google存储桶下载到本地文件夹

    gsutil在Ubuntu 16.04中有一个,但它是一个不相关的包.

    您必须安装和设置,如下所示:

  11. 在本地解压缩:

    for f in *.gz; do gunzip "$f"; done
    
    Run Code Online (Sandbox Code Playgroud)


Mic*_*hri 6

您可以使用Web UI,命令行工具或BigQuery API运行BigQuery提取作业.可以提取数据

例如,使用命令行工具:

首先使用以下说明进行安装和验证:https: //developers.google.com/bigquery/bq-command-line-tool-quickstart

然后确保您拥有可用的Google云端存储分区(请参阅Google Cloud Console).

然后,运行以下命令:bq extract my_dataset.my_table gs://mybucket/myfilename.csv

有关通过API提取数据的更多信息,请访问:https: //developers.google.com/bigquery/exporting-data-from-bigquery

  • 谢谢:很好的答案,但谷歌的政策非常蹩脚。糟糕的方法,强迫用户订阅他们的服务 (2认同)