Самият аз съм начинаещ в NoSQL бази данни. Така че отговарям на това за сметка на потенциалните гласове против, но това ще бъде страхотно преживяване за мен.
- за да разберете дали MongoDB е добър за съхраняване на такива данни, които в крайна сметка ще бъдат запитвани спрямо времеви диапазони (напр. извличане на всички изображения на определена камера между определен час)? Някакви предложения относно дизайна на базирана на документи схема за моя случай?
Тъй като MongoDB е ориентирана към документи база данни, е добра в заявките в агрегат (вие го наричате документ). Тъй като вече съхранявате данните на всяка камера в собствена таблица, в MongoDB ще имате отделна колекция създадени за всяка камера. Ето как изпълнявате заявки за диапазон от дати.
- Какви трябва да са спецификациите на сървъра (CPU, RAM, диск)? някакво предложение?
Всички NoSQL бази данни са изградени за мащабиране върху стоковия хардуер. Но по начина, по който зададохте въпроса, може би си мислите да подобрите ефективността чрез увеличаване . Можете да започнете с разумна машина и с увеличаване на натоварването можете да продължите да добавяте още сървъри (мащабиране). Няма нужда да планирате и купувате сървър от висок клас.
- Трябва ли да обмисля шардинг/репликация за този сценарий (докато имам предвид производителността при писане за синхронизиране на набори реплики)?
MongoDB заключва цялата база данни за единичен запис (но дава за други операции) и е предназначен за системи, които имат повече четения, отколкото записи. Така че това зависи от това каква е вашата система. Има няколко начина за шардинг и трябва да са специфични за домейна. Общият отговор не е възможен. Въпреки това могат да се дадат някои примери като шардинг по география, по клонове и т.н.
Прочетете също Въведение на обикновен английски в CAP теоремата
Актуализирано с отговор на коментара за шардинг
Според тяхната документация , Трябва да обмислите внедряването на разделен клъстер, ако:
Така че въз основа на последната точка, да. Функцията за автоматично шардинг е изградена за мащабиране на записи. В този случай имате заключване за запис на шард , а не за база данни . Но моят е теоретичен отговор. Предлагам ви да се консултирате с групата 10gen.com.