codefest 2011. Ширшаков Д. — Как подружить ежа с ужом или...
TRANSCRIPT
![Page 1: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/1.jpg)
Как подружить ежа с ужомили другой взгляд на DWH
Дмитрий ШиршаковАлексей Спиридонов
![Page 2: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/2.jpg)
Вместо введения - постановка задачи
В компании установлены сервисы:• 1С• Интернет-магазин• Платежная система• Корпоративный портал• Почта• Active directory• OLAP• АТС• etc
Постановка задачи
![Page 3: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/3.jpg)
Корпоративная система целиком
1. N! связей
2. Изменение коробочных систем
3. Нет центра синхронизации
4. Возникновение конфликтов
![Page 4: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/4.jpg)
Система выглядит так:
![Page 5: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/5.jpg)
А разработчик вот так:
![Page 6: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/6.jpg)
Варианты
0. Оставить, как есть
1. Централизованное решение (Data Warehouse)
2. Единая шина обмена данных (MQ Server)
![Page 7: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/7.jpg)
Не надо бояться экспериментов
![Page 8: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/8.jpg)
DWH решение
• Теоретическое количество интеграций = 2*N
• Меняется DWH, а не ПО
• Централизованная синхронизация
• Данные в DWH принимаются как "действительно правильные"
![Page 9: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/9.jpg)
Варианты реализации DWH решение
• SQL
• Integration Services
• Специальные приложенияo Загрузчикиo Парсеры
![Page 10: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/10.jpg)
Примеры реализации #1 - Корпоративные системы
![Page 11: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/11.jpg)
Примеры реализации #2 - AD, телефония, трафик
![Page 12: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/12.jpg)
Примеры реализации #3 - Internet
![Page 13: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/13.jpg)
Примеры реализации #3 - Internet
![Page 14: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/14.jpg)
Примеры реализации #4 - OLAP, аналитика, отчетность
![Page 15: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/15.jpg)
Примеры реализации #5 - BI, KPI, модели, прогнозы
![Page 16: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/16.jpg)
DWH - решение все вместе
![Page 17: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/17.jpg)
DWH - решение все вместе
![Page 18: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/18.jpg)
DWH - решение все вместе
![Page 19: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/19.jpg)
Плюсы DWH
• Поддержка интерфейсов различных систем с использованием представлений.
• Консолидация данных в одном месте.
• Использование OLAP для обработки больших объемов данных.
![Page 20: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/20.jpg)
Проблемы DWH
• Необходимость разбираться в установленных системах на уровне баз данных.
• Низкая скорость синхронизации.
![Page 21: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/21.jpg)
Второй вариант
Единая шина передачи данных реализованная на
базе MQ Server
![Page 22: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/22.jpg)
MQ Server, один отправитель, 2 получателя
• Временное хранение сообщений• FIFO• Гарантия доставки• Маршрутизация сообщений
![Page 23: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/23.jpg)
Напоминаем как приходится разработчику:
![Page 24: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/24.jpg)
Система с точки зрения MQ
Простота и понятность работы компонента
![Page 25: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/25.jpg)
Новая жизнь разработчика
![Page 26: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/26.jpg)
Плюсы MQ #1
Универсальный транспорт данных для систем на любых языках, технологиях и протоколах.
.NETPHPPythonC#JAVAErlang
и т.д.
RPCAMQPRESTSTOMP
WindowsLinuxMacOS
![Page 27: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/27.jpg)
Плюсы MQ #2
Высокая скорость распространения изменений между компонентами системы.
~ 10 ms
![Page 28: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/28.jpg)
Плюсы MQ #3
Высокая изолированность компонент друг от друга.
• Стабильность работы при отказе отдельных компонент
• Устойчивость системы к всплескам нагрузки
![Page 29: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/29.jpg)
Плюсы MQ #4
Низкая стоимость модификации структуры обмена данными в системе.
add Exchange "Billing"
add Queue "Shop"
add Binding "Billing" to "Shop"
Теперь интернет магазин будет получать данные из биллинга.
![Page 30: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/30.jpg)
Проблемы MQ
Мнимые:
• MQ Server становится точкой отказа.
• При потере сообщений, теряется цельность данных в системе.
Реальные:
• Единые форматы для сообщений.
• Вынужденная кастомизация коробочных решений.
![Page 31: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/31.jpg)
ПО, что использовать
MSMQ ApacheMQ - известный MQ от известной компании RabbitMQ - сверхбыстрый
ZeroMQ - сетевой фреймворк для создания сервисов PgQ - фанатам PostgreSQL и Skype
и много много других ****MQ
![Page 32: CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH](https://reader035.vdocuments.pub/reader035/viewer/2022062405/55501269b4c90535638b4adb/html5/thumbnails/32.jpg)
Что выбрать?