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

Google bigquery 如何下载Google BigQuery数据集中的所有数据?,google-bigquery,Google Bigquery,有没有一种简单的方法可以直接下载Google BigQuery上某个数据集中包含的所有数据?实际上,我正在下载“作为csv”,一个接一个地进行查询,但它不允许我获得超过15k行,我需要下载的行数超过5M。 谢谢您可以使用Web UI、命令行工具或BigQuery API运行BigQuery提取作业。数据可以被提取出来 例如,使用命令行工具: 首先,按照以下说明进行安装和验证: 然后确保您有一个可用的Google云存储桶(请参阅) 然后,运行以下命令: bq提取我的数据集。我的表格gs://my

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

您可以使用Web UI、命令行工具或BigQuery API运行BigQuery提取作业。数据可以被提取出来

例如,使用命令行工具:

首先,按照以下说明进行安装和验证:

然后确保您有一个可用的Google云存储桶(请参阅)

然后,运行以下命令:

bq提取我的数据集。我的表格gs://mybucket/myfilename.csv
有关通过API提取数据的更多信息,请参见:

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

  • 启用计费

    你必须将你的信用卡号交给谷歌才能导出输出,你可能需要付费

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

  • 创建项目

  • 将帐单与项目关联

  • 请回答你的问题

  • 创建一个新的数据集

  • 如果输出非常大,请单击“显示选项”并启用“允许大结果”

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

  • 在云存储上创建一个bucket

  • 将表导出到创建的bucked on Cloud存储

    • 确保单击GZIP压缩

    • 使用类似于
      /prefix.gz
      的名称

      如果输出非常大,则文件名必须有星号
      *
      ,并且输出将拆分为多个文件

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

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

    gsutil -m cp -r 'gs://<bucket>/prefix_*' .
    

  • 以下是。

    是的,Michael Manoochehri建议的步骤是从Google Bigquery导出数据的正确且简单的方法。
    我已经编写了一个bash脚本,所以您不需要每次都执行这些步骤,只需使用我的bash脚本即可。 以下是github url:

    范围:
    1.基于大查询SQL导出数据。
    2.根据表名导出数据。
    3.将导出文件传输到SFtp服务器。
    试试看,让我知道你的反馈。

    为了帮助python使用ExportDataFromBigQuery.sh-h,您可以使用以下代码,它将下载数据作为数据帧

    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` ')
    

    声明如果它的行数>16k,你必须将它作为一个表导出到谷歌云存储中。谢谢:回答得好,但谷歌的政策非常蹩脚。错误的方法,强制用户订阅其服务我继续获取
    ServiceException:401匿名用户在步骤10中没有对bucket的storage.objects.list访问权限。我该怎么解决这个问题?@Soubriquet对不起,好久没碰这个了。请问另一个问题,并在另一条评论中给我链接。@Soubriquet这个答案可能就是你想要的。
    
    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` ')