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

时间:2013-08-28 16:33:32

标签: google-bigquery

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

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:5)

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

  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_*' .
    

    另请参阅:Download files and folders from Google Storage bucket to a local folder

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

    您必须按照以下文档进行安装和设置:

  11. 在本地解压缩:

    for f in *.gz; do gunzip "$f"; done
    

答案 2 :(得分:1)

Michael Manoochehri建议的步骤是从Google Bigquery导出数据的正确而简单的方法 我编写了一个bash脚本,这样你就不需要每次都执行这些步骤,只需使用我的bash脚本。 下面是github网址: https://github.com/rajnish4dba/GoogleBigQuery_Scripts

范围:
1.根据您的Big Query SQL导出数据 2.根据您的表名导出数据 3.将导出文件传输到SFtp服务器 尝试一下,让我知道你的反馈意见 帮助使用ExportDataFromBigQuery.sh -h

答案 3 :(得分:0)

对于python,您可以使用以下代码,它将下载数据作为数据框。

from google.cloud import bigquery
def read_from_bqtable(bq_projectname, bq_query):
    client = bigquery.Client(bq_projectname)
    bq_data = client.query(bq_query).to_dataframe()
    return bq_data  #return dataframe

bigQueryTableData_df = read_from_bqtable('gcp-project-id', 'SELECT * FROM `gcp-project-id.dataset-name.table-name` ')