GCP Dataflow API не оценивает функцию now/today(), вызываемую в рецепте, написанном на dataprep.

После запуска API dataflow.projects.locations.templates.launch (я протестировал также «создание» API) с шаблоном, сгенерированным ранее в dataprep, столбец, сгенерированный с помощью функции today() (я также протестировал «now()» функция), кажется, не оценивается во время выполнения задания. Указанная дата всегда заполняется днем, когда шаблон был создан в первый раз.

Это правильное поведение? почему в столбце не указана дата запуска задания?


person Massimiliano Fanelli    schedule 25.09.2018    source источник


Ответы (1)


Это действительно ожидаемое поведение, и оно фактически задокументировано в раздел "Известные ограничения" на странице документации о выполнении задания Dataprep в Cloud Dataflow:

Шаблоны Cloud Dataflow, сгенерированные из задания Cloud Dataprep by TRIFACTA, предназначены для использования в качестве статической копии задания, выполняемого в данный момент времени.

  • Все относительные функции вычисляются на основе момента выполнения. Такие функции, как NOW() и TODAY, не пересчитываются при выполнении шаблона Cloud Dataflow.
  • Чтобы обновить выходные значения этих функций, повторно запустите задание в Cloud Dataprep с помощью TRIFACTA через пользовательский интерфейс или запланированное задание. Затем выполните задание шаблона Cloud Dataflow.

Итак, как было предложено во фрагменте документации выше, чтобы получить текущее значение для функций TODAY()/NOW(), вам нужно будет повторно запустить задание в Dataprep и выполнить шаблон.


ПРИМЕЧАНИЕ. Если вам интересно понять, почему такое поведение, я рекомендую вам просмотреть документация по шаблонам потока данных, хотя вы можете воспринимать это просто как информативные данные, учитывая, что это не относится к шаблонам Dataprep (которые нельзя настроить). Такие функции, как TODAY() или NOW(), следует передавать в качестве параметра времени выполнения, учитывая, что значение изменится при выполнении; чтобы разрешить использование параметров времени выполнения, Dataflow предлагает интерфейс ValueProvider.

person dsesto    schedule 12.12.2018