пятница, 8 февраля 2013 г.


Пост 15. Гибридная архитектура. NoSQL + SQL

Когда я только делал первые шаги по дороге NoSQL и Hadoop, мне всегда хотелось посмотреть на них с точки зрения базы данных Oracle, т.к. я всегда был (и остаюсь) верным членом клуба любителей Oracle RDBMS (как можно не любить лучшую реляционную базу в мире)?
Хотелось оставаться в Oracle RDBMS центральной системе мира (в центре всего Oracle, остальное "сателиты"). Теперь это возможно. Начиная со 2 версии Oracle NoSQL database позволяет читать данные из своей базы как из внешней таблицы. Как писалось в моем самом первом посте не стоит злоупотреблять с NoSQL. Надо использовать их только там где это действительно оправдано. Или в тех "кусках" приложения где он подходит. Если вы начинаете новый проект - возможно не стоит выбирать между NoSQL и SQL,просто комбинируйте!
Давайте рассмотрим пример - есть у нас приложение к "крутым" поиском (куча фильттов, релевантность, предиктовые прогнозы и.т.п.). Крутой поиск может с легкостью взять на себя реляционная база данных, а что делать с хранением файлов? Можно конечно засунуть все в эту базу данных... Но получится достаточно дорогое решение... Да и если колличество пользователей будет измеряться десятками тысяч, это тоже будет достаточно проблемно... Тут как раз кстати пришлось бы гибридное решение:

                                             Рис 1. Возможная архитектура.

Итак, представим, что пользователь формирует запрос (через браузер, например): говорит, что хочет фотографии, сделанную определенным фотографом в определенном месте с рейтингом не ниже определенного, ну и еще много чего. Далее этого запрос отправляется на сервер приложений (шаг 1). Сервер приложений обрабатывает его формирует запрос к реляционной базе(шаг 2), которая отработав его возвращает одну колонку типа varchar2 (шаг 3). Приложение формирует на основе возвращенных данных запрос к NoSQL базе (шаг 4), типа: дай мне набор байт по этому ключу. Приложение знает что этот набор байт картинка. Эту картинку он и возвращает клиенту (шаг 5). Вот как то так. Не бойтесь использовать вместе традиционные технлогии и NoSQL!

Далее я расскажу о возможности добраться до NoSQL данных из базы данных Oracle.

Комментариев нет:

Отправить комментарий