Подтвердить что ты не робот

Кто-нибудь использовал объектную базу данных с большим количеством данных?

Объектные базы данных, такие как MongoDB и db4o, в последнее время становятся все более популярными. Кажется, что все, кто играет с ними, любят это. Я предполагаю, что они имеют дело с 640 КБ данных в своих примерах приложений.

Кто-нибудь пытался использовать базу данных объектов с большим объемом данных (скажем, 50 ГБ или более)? Можете ли вы выполнять сложные запросы против него (например, с экрана поиска)? Как это соотносится с вашей обычной реляционной базой данных?

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

4b9b3361

Ответ 1

Кто-то только что вошел в производство с 12 терабайтами данных в MongoDB. Самое крупное, что я знал до этого, было 1 ТБ. Многие люди хранят действительно большие объемы данных в Монго.

Важно помнить, что Mongo очень похож на реляционную базу данных: вам нужны правильные индексы, чтобы получить хорошую производительность. Вы можете использовать функцию explain() для запросов и обратиться к списку пользователей за помощью.

Ответ 2

Когда я начал db4o еще в 2000 году, у меня не было огромных баз данных. Основная цель заключалась в том, чтобы хранить любой сложный объект очень просто с одной строкой кода и делать это хорошо и быстро с низким потреблением ресурсов, поэтому он может запускаться встроенными и на мобильных устройствах.

Со временем у нас было много пользователей, которые использовали db4o для webapps и с довольно большими объемами данных, приблизившись к сегодняшнему максимальному размеру файла базы данных 256 ГБ (с размером блока 127 байт). Поэтому, чтобы ответить на ваш вопрос: Да, db4o будет работать с 50 ГБ, но вы не должны планировать использовать его для терабайт данных (если вы не можете разделить ваши данные по нескольким базам данных db4o, затраты на установку для одной базы данных незначительны, вы можете просто вызвать #openFile())

db4o был приобретен Versant в 2008 году, поскольку его возможности (встроенный, низкий расход ресурсов, легкий) делают его отличным бесплатный продукт для базы данных объектов высокого класса Versant VOD. VOD масштабируется для огромного количества данных, и он намного лучше, чем реляционные базы данных. Я думаю, что он просто посмеется над 50 ГБ.

Ответ 3

Средства MongoDB SourceForge, The New York Times и несколько других крупных баз данных...

Ответ 4

Вы должны прочитать варианты использования MongoDB. Люди, которые просто играют с технологиями, часто просто смотрят, как это работает, и они не могут понять, какие ограничения существуют. Для правильных сортов наборов данных и шаблонов доступа 50GB ничего не значит для MongoDB, работающего на нужном оборудовании.

Эти нереляционные системы рассматривают компромиссы, которые были созданы RDBM, и немного изменили их. Консистенция не так важна, как другие вещи в некоторых ситуациях, поэтому эти решения позволяют вам торговать этим что-то еще. Компромисс по-прежнему относительно незначительный, или, возможно, secs в некоторых ситуациях.

Стоит прочитать о теореме CAP.

Ответ 5

Я смотрел на перенос API, который я точно знаю с помощью приложения, которое я написал некоторое время назад в MongoDB, где он сейчас находится в базе данных MySQL. В необработанном виде дамп SO CC находится в диапазоне с несколькими гигабайтами, и способ, которым я создал документы для MongoDB, привел к созданию базы данных 10G+. Можно утверждать, что я плохо строил документы, но я не хотел тратить много времени на это.

Одна из первых вещей, с которыми вы столкнетесь, если начать этот путь, - это отсутствие 32-разрядной поддержки. Конечно, сейчас все идет на 64-й бит, но нужно что-то помнить. Я не думаю, что какая-либо из основных баз данных документов поддерживает подкачку в 32-битном режиме, и это понятно с точки зрения сложности кода.

Чтобы проверить, что я хотел сделать, я использовал 64-разрядный экземпляр EC2 node. Вторая вещь, с которой я столкнулся, состоит в том, что, хотя у этой машины было 7G памяти, когда физическая память была исчерпана, все шло от быстрого к не так быстро. Я не уверен, что на данный момент у меня не было чего-то неправильно настроенного, потому что не поддержка 32-битной системы убила то, что я хотел использовать для нее, но я все еще хотел посмотреть, как это выглядит. Загрузка одного и того же дампа данных в MySQL занимает около 2 минут на гораздо менее мощном поле, но script Я использовал для загрузки двух баз данных, работает по-другому, поэтому я не могу сделать хорошее сравнение. Запуск только подмножества данных в MongoDB был намного быстрее, если в результате была создана база данных, которая была меньше 7G.

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

Недавним ресурсом, который может быть полезен, является визуальный путеводитель по nosql-системам. Есть приличное количество вариантов за пределами MongoDB. Я использовал Redis, хотя и не с такой большой базой данных.

Ответ 6

Вот некоторые тесты на db4o:

http://www.db4o.com/about/productinformation/benchmarks/

Я думаю, что это в конечном счете зависит от множества факторов, включая сложность данных, но, похоже, db4o, конечно, висеть с лучшими из них.

Ответ 7

Возможно, стоит упомянуть.

Миссия Европейского космического агентства Planck работает в базе данных Versant Object Database. http://sci.esa.int/science-e/www/object/index.cfm?fobjectid=46951

Это спутник с 74 встроенными датчиками, запущенными в прошлом году, который отображает инфракрасный спектр Вселенной и сохраняет информацию в модели сегмента карты. В наши дни он получает тонну шумихи из-за того, что он создает одни из самых крутых изображений, когда-либо виденных во вселенной.

В любом случае, он сгенерировал 25T информации, хранящейся в Versant, и реплицировался на 3 континентах. Когда миссия будет завершена в следующем году, она будет в общей сложности 50T

Возможно, также стоит отметить, что объектные базы данных, как правило, намного меньше, чтобы хранить одну и ту же информацию. Это происходит из-за того, что они действительно нормализованы, не дублируются данные для объединений, нет пустое пустое пространство столбца и несколько индексов, а не 100 из них. Вы можете найти общедоступную информацию о тестировании ESA, чтобы рассмотреть возможность хранения в многоколоночном реляционном формате базы данных -vs- с использованием надлежащей объектной модели и сохранения в базе данных объектов Versant. THey обнаружили, что они могут сэкономить 75% дискового пространства, используя Versant.

Вот реализация: http://www.planck.fr/Piodoc/PIOlib_Overview_V1.0.pdf

Здесь они говорят о 3T -vs-12T, найденном в тестировании http://newscenter.lbl.gov/feature-stories/2008/12/10/cosmic-data/

Также есть контрольные показатели, которые показывают скорость Versant на стороне анализа миссии.

Cheers, -Роберт