Если кратко - то да. Можно.
Если более подробно - то это долго. Мучительно. И где то в конце вы
создадите свой собственный
язык (DSL) который будет описывать все бизнес-преобразования данных.
Общая идея такая. Вы пишете одинаковый софт на Python для всех поставщиков данных а различия
реализуете как часть конфигураций. Пример (совершенно выдуманный):
datasources:
- datasource: Bitcoin
format: xls
header: on
- datasource: Market
format: csv
header: off
transformations:
- name : Bitcoin
filter: "WHERE payload is not null"
sink:
- name : Bitcoin
dest: jdbc:thin:oracle@....
Существует разумный баланс между DSL и частным решением для каждого провайдера
данных. Например с точки зрения передачи знаний для новых разработчиков решение
на DSL всегда плохое. По личному опыту коллегам
всегда не нравится то, что вам кажется
красивым и концептуальным. И чаще всего DSL языки тихо умирают с уходом с проекта
главного создателя и идеолога этих всех DSL.
В качестве основы для DSL не обязательно нужен Yaml. Это можно делать на Python, Lua, Lisp
и вообще даже на основном языке. Главное чтобы конфигурационная часть была декларативной
и не содержала циклов и проверок условий.