【问题标题】:BigQuery Allow Large Results doesn't work whenBigQuery 允许大结果在以下情况下不起作用
【发布时间】:2017-05-03 18:41:32
【问题描述】:

我正在尝试使用以下内容从 BigQuery 将表检索到 Rstudio Server:

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

我在浏览器中配置表格时检查了“允许大结果”,仍然得到同样的错误。

也使用了以下方法,但没有任何成功。

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

【问题讨论】:

    标签: google-bigquery rstudio-server


    【解决方案1】:

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

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

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

    (可选)大型查询的目标表, 可以是 BigQuery 使用的格式的字符串,也可以是带有 project_id、dataset_id 和 table_id 条目

    总之,使用这个参数你可以提供一个目标表(并隐式设置allowLargeResults为真),所以你应该使用:

    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 的新表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-28
      • 2016-02-05
      • 2015-05-26
      • 2021-12-02
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      相关资源
      最近更新 更多