0

BigQuery レガシー 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