Открыл для себя Mongo Db...

Случайности — не случайны

случайности - не случайныНа работе есть задача — заказчику необходимо обрабатывать большие объемы информации. Стал собирать информацию, смотреть как и на чем работают большие системы. В итоге, год назад краем уха услышанные buzz words, стали обретать определенный смысл.

Выяснилось что NoSQL, это вовсе не название секты ненавистников SQL, а сокращение от Not Only SQL.

NoSQL решения используют как мелкие стартапы, так и крупные социальные веб-проекты.

Основное преимущество NoSQL — обеспечение горизонтального масштабирования. К горизонтальному масштабированию вынуждены прибегать тогда, когда исчерпаны ресурсы вертикального масштабирования. Иными словами, когда уже самый мощный сервер, купленный за самые большие деньги, не обеспечивает должного времени отклика, необходимо добавлять ещё один. Буквально — ставить рядом. Потом ещё один, потом ещё и ещё...

Если при применении обычной реляционной СУБД для вертикального масштабирования особых архитектурных решений применять не требуется, то, при возникновении потребности роста в ширину, появляется ряд трудностей и ограничений как на этапе разработки, так и при последующей эксплуатации системы.

Mongo DB

logo-mongoDB.png

Своё погружение в NoSQL я начал с Mongo DB — http://www.mongodb.org/.

Основные фичи Mongo Db, которые мне хотелось бы выделить особо (полный список есть на сайте):

  • Документо-ориентированное хранилище.
    Записи хранятся в виде JSON-объектов. При этом нет жестко заданной схемы. Основные понятия - документ и содержащая его коллекция. Документ может сам содержать в себе коллекции. Одним словом, полный отход от понятия строки и таблицы
  • Любой атрибут проиндексирован
  • Простой механизм горизонтального масштабирования — Auto-Sharding
  • Запросы интуитивно понятны и легко перекладыватся с/на SQL

Пробуем...

На Amazon Web Services я создал micro instance (самая дешевая виртуалка) и развернул из готового образа ubuntu + ruby + mongodb. Из мануальной терапии мною были проделаны только пассы по наложению на новый образ бинарника php и драйвера для работы php с Mongo DB. Зря потратил время. Можно было просто скачать экзешник/бинарник на свою рабочую машину и не мудрить с виртуалками. Mongo Db — зверек неприхотливый.

Как оказалось позже, для того что бы просто попробовать написать что-то в Mongo Db, всё вышеупомянутое делать совсем не нужно. На официальном сайте есть ссылка на онлайн консоль, где на чистом JavaScript, в режиме реального времени, можно потренироваться в общении на монго-диалекте SQL.

Try MongoDB.png

Тестовый полигон здесь — http://try.mongodb.org/

Кто попробовал и уже использует?

Удачи!