Создать DAG в Apache Airflow, который будет по расписанию запускать
Необходимо создать DAG в Apache Airflow, который будет по расписанию запускать расчёт витрины активности клиентов по сумме и количеству их транзакций.
Нужно наладить следующий ETL-процесс:
Какой ожидаем увидеть результат:
Необходимо реализовать DAG в Apache Airflow по указанной выше инструкции. В качестве ответа на задание приложите код создания дага и налаженного etl-процесса; а также скрин графа в Airflow и его успешного запуска на главной странице.
Нужно наладить следующий ETL-процесс:
- Extract. Необходимые данные хранятся в таблице
profit_table.csv
. Это таблица, в которой для каждого клиента по 10-ти продуктам собраны суммы и количества транзакций за каждый месяц.
Что в названиях столбцов:id
— уникальный идентификатор клиента;- продукты обозначены буквами от a до j латинского алфавита;
- сумма транзакций по соответствующим продуктам начинается с
sum_…
; - количество транзакций по соответствующим продуктам начинается с
count_…
.
- Transform. Суть витрины, которую необходимо собрать, таблица с флагами активностей клиентов по продуктам. Методика расчёта следующая: клиент считается активным по продукту за дату X, если в предыдущие 3 месяца (X, X-1 и X-2) у него были ненулевая сумма и количество транзакций по нему.
Но это за нас уже реализовали дата-саентисты. Их код для сбора итоговой витрины находится в функцииtransform
в файлеtransform_script.py
, его необходимо встроить в процесс. - Load. Итоговые результаты необходимо сохранять в csv-файл
flags_activity.csv
в той же директории, не перезатирая при этом данные старых расчётов в нём (обратите внимание, последнее не реализовано в примере кода от дата-саентиста, подумайте, какой параметр добавить при сохранении, чтобы всё прошло корректно).
profit_table
хранятся в общедоступной директории и пополняются ежемесячно новыми данными - поэтому при чтении таблицы всё должно выполниться без ошибок при наличии данных.Какой ожидаем увидеть результат:
Необходимо реализовать DAG в Apache Airflow по указанной выше инструкции. В качестве ответа на задание приложите код создания дага и налаженного etl-процесса; а также скрин графа в Airflow и его успешного запуска на главной странице.
profit_table.csv
— таблица с данными по транзакциям;transform_script.py
— скрипт от дата-саентиста;flags_activity.csv
— пример рассчитанного результата за 2024-03-01.