Состояние задания потока данных / Планирование и параметры - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь понять структуру организации и выполнения потока данных. Кажется, что основной вариант использования не поддерживается, но, возможно, мне не хватает общего понимания предполагаемого проекта.

Моя цель: Я хочу выполнить свой конвейер потока данных на регулярной основе интервал как ограниченная / пакетная работа. У меня есть аргумент временного диапазона, который позволяет мне запускать один и тот же конвейер для заданной c исторической засыпки или ежечасно. Предполагается, что этот аргумент обновляет запрос BigQuery SQL в конвейере.

Результат: В коде конвейера я пытаюсь сгенерировать аргумент диапазона на основе системного времени, доступного в время намеченной работы. К сожалению, я обнаружил, что аргумент времени, используемый для моего запроса BigQuery, не обновляется. Кажется, это застряло в то время, когда работа была впервые поставлена. Код в моей конфигурации запуска конвейера выполняется только один раз во время подготовки и не обновляется при последующих запусках или изменениях значений параметров.

Варианты решения: Кажется, что нет способ изменить запрос при каждом запуске задания? Или есть? Я понимаю, что существует неограниченный / оконный подход, но я не могу найти документированный способ добиться этого с помощью коннектора ввода-вывода BigQuery. В любом случае, это касается только временных аргументов. Что если я хочу запустить один и тот же конвейер несколько раз, но с разными фильтрами запросов? Нужно ли ставить кучу разных шаблонов?

Например, предположим, что я хочу выполнить преобразование для всех записей с метками времени в течение каждого часа? В настоящее время я использую Cloud Scheduler для выполнения http-запроса непосредственно в API Dataflow каждый час. Возможно, мне нужно создать собственную конечную точку службы, которая каждый раз устанавливает / обновляет шаблон?

Но что, если я захочу создать несколько запланированных заданий, запускающих один и тот же поэтапный шаблон? Какой смысл выставлять параметры, если я не могу менять их при каждом запланированном запуске? Так как я всегда могу изменить конфигурацию самостоятельно во время создания шаблона. (например, с помощью Maven) Кажется, излишне stati c верно?

...