2012-04-02 3 views
6

Примечание: (Я иногда изучал CouchDB и нуждаюсь в некоторых реальных опытах).To CouchDB или нет?

У меня есть база данных Oracle для службы отслеживания флота и некоторых состояний здесь являются:

  1. 100 GB дб
  2. Огромных вставки/с (нашими полученными сообщениями)
  3. Reliable репликации (с помощью потоков данных Oracle на 4 серверах)
  4. Тяжелые сложные запросы.

Теперь вопрос: можно ли использовать CouchDB в этом случае?

Примечание: Почему я думал о CouchDB?

  1. Я читал о его способности масштабировать горизонтально очень хорошо. Это очень важно в нашем случае.
  2. Так как это бесплатная схема, мы можем обрабатывать изменения более правильно, так как у нас есть много изменений в разных таблицах и хранимых процедурах.

Благодаря

Edit I: Я тоже нужны транзакции. Но я могу терпеть и другие решения. И если есть небольшая задержка в репликации, это не проблема, если она будет гарантирована.

+0

Вам нужны транзакции?Вам нужна гарантированная синхронная репликация? – edze

+0

Спасибо за разъяснение. Да; Мне нужны транзакции, но я могу терпеть некоторую задержку в репликации. –

+1

http://stackoverflow.com/questions/299723/can-i-do-transactions-and-locks-in-couchdb – edze

ответ

23

Вы наслаждаетесь следующими функциями с базой данных:

  1. Использование его в производстве
  2. данные естественно реляционных (связанные с самим собой)
  3. Огромный скорость вставки (не касается MVCC)
  4. Сложные запросы
  5. Сделки

Это все причины не для переключения на CouchDB.

Конечно, история не так проста. Я думаю, вы обнаружили, что многие люди никогда не учатся: сложные проблемы требуют сложных решений. Мы не можем просто заменить нашу базу данных и пропустить оставшуюся часть месяца. Конечно, CouchDB (и BigCouch) поддерживает отличное масштабирование по горизонтали (и репликация с использованием перекрестного центра обработки данных тоже!), Но стоимость будет переписывать производственное приложение. Это неправильно.

Итак, где CouchDB может вам помочь?

Предлагаю начать с , дополняя ваше приложение с приложениями CouchDB. Разверните CouchDB, импортируйте в него свои данные и создайте несекретные приложения. Посмотрите, где это лучше всего подходит.

Для вашего проекта, это ключевые достоинства CouchDB:

  1. Это небольшой, простой инструмент — легко для вас, чтобы установить на рабочую станцию ​​или сервер
  2. Это веб-сервер. Он очень хорошо интегрирует с вашей инфраструктурой и политиками безопасности.
    • Например, если у вас есть гибкая политика, просто установить его на вашей локальной сети
    • Если у вас есть строгая сеть и политика брандмауэра, вы можете установить его за VPN, или с SSL сертификатами
  3. С этим шагом сделано очень. Просто сделайте http или http-запросы. Независимо от того, импортируете ли вы данные из Oracle с помощью специального инструмента или используете ваш веб-браузер, это все равно.
  4. Да! CouchDB тоже сервер приложений! Он имеет встроенное административное приложение для изучения данных, изменения конфигурации и т. Д. (Например, встроенный phpmyadmin). Но для вас значение будет заключаться в создании приложений администратора и отчетов в виде простых, обычных приложений HTML/Javascript/CSS. Вы можете выглядеть так же просто, как вам нравится.
  5. Как ваш проект растет и становится ценным, вы находитесь в большом положении, чтобы расти, используя репликацию
    • Либо расширять ядро ​​с более крупными кластерами CouchDB
    • Или копировать данные и приложения в различных центрах обработки данных, или на отдельные рабочие станции или мобильные телефоны и т.д. (стратегия будет более очевидным, когда придет время.)

CouchDB дает веб-сервер и веб-сайт в простой. Он предоставляет вам встроенный веб-сервисный API для ваших данных. Это упрощает создание веб-приложений. Поэтому CouchDB кажется идеальным для , расширяя ваше основное приложение, а не вместо.

+2

Спасибо много! Это было более информативным и ценным, чем я хотел! –

+0

Замечание: мы все еще ищем замену Oracle (основная причина - высокая стоимость) с использованием технологии с открытым исходным кодом (PostgreSQL или MySQL, возможно (?)). –

+2

Я слышал, что Ян Ленардт (соучредитель Couchbase, оригинальный компилятор Apache CouchDB) вызывает PostgreSQL, «другую * хорошую базу данных» :) – JasonSmith

0

Я не согласен с этим ответом ..

Я думаю, что CouchDB подходит особенно хорошо использовать флот отслеживания случай, из-за их распределенный характер. Более того, ненадежный характер соединений gprs, используемых для передачи данных положения, делает автономную первую парадигму couchapps идеальным партнером для вашего приложения.

Для загрузки данных с грузовика скорость вставки может иметь огромное преимущество от репликации кучи и объемных вставок, особенно если выполняется на основе couchdb hosting на основе ssd.

Для загрузки данных на грузовик couchdb предоставляет фильтрованную репликацию, позволяющую каждому грузовику загружать только нужные ему данные, а не всю базу данных.

Что касается сложных запросов, база данных NoSQL более гибкая и может работать намного быстрее, чем базы данных отношений. Это всего лишь вопрос структурирования и запроса ваших данных разумно.

Смежные вопросы