Проектирование хранилища данных (DWH) для крупной ИТ-компании
Мы создали аналитическое окружение для автоматизации сбора, обработки и визуализации информации — спроектировали хранилище данных (DWH), настроили ETL-процесы в Airflow и разработали дашборды в Superset.
Клиент
Крупная ИТ-компания.
Задача
Для автоматизации внутренних рабочих процессов заказчику необходимо создать аналитическое окружение — комплекс программных инструментов, которые упростят сбор, обработку и визуализацию данных.
Бизнес задачи
-
Получить инструмент для оперативного сбора и анализа данных
-
Создать единый источник достоверных данных для всех пользователей.
-
Обучить пользователей работе в системах аналитики данных.
Технические задачи
-
Проектирование масштабируемой DWH-архитектуры
-
Автоматизация загрузки и трансформации данных из разных источников
-
Обеспечение безопасности данных через ролевую модель доступа
-
Оптимизация производительности запросов к большим объемам данных
Решение
1. Анализ и проектирование
За 3 недели мы проанализировали инфраструктуру других компаний на рынке, провели поиск информации о необходимых ИТ-продуктах в системе и изучили рынок наиболее эффективных решений. На основе собранных данных для развертывания необходимой инфраструктуры подготовили техническое задание для DevOps-инженеров.
Подобрали необходимые решения: систему управления базами данных (СУБД), ETL-инструменты, BI-системы и дополнительные программные продукты. Для хранения исторических данных решили использовать Greenplum, а для оперативной аналитики — ClickHouse.
На данный момент ClickHouse — наиболее быстрая аналитическая система, которая позволяет сокращать время выполнения аналитических запросов в несколько раз.
2. Разработка ETL-процессов
Для извлечения данных из различных источников и их преобразования в пригодный для аналитики формат (а также загрузки вцелевую систему) разработали ETL-процессы (Extract, Transform, Load).
В течение следующих 6 недель мы написали в Airflow 15+ DAG (Directed Acyclic Graph — скрипты или коды, описывающие логику и порядок извлечения, преобразования, выгрузки данных), для сложных трансформаций реализовали обработку данных через Python (Pandas), а также настроили мониторинг и уведомления при сбоях.
Автоматизация с использованием ETL-процессов позволила на 100% снизить количество ошибок, возникающих при ручной обработке данных.
3. Визуализация
Следующие 4 недели занимались разработкой дашбордов по ключевым метрикам в Superset и их редактированием.
4. Внедрение
В течение 2 недель мы провели 4 обучающих вебинара для 20+ сотрудников и настроили ролевой доступ к системе.
Результат
Клиент получил готовую аналитическую систему, предназначенную для работы с данными разных форматов и из разных источников.
Были оказаны услуги:
-
Сбор требований к аналитической платформе
-
Проектирование архитектуры DWH (Greenplum, ClickHouse)
-
Разработка ETL-пайплайнов в Airflow и написание DAG на Python
-
Создание витрин данных и оптимизация SQL-запросов
-
Настройка интеграции с внешними API
-
Разработка интерактивных дашбордов в Superset
-
Внедрение системы контроля версий (GitLab)
-
Обучение команды работе с новыми инструментами
Команда SimbirSoft на проекте состояла из 11 человек:
- 6 Data-аналитиков
-
2 системных аналитика
-
2 DWH-аналитика
-
1 DevOps-инженер
Технологии
- Базы данных: Greenplum, ClickHouse
- ETL: Airflow (Python), Pandas
- Визуализация: Superset
- Инфраструктура: Docker, k9s
- Контроль версий: GitLab
- IDE: PyCharm, DBeaver