从Google BigQuery提取结果到云存储(使用Golang)

huangapple go评论81阅读模式
英文:

Extracting result from Google BigQuery to cloud storage golang

问题

我正在使用以下的GoLang包:https://godoc.org/cloud.google.com/go/bigquery

我的应用程序在Google App Engine上运行。

如果我正确理解文档,应该可以使用作业将作业/查询的结果提取到Google Cloud Storage。我认为文档不太清楚,想知道是否有人有示例代码或其他帮助。

TL:DR

  1. 在使用Go语言而不是命令行时,如何访问临时表。

  2. 如何将我的BigQuery结果提取到GCS。

编辑

我使用的解决方案

我创建了一个临时表,并将其设置为查询结果的目标(Dst),然后创建了一个导出作业。

dataset_result.Table(table_name).Create(ctx, bigquery.TableExpiration(time.Now().Add(1*time.Hour)))

更新2018年:

https://github.com/GoogleCloudPlatform/google-cloud-go/issues/547

获取表名的方法:

q := client.Query(...)
job, err := q.Run(ctx)
// 处理错误
config, err := job.Config()
// 处理错误
tempTable := config.(*QueryConfig).Dst
英文:

I am using the following GoLang package: https://godoc.org/cloud.google.com/go/bigquery

My app runs in Google App Engine

If I have understood the documentation correctly it should be possible to extract the result of a job/query to Google Cloud Storage using a job. I don't think the documentation is very clear and was wondering if anyone has an example code or other help.

TL:DR

  1. How do I get access to the temporary table when using Go Lang instead of command line.

  2. How do I extract the result of my Bigquery to GCS

** EDIT **

Solution i used

I created a temporary table and set it as the Dst (Destination) for the Query result and created an export job with it.

dataset_result.Table(table_name).Create(ctx, bigquery.TableExpiration(time.Now().Add(1*time.Hour)))

Update 2018:

https://github.com/GoogleCloudPlatform/google-cloud-go/issues/547

To get the table name:

q := client.Query(...)
job, err := q.Run(ctx)
// handle err
config, err := job.Config()
// handle err
tempTable := config.(*QueryConfig).Dst

答案1

得分: 1

如何将我的 BigQuery 结果提取到 GCS?

您无法直接将查询结果写入 GCS。您首先需要运行查询,将结果保存到永久表中,然后启动一个导出作业将结果导出到 GCS。

如何在使用 Go 语言而不是命令行时访问临时表?

您可以使用作业 API,或者在使用 Web UI 时查看查询历史记录。请参阅这里这里

英文:

> How do I extract the result of my BigQuery to GCS

You cannot directly write the results of a query to GCS. You first need to run the query, save the results to a permanent table, and then kick off an export job to GCS.

https://cloud.google.com/bigquery/docs/exporting-data

> How do I get access to the temporary table when using Go Lang instead of command line.

You call use the jobs API, or look in the query history if using the web UI. See here and here.

https://cloud.google.com/bigquery/querying-data#temporary_and_permanent_tables

huangapple
  • 本文由 发表于 2017年2月22日 18:37:11
  • 转载请务必保留本文链接:https://go.coder-hub.com/42388804.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定