Меня попросили написать более "профессиональную" версию сценария ETL. Под профессионалом я подразумеваю: контроль (ведение журнала и оповещения по электронной почте), параллелизм и планирование. Помня об этих целях, я начал читать документацию Apache Airflow .
Все выглядит отлично, но я не знаю, как лучше подходить к параллелизму . Исходный скрипт начинается с загрузки списка идентификаторов объектов. Затем для каждого идентификатора он выполняет запрос к другой конечной точке, выполняет некоторые базовые c вычисления (генерирует новые поля) и сохраняет данные в CSV-файле.
Каков наилучший подход для этого? в параллели? Динамически запустить задачу для каждого объекта и присоединить данные позже? Является ли использование XCOM для передачи данных хорошей идеей? Что делать, если есть тысячи объектов? Другая вещь, которую было бы неплохо иметь, это повторять запрос в случае его сбоя.
Я знаю, что в этом случае я должен использовать исполнителя сельдерея и породить нескольких рабочих для выполнения всех задач.
Является ли Apache Airflow подходящим инструментом? Спасибо!