Разработал годовой финансовый отчет за 2018 год.
Необходимо было в короткие сроки разобраться в сложной структуре базы данных компании. Затем составить сложный SQL запрос для извлечения всех данных по всем продажам за год. Также необходимо было провести дополнительную обработку данных, которую проблематично сделать на уровне SQL запроса. Отчет требовалось предоставить бухгалтерии в формате xlsx для дальнейшей обработки в Excel.
В процессе работы пришлось преодолеть некоторые сложности:
В результате, написал довольно сложный SQL запрос, разделенный на логические блоки с помощью переменных и оператора WITH. Для обработки различных структур таблиц пришлось использовать WHEN/ELSE. В некоторых случаях для обработки данных пришлось использовать pivot и crosstab. Часть данных пришлось ввести вручную с использованием временной таблицы.
Поскольку запрос получился сложным, то он мог выполняться более 10 секунд для интервала в один месяц. Отчет за весь год выгрузить не было возможности. Кроме того, требовалась дальнейшая обработка данных. В результате принял решение выгружать данные по месяцам в csv файлы, затем обрабатывать и собирать в единый отчет с помощью Python скрипта. Также в рамках python скрипта обрабатывались данные, отсутствующие в основной базе. К примеру, данные, хранящиеся в excel файлах и Google Docs.
Также в определенный момент возникла необходимость конвертировать платежи из разных валют и приводить к единой валюте. Конвертацию нужно было проводить по курсу на момент совершения платежа. В результате пришлось написать парсер для получения курсов валют из официальных источников(EUR, RUB, GBP, CAD, MXN).
Полученный отчет был использован для прохождения аудита и в дальнейшем для работы с новыми данными.
Также мною были разработаны другие менее сложные аналитические отчеты. Для визуализации данных и взаимодействия с пользователем использовались возможности системы Metabase.
Стек технологий: Python, Excel, PostgreSQL, Metabase