BigQuery允许大结果在什么时候不起作用

时间:2016-12-18 16:13:58

标签: google-bigquery rstudio-server

我正在尝试使用以下命令将BigQuery中的表检索到Rstudio服务器中:

project <- "my-project"
sql <- 'SELECT * FROM [my-project:dataset.table]'
data <- query_exec(sql, project = project, max_pages = Inf)
  

错误:响应太大而无法返回。考虑在作业配置中将allowLargeResults设置为true。有关详细信息,请参阅https://cloud.google.com/bigquery/querying-data#largequeryresults

我已检查过&#34;允许大结果&#34;在浏览器中配置表时,仍然会得到相同的错误。

使用以下内容但没有任何成功。

bq query --allow_large_results --destination_table=dataset.table1 "select x, y, z from dataset.table"

1 个答案:

答案 0 :(得分:1)

通常,当您收到此错误时,必须将allowLargeResults设置为true并指定目标表。您可以在错误消息提供的链接中找到解释:

  

通常,查询具有最大响应大小。如果你打算跑一个   查询可能返回更大的结果,您可以设置allowLargeResults   在您的工作配置中为true。 需要配置大结果   您要指定目的地表。你需支付存储费用   目的地表。

在您的情况下,我猜您使用的是bigrquery包。如果是这样,函数query_exec有一个名为destination_table的可选参数,其描述为:

  

(可选)大型查询的目标表,   或者作为BigQuery使用的格式的字符串,或者作为列表   project_id,dataset_id和table_id条目

总之,使用此参数可以提供目标表(并隐式将allowLargeResults设置为true),因此您应该使用:

project <- "my-project"
sql <- 'SELECT * FROM [my-project:dataset.table]'
data <- query_exec(sql, project = project, max_pages = Inf,
                   destination_table = "my-project:dataset.newtable")

请记住,您将在数据集中创建一个名为 newtable 的新表。