BigQuery: как использовать run_date в запросе при обратном заполнении - PullRequest
0 голосов
/ 19 мая 2019

Я хочу взять данные из таблицы вчерашних событий аналитики firebase, преобразовать данные и обновить существующую многораздельную таблицу с тем же суффиксом, что и таблица событий источника.
Для таблицы назначения я могу использовать шаблон: shares_{run_time-24h|"%Y%m%d"}
Но в самом запросе все, что я мог придумать, было:

WHERE
_TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))

, которое прекрасно работает при ручном запуске, но, очевидно, генерирует вчерашнюю дату, когда я использую обратную засыпку (а не засыпку run_date)
Я пытался использовать @run_date без смещения, но это неверный запрос.

Ответы [ 2 ]

1 голос
/ 19 мая 2019

Вы должны иметь возможность передать @run_date в качестве аргумента FORMAT_DATE:

WHERE _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', @run_date)

Это работает, поскольку @run_date имеет тип DATE, поэтому вы можете использовать его везде, где DATE выражение допустимо.

0 голосов
/ 04 июня 2019
WHERE _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', @run_date)

На самом деле этот метод работает.Работая над этим, я столкнулся с несколькими проблемами, такими как @SagiLow: «Необъявленные параметры запроса».Это может быть потому, что @run_date не может манипулировать датами и работать между днями.Поэтому, хотя в конструкторе запросов это не работает, при планировании обратной засыпки это работает, выполняя для каждого дня запрос в конкретный день (не забывайте, что вам не нужен ИНТЕРВАЛ, потому что таблицы уже существуют).

...