#google-bigquery
#google-bigquery
Вопрос:
У меня есть набор запросов, которые я хочу запускать каждый месяц в BQ. Пусть A> B обозначает, что A ЗАВИСИТ от B. У меня есть следующие запросы:
- вопрос 1
- q2 > q1
- q3 > q1
- q4 > q1
Как вы можете видеть, запросы 2-4 зависят от ожидания завершения запроса 1. Мне очень нравится система «запланированных запросов» в bigquery, но могу ли я использовать ее для чего-то подобного? Основная проблема в том, что я не могу понять, как указать моему запланированному запросу подождать, пока какой-либо другой запрос не завершится в консоли BQ. Я знаю, что моей альтернативой здесь является использование заданий Google BQ, но действительно хотел посмотреть, возможно ли это осуществить с помощью системы запланированных запросов.
Ответ №1:
Запустите их все как один скрипт в запланированном запросе. Используйте BEGIN…Блок ИСКЛЮЧЕНИЙ:
isert into q1_results
select ...
from table;
BEGIN
isert into q2_results
select ...
from q1_results;
EXCEPTION WHEN ERROR THEN
END;
BEGIN
isert into q3_results
select ...
from q1_results;
EXCEPTION WHEN ERROR THEN
END;
Комментарии:
1. Я рассматривал это, но моя главная проблема, несмотря на то, что q2, q3, q4 зависят только от q1. Как только q2 завершится с ошибкой, q3 даже не попытается выполнить. Это правильно?
2. О, извините. НАЧАТЬ… ТОГДА подойдет ИСКЛЮЧЕНИЕ .
3. Хм, я думаю, что это действительно может подойти, позвольте мне протестировать функциональность и вернуться к вам. Спасибо.