0

我在 BigQuery Legacy SQL 中有以下查询。到目前为止,此查询运行没有问题。

#legacySQL
SELECT
  Var1 AS Var1,
  Var2 AS Var2,
  Var3 AS Var3,
  Var4 AS Var4,

FROM
TABLE_DATE_RANGE([xxx.yyy_],   DATE_ADD(CURRENT_TIMESTAMP(), -33, 'DAY'), DATE_ADD(CURRENT_TIMESTAMP(), -1, 'DAY'))

在我们希望将所有查询逐步移至 StandardSQL 之后,新查询已在 StandardSQL 中编写如下。

#standardSQL
SELECT
  Var1 AS Var1,
  Var2 AS Var2,
  Var3 AS Var3,
  Var4 AS Var4,

FROM
`xxx.yyy_20*`

WHERE

parse_date('%y%m%d', _table_suffix) between DATE_ADD(CURRENT_DATE(), INTERVAL -33 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)

但是,此查询不再运行,而带有 LegacySQL 的变体工作正常。我收到以下错误消息:错误:响应太大而无法返回。考虑在您的作业配置中将 allowLargeResults 设置为 true。

带有 _table_suffix 的变体性能会差很多吗?还是有替代方案?我使用 Table_Date_Range 来查询大约 400 个表。

我想将结果保存为视图,而不必通过“AllowLargeResults”将它们写入表中。

非常感谢!

4

1 回答 1

0

创建视图应该没有问题。但是,当您查询视图时,您要么需要选择特定日期,要么将结果写入表中。

于 2019-06-06T14:31:33.940 回答