Какая база данных NoSQL для какой цели [большие данные ro] - PullRequest
3 голосов
/ 29 сентября 2010

Есть ли сравнение, для чего предназначен NoSQL?

Меня особенно интересует запрос большого объема данных практически только для чтения.

Редактировать : Я имею в виду сравнение баз данных NoSQL, а не сравнение с базами данных SQL.

Ответы [ 2 ]

4 голосов
/ 29 сентября 2010

Мягкие системы NoSQL: [не оригинальное намерение «NoSQL», но в основном стоит искать отличные нереляционные решения] Базы данных объектов

db4o: API: Java, C #, .Net Langs, протокол: язык, метод запроса: QBE (по примерам), Soda, собственные запросы, LINQ (.NET), репликация: db4o2db4o & dRS для реляций, записано в: Java, Cuncurrency: сериализированный ACID, Разное: встроенная библиотека, Ссылки: DZone Refcard # 53 », Книга»,

Версия: Языки / протокол: Java, C #, C ++, Python. Схема: модель языкового класса (легко изменяемая). Режимы: всегда согласованные и в конечном итоге согласованные. Репликация: синхронная отказоустойчивость и одноранговая асинхронность. Параллелизм: оптимистичные и объектно-ориентированные блокировки. Масштабирование: может добавлять физические узлы на лету для масштабирования / переноса и переноса объектов между узлами без влияния на код приложения. Разное: MapReduce через параллельный SQL-запрос к логическим группам баз данных.

Объективность: языки: Java, C #, C ++, Python, Smalltalk, доступ к SQL через ODBC. Схема: модель классов на родном языке, прямая поддержка ссылок, возможность взаимодействия через все языковые привязки. 64-битный уникальный идентификатор объекта (OID) поддерживает несколько exa-байтов. Платформы: 32- и 64-битные Windows, Linux, Mac OSX, * Unix. Режимы: всегда согласованно (ACID). Параллельность: блокировки на уровне кластера объектов (контейнера). Масштабирование: уникальная распределенная архитектура, динамическое добавление / удаление клиентов и серверов, готовая облачная среда. Репликация: синхронно с отказоустойчивостью кворума между одноранговыми разделами.

[Драгоценный камень, Прогресс]

Perst: API: Java, Java ME, C #, Mono. Метод запроса: OO через коллекции Perst, QBE, собственные запросы, LINQ, собственный полнотекстовый поиск, репликация JSQL: Async + sync (master-slave). Написано на: Java, C #. Кэширование: Кэш объектов (LRU, слабый, сильный), пул страниц, база данных в памяти. Параллельность: пессимистический + оптимистический (MVCC) + асинхронный или синхронный (ACID). Типы индексов: многие модели деревьев + временные ряды. Разное: встроенная библиотека, шифрование, автоматическое восстановление, собственный полнотекстовый поиск, резервное копирование в режиме онлайн или в автономном режиме.

ZODB: API: Python, Протокол: внутренний, ZEO, Метод запроса: прямой доступ к объекту, zope.catalog, gocept.objectquery, Репликация: ZEO, ZEORAID, RelStorage. Написано на: Python, C Параллелизм: MVCC, Лицензия: Zope Общественная лицензия (утверждена OSI) Разное: используется в производстве с 1998 года

NEO: API: интерфейс Python - ZODB «Хранилище», протокол: собственный, метод запроса: ключ-значение транзакции, репликация: собственный, написанный в: Python, параллелизм: MVCC на уровне ZODB, лицензия: GPL «v2 или новее ", Разное: Балансировка нагрузки, отказоустойчивый, с возможностью горячего расширения.

StupidDB », KiokuDB» (решение Perl),

Я нашел этот хороший список NoSQL по адресу:

http://nosql -database.org /

Если вы заметили, что немного посередине страницы внизу, у них есть хороший список noSQL и, похоже, подробно рассказывает о каждом.

0 голосов
/ 13 января 2011

Я думаю, что вы сильно недооцениваете мощь РСУБД. Зачем использовать noSQL?

Я работал над ~ 10 ТБ баз данных ... и это было 8 лет назад, на старом оборудовании по сравнению с сегодняшним днем.

Действительно ли у вас более 10 ТБ данных? Правильно ли это нормализовано?

Я могу сканировать миллиард строк в SQL и мгновенно получать ответы практически на все, что мне нужно.

...