Я использую mongodb для хранения 30-дневных данных, которые поступают мне в виде потока.Я ищу механизм очистки, с помощью которого я могу выбросить самые старые данные, чтобы освободить место для новых данных.Я использовал mysql, в котором я справился с этой ситуацией, используя разделы.Я сохранил 30 разделов, которые основаны на дате.Я удаляю самый старый раздел с датой и создаю новый раздел для хранения новых данных.
Когда я отображаю то же самое в mongodb, я чувствую, что использую «осколки» на основе даты.Но проблема в том, что это делает мое распределение данных плохим.Если все новые данные находятся в одном и том же сегменте, то этот фрагмент будет настолько горячим, что к ним обращаются многие люди, а фрагменты, содержащие более старые данные, будут загружаться пользователями меньше.
У меня может быть коллекцияоснованная чистка.У меня может быть 30 коллекций, и я могу выбросить самую старую коллекцию для размещения новых данных.Но есть пара проблем: 1) Если я сделаю коллекции меньше, я не смогу извлечь большую пользу из шардинга, поскольку они делаются для каждой коллекции.2) Мои запросы должны измениться на запрос из всех 30 коллекций и принять объединение.
Пожалуйста, предложите мне хороший механизм очистки (если таковой имеется), чтобы справиться с этой ситуацией.