Сравнение межсистемного кэша и MongoDB
Хотел понять, как межсистемные базы данных Cache и Mongo отличаются друг от друга.
В паре потоков в самом стеке потока было упомянуто, что нет различий как таковых между базой данных объектов и базами данных NoSQL.
В MongoDB данные основаны на документах, к ним обращаются и запрашивают через JSON-подобные форматы. То же самое относится и к Cache DB?
Любые указатели будут полезны.
4 ответа
Все, что может GlobalsDB, может делать и Cache (GlobalsDB - это лишь подмножество функций Cache). Пока я не работал с MongoDB, но обращаю внимание на то, что вы говорите:
В паре потоков в самом стековом потоке было упомянуто, что между базами данных объектов и баз данных NoSQL нет никаких различий.
Это не очень точное утверждение, и ИМХО, вы не можете довести это до проверки. Для начала, NoSQL не очень хорошо определен, что для вас NoSQL? Просто база данных, которая не может работать с SQL? Нереляционная БД? Какая база данных объектов для вас? Хотите ли вы иметь представления объектов в базе данных? Это может быть реализовано как с классическим реляционным, так и с "современным" NoSQL. (NoSQL абсолютно ничего современного, это было довольно давно. Например, Cache (из MUMPS) начинался как NoSQL еще в 70-х годах.
В MongoDB данные основаны на документах, к ним обращаются и запрашивают через JSON-подобные форматы. То же самое относится и к Cache DB?
Вы можете получить доступ к данным в Cache несколькими способами. GlobalsDB предоставляет интерфейс к глобальной структуре (представьте, что это хранилище значений ключей, которое немного более гибкое). Кроме того, вы можете обращаться к своим данным как к объектам. Конечно, существуют определенные ограничения по формату, которые необходимо соблюдать, когда вы хотите перейти от значений ключа к реляционному доступу, но суть в том, что вы можете получать доступ к своим данным так, как вы хотите / нуждаетесь в них. Это включает в себя JSON, родной в более новых версиях.
Проблема с вашим вопросом в том, что ни один из терминов не очень хорошо определен (не ваша вина - вы не смогли их определить).
Но что основано на документах? Это должно быть сохранено как текст? Или это просто должно быть выставлено клиенту как документ? Действительно, второй вариант имеет смысл, за исключением того, что в значительной степени подходит любое постоянное хранилище. Например, вы всегда можете преобразовать строки и столбцы в документ.
Что касается запросов через JSON, я написал свою собственную систему для этого с Cache DB до того, как Intersystems выпустила свою версию. И можно поместить оболочку JSON практически в любое постоянное хранилище (это не так сложно, JSON спроектирован так, чтобы его было легко анализировать).
Для меня ключевой интересной особенностью баз данных NoSQL является то, что они часто предназначены для работы с распределенными данными на большом количестве ненадежных машин - хотя по цене и не способны обеспечить определенную согласованность. Cache DB не имеет этого (насколько я знаю), но можно сказать, что он поддерживает упомянутые вами характеристики в той степени, в которой они имеют четкое значение.
Было бы легче ответить на более конкретные вопросы о том, что вы пытаетесь достичь.
Есть еще один продукт от InterSystems для очистки NoSQL, это GlobalsDB
Запросы в формате JSON, инструменты реализованы, применены через адаптер. GlobalsDB поддерживает NodeJS, с ним также поддерживается JSON. NET и Java
Этот документ может помочь: