Я думаю, что такой подход хорош. Вы пытаетесь избежать использования XCOM, объединяя все этапы в один оператор, что, на мой взгляд, является достойной идеей и распространенным делом.
Что-то еще может сделать, это разделить задачу на несколько дополнительных шагов и «переставить» данные между шагами, что позволит вам иметь больше операторов и не использовать XCOM:
Оператор 1 (База данных -> Файловая система)
- Подключение к базе данных
- Запуск SQL для извлечения N записей из базы данных
- Запись этих записей в файловую систему как CSV
Оператор 2 (API вызовов с записями CSV)
- Считывание записей из файловой системы
- API вызовов с записями
- Запись новых записей в файловую систему как CSV
Оператор 3 (Файловая система -> База данных)
- Чтение записей из CSV вне файловой системы
- Запись записей в базу данных
Преимущество такого подхода состоит в том, что, скажем, в случае сбоя вызова API вам не нужно повторно запускать извлечение из базы данных. Вы просто перезапустите задачу API.