如何从 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