Comments 7
А рассматривали ли вы вариант использования Talend?
Если я не ошибаюсь, то в основном Talend применяется для интеграции данных, то есть извлечение данных из источника, применение минимальных преобразований и складывание в другом месте. Для подобных задач, в ПГК, используется ETL-инструмент Apache NiFi. Например для получения данных КТИ, которые мы закупаем у РЖД, реализована группа процессов, которые извлекают дневной срез данных по вагонам и складывает в БД Oracle.
Также, для работы с Talend используется Java или Perl, однако основным языком программирования в ПГК является Python.
Пусть ПГК использует то, что есть. Я для ETL использовал богатую палитру инструментов Talend, не написав при этом ни строчки кода.
Исторически тема интересна для меня, как для бывшего вагонника 1983 г. БелИИЖТ.
NiFi - это интеграциооный инструмент. Talend - полноценный ETL (ELT при желании).
Делать ETL написанием кода в процедуре или в MV весьма порочная практика и к сожалению наиболее часто встречающаяся
Если ваша команда использует airflow, то можно хранить код в DAG-ах, а не в базе. Дополнительно получаем
возможности декомпозиции по таскам
python вместо PL/SQL
В каких случаях предпочтительнее использовать материализованные представление вместо кода рядом с airflow?
Корпоративный AirFlow в ПГК был поднят совсем недавно, до него был развернут инстанс в докере на машине, которая предназначена для обучения моделей (ребята потеснились немного и разрешили его там развернуть, только архитекторам не говорите ?).
Соответственно использовать данный инстанс на регламенте для трансформации данных не представлялось возможным.
В настоящее время, задача по переносу процесса обработки данных КТИ на корпоративный AirFlow находится в беклоге и в ближайшее время будет реализована.
Материализованные представления отлично подходят для аггрегации данных, поэтому подобные операции переписываться на Sql Alchemy не будут.
В свое время решил данную задачу просто написав планировщих запуска кода процедур из пакетов. API позволяло выстроить граф зависимостей и потом его визиализировать на веб морде в виде диаграммы ганта.
Повзрослев, перешел на ELT подход в разработке - генерация исполняемого SQL кода на основе метаданных, формируемых диаграммой процесса. Все остальное, простите, - костыли
Применение Materialized Views в организации ETL-процессов