Недавно я задал вопрос о Neo4j, который я получил, и который кажется приятным. Он внедряется и написан на Java и не существует (слишком) многих зависимостей.
Однако это графа DB, и я не знаю, хорошая ли это или не использовать ее как просто хранилище ключей/значений.
В принципе у меня есть большая карта, которая в Java будет выглядеть так:
Map<Integer,Map<String,String>>
У меня есть несколько десятков миллионов записей на главной карте, и каждая запись содержит карту свойств/значений. "Внутренняя" карта относительно невелика: около 20 записей.
Мне нужно, чтобы эта карта сохранялась при запуске webapp в другой.
Используя Neo4j, я создал один node для каждого идентификатора (целое число), а затем поместил одно свойство для каждой записи внутри внутренней карты. С моего раннего тестирования это работает, но я не уверен, что это хороший способ продолжить.
Какой внедряемый DB, написанный на Java, вы бы использовали?
Требования:
-
написан на Java
-
embeddable (поэтому ничего слишком большого)
-
не SQL (*)
-
с открытым исходным кодом
-
простое резервное копирование (мне нужно сделать "живые" резервные копии, пока сервер работает)
Моя терминология может быть немного неправильной, так что не стесняйтесь помогать мне/исправлять меня. Для моей "карты карт" наилучшее соответствие будет битой пары ключ/значение справа?
Я немного потерялся как разница между парами ключей/значений DB, документами DB, большими таблицами, графическими DB и т.д.
Мне также хотелось бы, если бы неплохо было использовать графический DB, такой как Neo4J, для моей потребности (я думаю, что производительность действительно не будет проблемой, учитывая относительно небольшое количество записей, которые у меня будут).
Конечно, я мог бы просто сохранить карту карт самостоятельно, но я действительно не хочу изобретать любое колесо здесь. Я хочу повторно использовать проверенный и проверенный DB...
(*) Причина, по которой я не хочу, чтобы SQL заключалась в том, что у меня всегда будет эта "карта карт", и внутренняя карта будет постоянно развиваться, поэтому я не хочу слишком структурированного.