3. Предпосылки развития NoSQL технологий
• Появление в начале 2000-х
• Google - поисковые системы
• Facebook – социальные сети
• И.т.д.
• Этим системам свойственно
• Постоянно меняющаяся структура
• Непредсказуемый рост количества данных
• Огромное число пользователей
Реляционные базы данных не справлялись
4. Что такое NoSQL СУБД?
• Не имеют структурированной схемы
• Часто данные хранятся в схеме Key-Value
• Расшифровывает структуру данных приложение
• Для работы с данными используются простые
операции (получить значение по ключу), нет SQL
• Позволяют горизонтально масштабироваться
• Данные хранятся в копиях на разных серверах
• Отказ узла не приводит к потере данных
• Чтение производится с мастера или копий
• На данный момент существует около 130 различных
NoSQL
5. Основные игроки NoSQL
NoSQL базы данных
Распределенные Key-value Колоночные Документ-
ориентированные
Граф-
ориентированные
Oracle NoSQL DB * Cassandra MongoDB OrientDB
Voldemort * HBase CouchDB GraphDB
Amazon Dynamo HyperTable RavenDB Neo4j
Riak Google BigTable
CitrisLeaf
GenieDB *
Одноузловые Key-value
Redis
Tokyo Cabinet
Google LevelDB
Oracle Berkeley DB
(*) Построены на Oracle Berkeley DB
7. Новый продукт - Oracle NoSQL DB
Распределенная, масштабируемая key-value база данных
• Простая модель данных
• Пара Key-value с подходом major+sub-key
• Операции read/insert/update/delete
• Масштабируемость
• Оптимизированный доступ к данным
• Высокая доступность
• Одна или более реплик
• Отказоустойчивость засчет
разнесения реплик
• Устойчивость к отказу мастера
• Нет одной точки отказа
• Прозрачная балансировка нагрузки
Application
Storage Nodes
Data Center A
• Чтение с мастера или реплики
• Драйвер знает о сетевой топологии и временах задержки
Application
Storage Nodes
Data Center B
NoSQLDB Driver
NoSQLDB Driver
9. Как можно понимать пару ключ – значение?
/Smith/Bob/-/birthdate
/Smith/Bob/-/phonenumber
/Smith/Bob/-/image
/Smith/Patricia/-/birthdate
/Smith/Patricia/-/phonenumber
Key Value
/Smith/Bob/-/Mobile +1 – 333-…
Ключ можно воспринимать
как путь в файловой системе
01.01.1970
+1 – 111 -111…
02.02.1971
+1 – 222-…
Значение -
просто набор байтов
10. Логическое представление NoSQL DB
Key1 – Value1
Key5 – Value5
Key4 – Value4
Key2 – Value2
Key3 – Value3
Key6 – Value6
Key Value
Key1 Value1
Key2 Value2
Key3 Value3
Key4 Value4
Key5 Value5
Key6 Value6
Index
16. Пример использования
Foto
Friends
About
me
Tape
Get(/Smith/Bob/-/foto/)
Создадим свою
социальную сеть!
17. Пример использования
Foto
Friends
About
me
Tape
Get(/Smith/Bob/-/about-me/)
<?xml version="1.0"?>
<profile>
<name> Bob</name>
<lastname> Smith </ lastname >
<age> 35 </age>
<city> Славный город на Неве </city>
</ profile >
Smith
Bob
35
Славный
город на Неве
18. Пример использования
Foto
Friends
About
me
Tape
Get(/Smith/Bob/-/friends/)
Smith
Bob
35
Славный
город на Неве
Lary, Patrica, John ….
Lary
Patrica
John
19. Пример использования
Foto
Friends
About
me
Tape
Get(/Smith/Bob/-/tape_list/)
Smith
Bob
35
Славный
город на Неве
Lary
Patrica
John
1325397600, 1325397700,
1325397800, 1325397900,
1325398000, 1325398100…
Get(/Smith/Bob/-/tape/ 1325398000)
Мой пост!
Get(/Smith/Bob/-/tape/ 1325398100)
TapeArray = SortTop(value,2)
Спасибо всем присутствующим
[1325398000, 1325398100]
за внимание!
Мой пост!
Спасибо
всем
Присутству -
ющим
за
внимание!
23. В каких случаях следует использовать Oracle
NoSQL DB?
- Терабайты или петабайты данных
- Приложение не должно иметь единой точки отказа
- Использование множества недорогих серверов
(commodity)
- Ожидаемое небольшое время отклика простых запросов
- Неструктурированная или полуструктурированная
модель данных
- ACID транзакции
- Коммерческая поддержка
- Патентные войны
24. <Insert Picture Here>
Примеры систем
которые могут быть построены
на основе Oracle NoSQL?
25. Потенциальные системы на Oracle NoSQL DB?
• LDAP подобные системы - простой ответ на простой вопрос
Почему? Это быстро!
• Хранилище USSD запросов мобильных пользователей
Почему? Нет четкой структуры исходных данных
• Персонализация пользователей
Почему? Нет четкой структуры данных, постоянное добавление
нового функционала
• Сбор разнотипных данных со счетчиков
Почему? Требуется поддержка большого количества одновременных
сессий
• Хранение видео и изображений (архив)
Почему? Огромный объем данных
26. Потенциальные системы на Oracle NoSQL DB?
• Логирование интернет трафика (CDR GPRS, web logs)
Почему? Данных очень много
• Хранилище файлов (фотографии, видео, текст)
Почему? Данных может быть очень много и к ним требуется быстрый
доступ (системы аналогичные Dropbox, Google disk)
• Интернет магазины
Почему? Нет четкой структуры данных. Данных может быть много
• Антиспам системы
Почему? Очень много простых запросов (пример: Mollom)
• Бэкапирование различных профилей
Почему? Данные не структурированны, данных много