Перевод table_date_range в table_suffix не работает, потому что ответ слишком велик - PullRequest
0 голосов
/ 06 июня 2019

У меня есть следующий запрос в 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".

Большое спасибо!

1 Ответ

0 голосов
/ 06 июня 2019

У вас не должно возникнуть проблем при создании представления.Однако, когда вы запрашиваете представление, вам нужно либо выбрать конкретные даты, либо записать результаты в таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...