在脚本错误中创建或替换临时表:“超出速率限制:此表的表更新操作过多." [英] CREATE OR REPLACE TEMP TABLE in a script error: "Exceeded rate limits: too many table update operations for this table."

查看:36
本文介绍了在脚本错误中创建或替换临时表:“超出速率限制:此表的表更新操作过多."的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此脚本在约11个步骤后给了我一个错误:

This script gives me an error after ~11 steps:

DECLARE steps INT64 DEFAULT 1;
LOOP 
  CREATE OR REPLACE TEMP TABLE countme AS (SELECT steps, 1 x, [1,2,3] y);
  SET steps = steps+1;
  IF steps=30 THEN LEAVE; END IF;
END LOOP;

超出的速率限制:此表的表更新操作过多.有关更多信息,请参见 https://cloud.google.com/bigquery/troubleshooting-errors

即使这是一个临时表,我该怎么办?

Even if this is a temp table - what can I do instead?

推荐答案

而不是使用 TEMP TABLE ,而是将结果保存在带有数组的temp变量上.您甚至可以将其实现为最后一步:

Instead of using a TEMP TABLE, hold the results on a temp variable with an array. You can even materialize it as the last step:

DECLARE steps INT64 DEFAULT 1;
DECLARE table_holder ARRAY<STRUCT<steps INT64, x INT64, y ARRAY<INT64>>>;

LOOP 
  SET table_holder = (
    SELECT ARRAY_AGG(
      STRUCT(steps, 1 AS x, [1,2,3] AS y))
    FROM (SELECT '')
  );
  SET steps = steps+1;
  IF steps=30 THEN LEAVE; END IF;
END LOOP;

CREATE TABLE temp.results
AS
SELECT *
FROM UNNEST(table_holder)

这篇关于在脚本错误中创建或替换临时表:“超出速率限制:此表的表更新操作过多."的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆