В настоящее время вы не можете добавить условный триггер к запланированному запросу BigQuery.
Вы можете вручную добавить отказоустойчивый запрос в свой запрос, чтобы проверить таблицу со вчерашнего дня, используя комбинацию кода ниже и DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
:
SELECT
MAX(FORMAT_TIMESTAMP('%F %T', TIMESTAMP(PARSE_DATE('%Y%m%d',
REGEXP_EXTRACT(_TABLE_SUFFIX,r'^\d\d\d\d\d\d\d\d'))) ))
FROM `DATASET.ga_sessions_*` AS ga_sessions
Очевидно, что это потерпит неудачу, если условия не будут выполнены, и не повторится, что, как я понимаю, не является улучшением вашей текущей настройки.
Я сталкивался с этим много раз в прошлом, и в конечном итоге мне пришлось перенести мои конвейеры данных в другое решение, поскольку запланированные запросы все еще довольно упрощены.
Я бы порекомендовал вам взглянуть на CRMint для простых конвейеров в BigQuery:
https://github.com/google/crmint
Если вы все еще находите это слишком упрощенным, вам следует взглянуть на Google Cloud Composer , где вы можете проверить, существует ли таблица перед выполнением определенного задания в конвейере: