Google bigquery BigQuery-将查询结果导出到本地文件/Google存储
我想将查询结果从BigQuery导出到本地文件/Google存储 我尝试了'bq extract'命令,但它不允许将查询作为输入Google bigquery BigQuery-将查询结果导出到本地文件/Google存储,google-bigquery,google-cloud-storage,Google Bigquery,Google Cloud Storage,我想将查询结果从BigQuery导出到本地文件/Google存储 我尝试了'bq extract'命令,但它不允许将查询作为输入 Usage: bq extract <source_table> <destination_uris> 不支持为导出进行筛选。 您可以将查询结果存储为另一个临时表并导出此表,因此这将是一个两步过程。BigQuery不提供将查询结果直接导出/下载到GCS或本地文件的功能。首先,您需要在显式设置的目标表中获取查询结果,如果未设置,则可以使用保存查
Usage: bq extract <source_table> <destination_uris>
不支持为导出进行筛选。
您可以将查询结果存储为另一个临时表并导出此表,因此这将是一个两步过程。BigQuery不提供将查询结果直接导出/下载到GCS或本地文件的功能。首先,您需要在显式设置的目标表中获取查询结果,如果未设置,则可以使用保存查询结果的临时(匿名)表-您可以从相应的作业属性(作业完成后)获取查询结果(表)
然后,您可以使用该表作为导出作业的源,正如@MikhailBerlyan指出的,您需要一个中间表。您可以使用BigQuery UI执行此操作:
- 运行查询以进行筛选(“在您的案例中,按部门id从临时员工组中选择部门id、总和(sal))李>
- 查询完成后,单击
。此步骤创建完成筛选的中间表另存为->另存为表
- 打开该表,在最右侧单击
导出->导出到地面军事系统
1_ run your query
2_ when it is completed, then you can use "Save the result" dropdown
to save it in a *local/cloud* file.
请注意,目前命令行或API调用不支持此选项:-),如前所述
BigQuery不提供直接导出/下载查询的功能 结果保存到GCS或本地文件 您仍然可以使用Web UI通过三个步骤导出它
- 目的地:设置查询结果的目的地表
- 项目名称:选择项目
- 数据集名称:选择一个数据集。如果你没有,创建它然后回来
- 表名:给出您想要的任何名称(必须只包含字母、数字或下划线)
- 结果大小:允许大的结果(没有大小限制)
daria_bucket/test*.csv
这将在bucket daria_bucket内部,将从表中提取的所有数据存储在多个名为test000000000000、test000000000001、test000000000002等文件中。。。testX
步骤3
然后去仓库,你会看到水桶
进入其中,您将找到一个(或多个)文件。然后,您可以从那里下载。对于gcloud cli不支持的内容,您可以始终使用bash脚本。 例如,您可以将查询结果转储到文件中:
bq query --format=csv --max_rows=999999 --use_legacy_sql=false\
"select dept_id,sum(sal) from temp.employee group by dept_id" > employee.csv
然后您可以将其上传到云存储:
gsutil mv employee.csv 'gs://XXXX/employee.csv'
最近添加了从BigQuery标准SQL直接导出:
我的公司尚未订阅google drive,因此我们使用此解决方案-
保存查询结果
并从下拉列表中选择Bigquery Table
,从查询
下拉列表中选择结果数据的保存位置bq--location=--destination\u format CSV:gs://.CSV
能否请您添加有关如何使用bq命令使用临时表的更多详细信息这不太正确。您可以将查询结果保存到本地文件bq query--format=csv--max_rows=9999--use_legacy_sql=false“SELECT*FROM dataset.table;”>result.csv
。这将适用于中小规模的结果。但对于返回千兆字节数据的查询来说并不太好。@Igor-S-问题是关于提取的,所以这里的答案主要集中在这方面。所以这里的要点和你的答案完全一样——你可以用不同的方式查询并处理结果。您的答案使用bq查询…>file.ext
,这也是合法的。但是上面(我的)和其他对摘录说“不”的答案仍然正确:o)您可以添加更多关于如何使用bq命令使用临时表的详细信息吗用户界面已经更改,不再有另存为表。另外请注意,您必须启用正确的权限,否则这将不起作用。
bq query --format=csv --max_rows=999999 --use_legacy_sql=false\
"select dept_id,sum(sal) from temp.employee group by dept_id" > employee.csv
gsutil mv employee.csv 'gs://XXXX/employee.csv'
EXPORT DATA OPTIONS(
uri='gs://mybucket/myfolder2/*.csv',
format='CSV',
overwrite=true,
header=true,
field_delimiter=';') AS
SELECT 1 as field1, 2 as field2