【问题标题】:Extracting result from Google BigQuery to cloud storage golang从 Google BigQuery 提取结果到云存储 golang
【发布时间】:2017-07-12 08:15:08
【问题描述】:

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

我的应用在 Google App Engine 中运行

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

TL:DR

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

  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)
// handle err
config, err := job.Config()
// handle err
tempTable := config.(*QueryConfig).Dst

【问题讨论】:

    标签: google-app-engine go google-bigquery google-cloud-storage


    【解决方案1】:

    如何将 BigQuery 的结果提取到 GCS

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

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

    在使用 Go Lang 而不是命令行时如何访问临时表。

    您调用使用作业 API,或者如果使用 Web UI,则查看查询历史记录。请参阅herehere

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

    【讨论】:

    • 似乎有点奇怪,您无法访问由查询结果创建的临时表并将其存储(/导出)到 GCS。这样做是否合理,而不是自己解析和上传有关性能的数据?
    • 我的结果查询在 1-5 mb 之间
    • 奇怪与否,恐怕就是这样。要导出到 GCS,您首先需要写入永久表,然后启动导出作业到 GCS。
    • 为了将来参考,他们现在(自 2017 年 12 月起)添加了直接访问它的功能:github.com/GoogleCloudPlatform/google-cloud-go/issues/547
    猜你喜欢
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    相关资源
    最近更新 更多