Задача обтекания зависит от множества разделов другого результата задачи - PullRequest
0 голосов
/ 23 февраля 2019

Я пытаюсь понять модель воздушного потока для организации моих заданий зажигания ETL.

Я хотел бы декларативно построить график выполнения для своих заданий.

Итак, в основном у меня есть следующее:

  • задание spark "ds1" создает раздел набора данных "ds1", для примера давайте представим, что это задание не зависит от других заданий.
  • задание spark "ds2"создает раздел набора данных "ds2", это задание зависит от первого задания, он получает несколько разделов "ds1" в качестве основных аргументов.

Это задание объединяет разделы "ds1" и выводит из них некоторый бизнес-результат.

Таким образом, в основном у меня есть 1 раздел для зависимости от многих разделов.

Я не могу просто создать такой dag:

ds1 >> ds2

Мне нужно что-то вроде этого:

ds1(partition_1) >> ds2
ds1(partition_2) >> ds2
ds1(partition_3) >> ds2

, где ds1 параметризован с аргументом раздела

Это будет работать, ноЗадачи "ds1" для разных разделов всегда будут перезаписывать результаты самих себя, поскольку они вычисляют одно и то же.

Чтобы преодолеть такое поведение, я думаю, что я могу использовать такие датчики:

ds1 >> sensor(partition_1) >> all_success
ds1 >> sensor(partition_2) >> all_success
ds1 >> sensor(partition_3) >> all_success
all_success >> ds2

Isэто единственный способ сделать это в потоке воздуха?Является ли это идиоматическим в потоке воздуха?

У меня есть опыт работы с Луиджи, и такую ​​зависимость в Луиджи можно сделать элегантно, вы можете сказать:

ds2 requires [ds1(partition_1), ds1(partition_2), ds1(partition_3)] 

Эта задача Luigi DS2 будет запускать расчетDS1 пропущенные разделы, а затем DS2 раздел будет рассчитан.Выглядит просто и понятно.Можно ли такое поведение сделать в потоке воздуха?Или, может быть, есть другие способы работы с такой зависимостью в потоке воздуха?

Итак, вопрос в том, как идиоматически в потоке воздуха работать с графиком зависимости от 1 до многих разделов?

Надеюсь, вопрос ясен.

Спасибо за помощь!

...