如何从 Google bigquery(google-cloud-ruby gem)的视图表(具有 resource_full)中获取数据

Posted

技术标签:

【中文标题】如何从 Google bigquery(google-cloud-ruby gem)的视图表(具有 resource_full)中获取数据【英文标题】:how to get data from a view table(which has resource_full) from Google bigquery(google-cloud-ruby gem) 【发布时间】:2018-02-13 12:05:29 【问题描述】:

我正在开发 Sinatra,ruby 应用程序。

我需要从 Google-BigQuery 中的一个视图表中获取数据,并且我在我的应用程序中使用 google-cloud-bigquery gem。

这里是如何查询 google-bigquery(ruby 代码)

bigquery = Google::Cloud::Bigquery.new(<necessary credentials for the application>)
query = "select * from `dataset.table_name`  limit 10"
bigquery.query query  => #(this query will give me the exact output)

但是,当我无限制地查询时,像以下

query = "select * from `dataset.table_name`"
bigquery.query query

我会得到这样的回应。

Google::Cloud::InvalidArgumentError (resourcesExceeded: Resources exceeded during query execution: The query could not be executed)

所以,在这种情况下,我该如何处理。因为,我需要从该表中获取所有数据,我不应该给出任何限制。

【问题讨论】:

【参考方案1】:

而不是查询整个表 - 您应该使用 Tabledata: list API(或您选择的客户端中的相应方法)

使用List是免费的,还自带分页功能,可以一页一页的获取整表数据

【讨论】:

感谢您回复 Mikhail Berlyant。我已经通过 API 资源管理器尝试了该 API,并得到了以下响应。 "error": "code": 400, "message": "Cannot list a table of VIEW.", "errors": [ "message": "Cannot list a table of VIEW.", "domain ": "global", "reason": "invalid" ], "status": "INVALID_ARGUMENT" 如果您有任何代码示例来执行此操作以及默认的 PageToken 参数值是什么,请分享我/跨度> 你只能从表中列出数据,不能从视图中列出:o( 是的,Mikhail Berlyant 我会这样做。谢谢。

以上是关于如何从 Google bigquery(google-cloud-ruby gem)的视图表(具有 resource_full)中获取数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google Datalab,如何在 Google BigQuery 中使用 UDF 从复杂查询创建表?

从Google驱动器导入文件到bigquery时如何指定工作表

如何从 Google bigquery(google-cloud-ruby gem)的视图表(具有 resource_full)中获取数据

如何从 BigQuery 下拉列表中绘制多个日期到 Google Data Studio

从 Google Cloud Datalab 向 BigQuery 插入数据时如何调试解析错误?

如何从 Python 中的 App Engine 在 Google BigQuery 上创建架构?