Я пытался динамически выбирать из указанных c таблиц, чтобы уменьшить общее количество обработанных данных. Использование _TABLE_SUFFIX, кажется, работает, когда фильтры устанавливаются вручную следующим образом
Обратите внимание, что объявленные переменные здесь не вариант, это запланированный запрос с использованием веб-интерфейса BigQuery, и использование объявленных переменных, по-видимому, препятствует сохранению выходная таблица.
SELECT * FROM SOME_TABLE
WHERE _TABLE_SUFFIX BETWEEN "20200101" and FORMAT_DATE("%Y%m%d", CURRENT_DATE())
>>> 50MB PROCESSED
Однако динамическая установка _TABLE SUFFIX на основе какой-либо другой таблицы, по-видимому, выполняет полное сканирование таблицы. Обратите внимание, что здесь выбрано одно и то же значение.
SELECT * FROM SOME_TABLE
WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE("%Y%m%d", (SELECT MAX(date) FROM OTHER TABLE)) and FORMAT_DATE("%Y%m%d", CURRENT_DATE())
>>> 350mb PROCESSED