是否有一种简单的方法可以直接下载Google BigQuery上某个数据集中包含的所有数据?我实际上正在下载“as csv”,一个接一个地进行查询,但它不允许我获得超过15k行,而我需要下载的行超过5M。 谢谢
答案 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)
下载大型查询输出的详细步骤
启用结算
您必须将您的信用卡号码提供给Google才能导出输出,而您可能需要付费。
但免费配额(1TB已处理数据)应足以满足许多业余爱好项目。
创建项目
将结算与项目相关联
进行查询
创建新数据集
点击"显示选项"并启用"允许大结果"如果输出非常大
将查询结果导出到数据集中的表
在云存储上创建一个存储桶。
将表导出到云存储上已创建的已删除。
确保单击GZIP压缩
使用<bucket>/prefix.gz
等名称。
如果输出非常大,文件名必须带有星号*
,输出将分成多个文件。
将表从云存储下载到您的计算机。
如果大文件被拆分,似乎无法从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
,但它是一个不相关的包。
您必须按照以下文档进行安装和设置:
在本地解压缩:
for f in *.gz; do gunzip "$f"; done
答案 2 :(得分:1)
范围:
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` ')