Задачи | Результаты |
---|---|
Объединить из разных источников информацию о финансовой активность пользователей Подготовить информацию для аналитиков в дашборде |
Выбрана следующа схема выгрузки данных из хранилища S3 и загрузки в Vertica с помощью DAG AirFlow.
Использую пакеты boto3
, vertica_python
.
Первый DAG s3_to_vertica_dag.py выгружает файлы из S3, фильтрует ранее загруженные, записывает данные в слой STG в Vertica и запускает второй DAG с помощью TriggerDagRunOperator, передавая ему дату {{ ds }} из AirFlow.
Второй DAG vertica_stg_to_cdm_dag.py настроен на запуск в 00:00 на обработку данных за каждый прошедший день за требуемый диапазон дат:
dag = DAG('s3_to_vertica_dag',
default_args=args,
schedule_interval='@daily',
start_date=pendulum.datetime(2022, 10, 1),
end_date=pendulum.datetime(2022, 11, 1),
catchup=True, # Обработать предыдущие периоды
Он запускается по триггеру из первого и переносит данные из STG в DDS и CDM.
В слое DDS применена архитектура Data Vault
В /src/sql - SQL-запросы формирования таблиц, проекций таблиц, а также скрипт подготовки данных для итоговой витрины.
Дашборд для аналитиков в Metabase с необходимыми метриками и фильтрами по валюте и дате.