Как подружить ежа с ужомили другой взгляд на DWH
Дмитрий ШиршаковАлексей Спиридонов
Вместо введения - постановка задачи
В компании установлены сервисы:• 1С• Интернет-магазин• Платежная система• Корпоративный портал• Почта• Active directory• OLAP• АТС• etc
Постановка задачи
Корпоративная система целиком
1. N! связей
2. Изменение коробочных систем
3. Нет центра синхронизации
4. Возникновение конфликтов
Система выглядит так:
А разработчик вот так:
Варианты
0. Оставить, как есть
1. Централизованное решение (Data Warehouse)
2. Единая шина обмена данных (MQ Server)
Не надо бояться экспериментов
DWH решение
• Теоретическое количество интеграций = 2*N
• Меняется DWH, а не ПО
• Централизованная синхронизация
• Данные в DWH принимаются как "действительно правильные"
Варианты реализации DWH решение
• SQL
• Integration Services
• Специальные приложенияo Загрузчикиo Парсеры
Примеры реализации #1 - Корпоративные системы
Примеры реализации #2 - AD, телефония, трафик
Примеры реализации #3 - Internet
Примеры реализации #3 - Internet
Примеры реализации #4 - OLAP, аналитика, отчетность
Примеры реализации #5 - BI, KPI, модели, прогнозы
DWH - решение все вместе
DWH - решение все вместе
DWH - решение все вместе
Плюсы DWH
• Поддержка интерфейсов различных систем с использованием представлений.
• Консолидация данных в одном месте.
• Использование OLAP для обработки больших объемов данных.
Проблемы DWH
• Необходимость разбираться в установленных системах на уровне баз данных.
• Низкая скорость синхронизации.
Второй вариант
Единая шина передачи данных реализованная на
базе MQ Server
MQ Server, один отправитель, 2 получателя
• Временное хранение сообщений• FIFO• Гарантия доставки• Маршрутизация сообщений
Напоминаем как приходится разработчику:
Система с точки зрения MQ
Простота и понятность работы компонента
Новая жизнь разработчика
Плюсы MQ #1
Универсальный транспорт данных для систем на любых языках, технологиях и протоколах.
.NETPHPPythonC#JAVAErlang
и т.д.
RPCAMQPRESTSTOMP
WindowsLinuxMacOS
Плюсы MQ #2
Высокая скорость распространения изменений между компонентами системы.
~ 10 ms
Плюсы MQ #3
Высокая изолированность компонент друг от друга.
• Стабильность работы при отказе отдельных компонент
• Устойчивость системы к всплескам нагрузки
Плюсы MQ #4
Низкая стоимость модификации структуры обмена данными в системе.
add Exchange "Billing"
add Queue "Shop"
add Binding "Billing" to "Shop"
Теперь интернет магазин будет получать данные из биллинга.
Проблемы MQ
Мнимые:
• MQ Server становится точкой отказа.
• При потере сообщений, теряется цельность данных в системе.
Реальные:
• Единые форматы для сообщений.
• Вынужденная кастомизация коробочных решений.
ПО, что использовать
MSMQ ApacheMQ - известный MQ от известной компании RabbitMQ - сверхбыстрый
ZeroMQ - сетевой фреймворк для создания сервисов PgQ - фанатам PostgreSQL и Skype
и много много других ****MQ
Что выбрать?