在脚本错误中创建或替换临时表:“超出速率限制:此表的表更新操作过多." [英] CREATE OR REPLACE TEMP TABLE in a script error: "Exceeded rate limits: too many table update operations for this table."
本文介绍了在脚本错误中创建或替换临时表:“超出速率限制:此表的表更新操作过多."的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
此脚本在约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屋!
查看全文