Google bigquery 从BigQuery select语句将数据导出到google云存储,不带临时表

Google bigquery 从BigQuery select语句将数据导出到google云存储,不带临时表,google-bigquery,google-cloud-storage,Google Bigquery,Google Cloud Storage,是否有任何方法可以将数据从select语句BigQuery导出到google云存储,而无需创建表 我需要每天根据select语句BigQuery提取数据,并将文件放入google云存储 我知道我们可以通过以下方式从BigQuery进行导出 命令行-在此选项中,我需要创建一个临时表。没有临时表,我看不到任何示例或语法。 bq查询-destination_table=mydataset.happyhalloween选择名称,从mydataset.babynames中计数,其中性别='M'按计数顺序描

是否有任何方法可以将数据从select语句BigQuery导出到google云存储,而无需创建表

我需要每天根据select语句BigQuery提取数据,并将文件放入google云存储

我知道我们可以通过以下方式从BigQuery进行导出

命令行-在此选项中,我需要创建一个临时表。没有临时表,我看不到任何示例或语法。 bq查询-destination_table=mydataset.happyhalloween选择名称,从mydataset.babynames中计数,其中性别='M'按计数顺序描述限制6 bq摘录“bigquery公共数据:samples.shakespeare”gs://example bucket/shakespeare.csv

WebConsole-此选项已禁用,因为需要计划 API-使用API,我也无法从SQL查询中看到。我看到了整个表格中的示例。 让我知道是否有任何方法可以从BigQuerySelect语句将数据导出到google云存储,而无需创建临时表

谢谢,

查询结果为空

指定目标表时,它是一个永久表,但如果不指定,BigQuery将创建一个短期临时表来存储结果。如果查看查询历史部分,可以看到这些临时表的名称

在将临时表指定为源时,我成功地运行了到云存储的导出作业

bq extract my-project:_63cfa3...c5d1ef7 gs://my-bucket/my_table.csv
关于使用API,如果在插入作业后获得该作业,则可以看到目标表

在我的示例中,获取与查询作业关联的作业ID的响应显示

{
 "kind": "bigquery#job",
 "id": "my-project:bquijob_ca7e64e_15cf54562fb",
 "jobReference": {
  "projectId": "my-project",
  "jobId": "bquijob_ca7e64e_15cf54562fb"
 },
 "configuration": {
  "query": {
   "query": "SELECT \"ABC\"",
   "destinationTable": {
    "projectId": "my-project",
    "datasetId": "_63cfa399614a54153cc386c27d6c0c6fdb249f9e",
    "tableId": "anondca79e1ad06d03be556f3fc3fdbaaf2b9c5d1ef7"
   },
   "createDisposition": "CREATE_IF_NEEDED",
   "writeDisposition": "WRITE_TRUNCATE",
   "useLegacySql": false
  }
 },
 "status": {
  "state": "DONE"
 },
...
}

使用BigQuery SQL提供的导出数据选项命令

查询:

EXPORT DATA OPTIONS(uri="gs://example-bucket/shakespeare.csv",format='csv') AS SELECT name,count FROM mydataset.babynames WHERE gender = 'M' ORDER BY count DESC LIMIT 6
因此,使用'bq'命令行实用程序,它将是这样的

bq query --format=prettyjson --use_legacy_sql=false 'EXPORT DATA OPTIONS(uri="gs://example-bucket/shakespeare.csv",format='csv') AS SELECT name,count FROM mydataset.babynames WHERE gender = 'M' ORDER BY count DESC LIMIT 6'

为什么你们认为临时表对你们来说是个问题?我并没有BigQuery的写权限,只有select权限和bucket的完全权限。因此,寻找将文件直接放入存储而不是临时表的选项。