2. 2Погружение в мир NoSQL: Опыт крупных коммерческих проектов
О нас
AT Consulting
Предоставляем консалтинговые услуги, разработки ПО
для отраслей телекоммуникации, финансов и энергетики.
Успешно разработан и сдан в эксплуатацию проект СМЭВ
(гос. услуги) и MNP (перенос номеров от одноного оператора
к другому) на базе NoSQL и BigData. На данный момент в
более чем 3х проектах применяются NoSQL для решения
разных типов задач.
3. 3Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Погружение в мир NoSQL: Опыт крупных коммерческих проектов
План:
История NoSQL
Категории и выбор NoSQL базы
данных
Знакомство с Cassandra
Практические применения NoSQL
из опыта AT Consulting
4. 4Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Погружение в мир NoSQL: Опыт крупных коммерческих проектов
5. 5Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Достоинства Реляционных
баз данных
Предоставляет простые структуры данных
Обеспечение целостности данных
Многопользовательский доступ к данным
Привилегии и права доступа
Высоко стандартный язык манипуляции
данных (SQL)
6. 6Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Ключевые проекты блока
Недостатки Реляционных
баз данных
Не соответствие с объектно-реляционной
моделью данных
7. 7Погружение в мир NoSQL: Опыт крупных коммерческих проектов
История NoSQL
Недостатки Реляционных
баз данных
Фиксированная структура таблиц
8. 8Погружение в мир NoSQL: Опыт крупных коммерческих проектов
История NoSQL
Характерный пример
эволюции приложения
Все хорошо.
Нагрузка увеличивается, приложение не справляется.
Добавляем железа.
Убираем все хранимые процедуры и триггеры.
Вводим распределенный кэш, например memcache. Приложение
постоянно обновляет его при изменениях данных в RDBMS.
Денормализуем схему базы.
Вводим шардинг (разбиение данных на несколько серверов баз
данных).
Упираемся в большое время insert, вызванное необходимостью
перестраивать индексы на каждый insert.
Все плохо и непонятно что делать.
В результате мы постепенно отказываемся от всех «плюшек» RDBMS и получаем
«испорченную» архитектуру и много «костылей»
9. 9Погружение в мир NoSQL: Опыт крупных коммерческих проектов
История NoSQL
Все таки,
почему
NoSQL?
10. 10Погружение в мир NoSQL: Опыт крупных коммерческих проектов
История NoSQL
Динамика роста
объема данных 1,000 TB =
1 petabyte
(PB)
1,000 PB =
1 exabyte
(EB)
1,000 EB =
1 zettabyte
(ZB)
11. 11Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Связностиданных
1991 2000 2010 2020
Web 1.0 Web 2.0 Web 3.0
История NoSQL
Гетерогенные данные
document
html
rss
soap
wiki
RDF
blogs
json
tagging
ontology
Giant global graph
12. 12Погружение в мир NoSQL: Опыт крупных коммерческих проектов
История NoSQL
NoSQL
a non-SQL RDBMS
Carlo Strozzi, open source реляционный
БД в конце 90-х гг. www.stroozi.it
NO SQL
meetup 11 июня 2009 г.
http://www.eventbrite.com/e/nosql-meetup-tickets-341739151
Not Only SQL
Не правильная аббревиатура
NoSQL — это движение, а не технология
13. 13Погружение в мир NoSQL: Опыт крупных коммерческих проектов
История NoSQL
Общие характеристики
баз данных NoSQL
Не используют реляционную модель данных
Не используют строго типизированные модели
данных
Спроектированы для работы в кластере
Рассчитаны для хранения больших объемов
данных
Линейно масштабируемы
Созданы в 21 веке
14. 14Погружение в мир NoSQL: Опыт крупных коммерческих проектов
История NoSQL
Ключевые моменты
Реляционные базы данных являются наиболее
успешными технологиями за последние
двадцать лет, обеспечивая надежность
хранения данных, управление параллелизмом,
и интеграционными механизмами
Жизненно важным фактором для изменения
хранения данных является необходимость
поддержки больших объемов данных на
кластерах
Наиболее важный результат подъема NoSQL —
это динамика роста и гетерогенность данных
NoSQL — это не противостояние или конкурент
РСУБД
15. 15Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Категории и выбор NoSQL базы данных
Основные Виды NoSQL
Key-Value
> Ключ — DHT
> Значения —
String, set
> Примитивные
операции
Document
> Предназначенная
для хранения
иерархических
структур данных
(документов)
> Структура дерева
начинается с
корневого узла и
может содержать
несколько
внутренних и
листовых узлов
Column-Family
> Столбец ― это
основной элемент
модели данных, и
каждый столбец
содержит имя,
значение и метку
времени
> Строка ― это
именованная
коллекция столбцов
> Семейство столбцов
― это именованная
коллекция строк
Graph
> Нахождение
кратчайшего
пути
> Построение
социальных
графов
> Работа с
информацион
ными
патоками
16. 16Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Категории и выбор NoSQL базы данных
Примеры NoSQL
Document Column-Family GraphKey-Value
Terrastore
CouchDB Hbase
Amazon Simple
DB
FlockDB
HyperGrpahDB
Riak
Voldemort
MongoDB Cassandra Neo4JRedis
RavenDB HyperTable OrientDBOracle NoSQL Db
17. 17Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Категории и выбор NoSQL базы данных
CAP – теорема
CAP-теорема гласит, что невозможно построить
такую распределенную БД, которая бы
одновременно обладала следующими тремя
свойствами:
Согласованность данных (англ. consistency) — во всех
вычислительных узлах в один момент времени данные
не противоречат друг другу;
Доступность (англ. availability) — любой запрос к
распределённой системе завершается корректным
откликом;
Устойчивость к разделению (англ. partition tolerance) —
расщепление распределённой системы на несколько
изолированных секций не приводит к некорректности
отклика от каждой из секций.
18. 18Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Категории и выбор NoSQL базы данных
CAP – теорема
А
РС
Availability
Consistency Hartition
Tolerance
PICK
TWO
19. 19Погружение в мир NoSQL: Опыт крупных коммерческих проектов
История NoSQL
Вопрос?
В какой группе
находится
реляционной базы
данных? AC? AP?
или CP?
20. 20Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Категории и выбор NoSQL базы данных
Ключевые моменты
Количество NoSQL БД > 150
На основе модели данных, NoSQL БД
можно разделить на 4 основной
категории- Key-value, Column family,
Document и Graph
CAP теорема обеспечивает основные
требования, который должен следовать
NoSQL БД
21. 21Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Знакомство с Cassandra
Cassandra
Семейства Column family
Модель данных : Google Big table
Распределённые решения: Amazon Dynamo
Автоматическая репликация данных по дата центру
Линейное масштабирование кластера
Отсутствие единой точки отказа кластера
Высоко производительная атомарная запись данных
Commodity hardware, достаточно private cloud
инфраструктуры
Open source
22. 22Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Знакомства с Cassandra
Cassandra дата модель
23. 23Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Знакомство с Cassandra
Основная идеология
Денорализация данных
Нет Join
24. 24Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Знакомство с Cassandra
Ключевые компоненты
Cassandra
Терминология Описание
Cluster Глобальная настройка кластера
Keyspace Базы данных, аналог схемы в Oracle
Column family Набор строк, аналог в Oracle, таблица
Secondary index Дополнительный индекс, аналог в Oracle
индекс
CQL SQL подобие языка манипуляции данных
Lightweight
transaction
Compare and swap транзакции
25. 25Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Знакомство с Cassandra
Высокоуровневая
архитектура
26. 26Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Знакомство с Cassandra
Высоко производительная
запись
27. 27Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Знакомство с Cassandra
Распределение данных
28. 28Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Знакомство с Cassandra
Репликация
29. 29Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Знакомство с Cassandra
Репликация данных между
дата центрами
30. 30Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Знакомство с Cassandra
Масштабирование
> Рассчитать
новый Токен
> Инициализирова
ть новый токен
на новый узел
> Выполнить
команду
nodetool move в
других узлах
31. 31Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Знакомство с Cassandra
Варианты использования
Cassandra
Time series дата: просмотр страницы
пользователя за определенное время,
Beeline (MNP), WSO2, FaceBook
Каталог продуктов: spotify, netflix
Протоколирование: СМЭВ (Гос. Услуги РФ),
GitHub
Обнаружение Мошенничества: EBay,
Instagram
32. 32Погружение в мир NoSQL: Опыт крупных коммерческих проектов
История NoSQL
Вопрос?
Где еще можно
применять
Cassandra?
33. 33Погружение в мир NoSQL: Опыт крупных коммерческих проектов
История NoSql
Ключевые моменты
Реализация семейства NoSQL Column
Высокая масштабируемость и надежность
без элементов, отказ которых приводит
к выходу из строя всей системы
Очень высокая пропускная способность
для операций записи
SQL-подобный язык запросов
Гибкая схема
34. 34Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Знакомства с Cassandra
Практические применения NoSQL
из опыта AT Consulting
Протоколирование:
СМЭВ (Гос. Услуги РФ)
Обработка событие:
Beeline (MNP)
35. 35Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Краткий обзор проекта СМЭВ
(Система межведомственного электронного взаимодействия)
ЦЕЛИ ПРОЕКТА
Обеспечить федеральным, региональным и местным органам
власти в электронном виде обмениваться данными,
необходимыми для оказания государственных услуг гражданам
и организациям к 01.03.2011
ЗАДАЧИ ПРОЕКТА
Реализовать шину интеграции между органам власти
и предоставлять отчеты по использованию сервисов
ГЕОГРАФИЧЕСКИЕ РАМКИ ПРОЕКТА
В рамках гос. Услуги по всем регионам РФ
36. 36Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Функция централизованного система логирования (СМЭВ)
37. 37Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Недостатки проекта СМЭВ
Низкая производительности разбора
сообщения
> Разбор сообщения в PL/SQL
> Разбор 450,000 логов за 110 минут
Тяжелая репликация данных между ЦоД
> Репликация данных через Golden Gate,Oracle Stream и Ware house
builder
> Плохой канал связи
Плохая масштабируемости RDBMS
> Не линейная масштабируемости (масштабируемость) Oracle RAC
38. 38Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Недостатки проекта СМЭВ
Дорогостоящие лицензии на ПО
Стоимости лицензии на поддержку
продуктов Oracle > $456 720 в год
Продукт
Лицензия на
CPU, USD
Техподдержк
а на CPU, USD
Количество
ядро в CPU
Core Factor
Стоимость,
USD
Поддержка,
USD
Oracle
Database EE
47500 10450 64 0.5
1520000 334400
Oracle
Database RAC
option
23000 5060 24 0.5
276000
60720
GoldenGate 17500 3850 32 0.5 280000 61600
ИТОГО 2076000 456720
39. 39Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Концептуальная архитектура на базе NoSQL
40. 40Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Производительность
0
50
100
150
200
250
300
350
39 57 70 100
Количества строк (млн)
Разбор сообщения
(Map)
0
50
100
150
200
250
300
350
57 71 129 170
Количества строк (млн)
Построение агрегатных
данных (Map Reduce)
41. 41Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Производительность
42. 42Погружение в мир NoSQL: Опыт крупных коммерческих проектов
СМЭВ на базе Cassandra
Полученные результаты
Масштабируемые система
протоколирования и отчетности
Быстрый разбор сообщения и агрегация
данных для отчетности
Автоматическая репликация данных
между дата центрами
43. 43Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Краткий обзор проекта MNP (Mobile Number Portability)
ЦЕЛИ ПРОЕКТА
Обеспечить исполнение законодательства по MNP к 01.12.2013
ЗАДАЧИ ПРОЕКТА
Реализовать бизнес-процессы переноса (портации) номеров
ГЕОГРАФИЧЕСКИЕ РАМКИ ПРОЕКТА
Сеть Оператора связи BEELINE в РФ
Офисы обслуживания абонентов в РФ
44. 44Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Бизнес-процессы переноса телефонного номера
Портация в сеть оператора связи (PortIn)
Портация из сети оператора связи (PortOut)
Клиент
приходит в
офис
обслуживания
Оператор
инициирует
процесс
переноса
Система через
ЦБДПН
запрашивает
систему-
донора
Система
вызывает
различные ИС
оператора для
активации
абонента
Клиент
приходит в
офис другого
оператора
связи
Их система
через ЦБДПН
запрашивает
возможность
переноса
Система
проверяет
баланс и ARPU
абонента
Оператор
подтверждает
перенос
абонента
45. 45Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Бизнес-процессы переноса телефонного номера
Подсистема
протоколирования
46. 46Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Бизнес-процессы переноса телефонного номера
Контекст
протоколирования
Любые действия бизнес процесса
Отклоненные заявления от системы
Зависшие заявления
Прерывание работы систем ЦБДПН
и других систем
Действия пользователя в портале
47. 47Погружение в мир NoSQL: Опыт крупных коммерческих проектов
200 ГБ
в сутки
12000000
в сутки
Объемы протоколирования
Нагрузка
> Протоколирование 70-100 записей для 1
заявления с 1 номером
> Общий размер записей для 1 заявления 60 КБ
> До 400000 заявлений в сутки
Количество записей для обработки
> Протоколирование 70-100 записей для 1
заявления с 1 номером
> До 400000 заявлений в сутки
> 3 номера в каждом заявлении
48. 48Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Time series дата модель
49. 50Погружение в мир NoSQL: Опыт крупных коммерческих проектов
MNP на базе Cassandra
Полученные
результаты
Система мониторинга для портация
номеров
Возможности выполнения
произвольных запросов для поиска
индентов
50. 51Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Заключение
ИТОГИ
NoSQL — это не реляцонная база данных
Наиболее важным результатом подъема
и распространения NoSQL является
динамика роста и гетерогенность данных
Cassandra предоставляет высокую
масштабируемость
Cassandra — это Schema less
Данные должны быть структурированные
и связанные, NoSQL лучшее применять
в качестве дополнительных баз данных
51. 52Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Рекомендуемые литературы
NOSQL
distilled
Автор: Мартин Фаулер
CASSANDRA
DESIGN PATTERN
Автор: Санжое Шарма
52. 53Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Обратная связь
frommyworkshop.blogspot.ru
bsha@at-consulting.ru
53. 54Погружение в мир NoSQL: Опыт крупных коммерческих проектов
Ссылки
Ссылки
Виды NoSQL БД
nosql-database.org
Netflix benchmark
techblog.netflix.com/2011/11/benchmarking-cassandra-
scalability-on.html
Cassandra и Hadoop
frommyworkshop.blogspot.ru
Cassandra
planetcassandra.org