Системный анализ
С 2004 года занимался созданием web-сайтов как системный аналитик и разработчик. В числе них: собственный проект - сайт и база данных фигурного катания России, рабочие коммерческие проекты - сайты Детской футбольной лиги России и международного турнира UTLC Cup, сайты эстонской фигуристки Елены Глебовой и российского футболиста Валерия Леонова. На всех проектах собирал или формулировал бизнес-требования, разрабатывал технические задания и планы реализации. Подробнее о проектах сайтов.
В работе использую диаграммы (ER, UML Sequence Diagram, Use Case Diagram / PlantUML, Draw.io, знаком с BPMN 2.0), документацию веду в wiki-системе (Confluence, «Сфера»), задачи завожу в Jira, код храню в Git.
В работе использую диаграммы (ER, UML Sequence Diagram, Use Case Diagram / PlantUML, Draw.io, знаком с BPMN 2.0), документацию веду в wiki-системе (Confluence, «Сфера»), задачи завожу в Jira, код храню в Git.
Инженерия данных
Много лет стремлюсь систематизировать и анализировать данные. Для ETL на работе использовал Apache Airflow и MS SSIS. Изучаю Python (Django) и работу с Big Data, поднимаю в Docker различные СУБД. Создаю свои датасеты по аэропортам России, электростанциям, НПЗ, городам. В 2022 году работал аналитиком данных в «Альфа-Банке», использовал Python и Airflow.
Базы данных и SQL
Опыт работы с SQL с 2004 года.
Могу эффективно работать как аналитиком, так и разработчиком - такой опыт был с DWH в ВТБ и «Европлане».
СУБД: Greenplum, PostgreSQL (PL/pgSQL), ClickHouse, MS SQL (T-SQL), Oracle, MySQL, Teradata, MongoDB.
Экосистема Hadoop: PySpark, Hive, Impala, HDFS
Свой проект, созданный самостоятельно: база данных фигурного катания России (главный справочный ресурс в России в 2009-19 годах)
Использую:
- DDL (table, view, function)
- Пишу хранимые процедуры на PostgreSQL и MS SQL Server
- Работа с планом запроса (explain analyze) и обновление статистики (analyze)
- Индексы (create [unique] index)
- Разные виды джоинов (inner join, left join, full join)
- Агрегатные функции (count, sum, avg, max, min)
- Оконные функции (ранжирующие - row_number, dense_rank; смещения - first_value, last_value, lag)
- Общие табличные выражения (CTE)
- Временные таблицы и вложенные запросы
- Выражения case, coalesce, nullif, предикат [not] exists
- Поля JSON
DWH
Большой интерес к работе с корпоративными хранилищами данных (DWH). Умею выделять сущности, выстраивать связи между ними и проектировать архитектуру баз данных. Разрабатывал логические и физические модели данных. Понимаю версионирование записей, SCD1/SCD2, нормальные формы и методологию DataVault 2.0.
Проектирую и разрабатываю витрины данных с нуля, со сложной логикой, склейкой бизнес-историчности, инкрементальной загрузкой. Составляю маппинги S2T. Пишу хранимые процедуры. Оптимизирую запросы с учётом особенностей конкретной СУБД.
В 2022-24 годах работал системным аналитиком с функционалом разработчика на проекте миграции DWH в ВТБ. Также являлся SQL-разработчиком в «Европлане» в 2021-22 годах.
Хорошо пониманию работу MPP-систем и конкретно Greenplum (Arenadata DB).
Просмотрел три сезона лекций проекта DataTalks от «РТ» и абсолютное большинство материалов про DWH на YouTube и в подкастах.
Python
Парсинг данных игроков чемпионата России по футболу 2020/21 с сайта Championat.com: Python+Jupyter Notebook (успешное тестовое задание на разработчика аналитических систем)
Фреймворки: PySpark, Django и Django REST Framework (в процессе изучения)
Библиотеки для работы с данными: pandas, NumPy
Библиотеки для визуализации: Matplotlib, Seaborn, Plotly
Прочие библиотеки: Beautiful Soup
ML-библиотеки: Scikit-learn (fit/predict, построение моделей - дерево решений, логистическая регрессия и случайный лес). Делал кластеризацию клиентов с помощью KMeans.
Основные инструменты - VS Code и Jupyter Notebook, а также PyCharm.
Для проверки гипотез использовал тесты: t-критерий Стьюдента, U-критерий Манна - Уитни, Z-тест.
Курсы
Яндекс.Практикум:
- «Инженер данных (Data Engineer)» (бета 6-месячного курса)
- Managed Service for Greenplum
Karpov.Courses
- Docker, мини-курс
Stepik
- Постановка задачи на разработку ПО
- Введение в Data Science и машинное обучение (Анатолий Карпов)
- Основы статистики (Анатолий Карпов)
Прочие
- Мини-курс Брайана Кукси «Введение в API»
Исследования
Исследование объявлений о продаже квартир в Санкт-Петербурге и Ленинградской области: Python+Jupyter Notebook (учебный проект)
Презентация
Графики в Numbers:
Статистика аэропортов и авиакомпаний (собственное исследование):
Tableau:
Дашборд со статистикой авиакомпаний России (собственное исследование)