2014-11-15 2 views
0

Каков наилучший способ хранения данных временных рядов для документов, имеющих метаданные?Схема MongoDB для временного хранения с метаданными

Мой объект имеет метаданные:

{ 
    _id: abcdefghijk, 
    meta1: value1, 
    meta2: value2, 
    tags: [tag1, tag2, tag3] 
} 

каждую минуту или час, каждый объект имеет некоторые статистические данные:

{ 
    objectId: abcdefghijk, 
    timestampt: 2014-01-01 00:00:00, 
    key1: value1, 
    key2: value2, 
} 

мне нужно:

  • Получить статистику объектов в конкретная минута, час или больше, период времени
  • Fi объекты LTER по метаданным
  • Aggratations как сумма/средн всех значений ключом1 сгруппированных по meta1 метаданных

Ищу совет опытных пользователей. Если у вас есть какие-либо вопросы, я был бы рад ответить на них и по достоинству оценят вашу помощь.

+0

Это означает, что каждый час вы будете загружать документы? – CesarTrigo

+0

да, почасовая загрузка в порядке. Основная проблема заключается в том, как получить данные как по времени, так и по метаданным – ntdunglc

ответ

0

Многие рекомендации по работе с данными временного ряда содержатся в документе MongoDB Pre-Aggregated Reports. Как правило, вы будете использовать некоторые или все из следующих моделей: (., Например, $ вкл)

  • Bucketing днем ​​(или какой-либо другой период) с использованием upserts
  • Предварительно агрегации суммарные значения на различных уровнях (например. минуту, час, день) с использованием обновлений на месте, каждый раз, когда каждое новое событие/галочка потребляется, что позволяет делать последующие очень быстрые запросы агрегированных данных.
  • Предварительно выделять новые документы в ковше для снижения скорости проглатывания
  • Используйте Иерархию документов Intra Document, также уменьшающую скорость проглатывания
+0

Спасибо! Моя задача состоит в том, что метаданные большие (20 полей), и я не могу их дублировать для каждой статистики (даже дневной статистики) – ntdunglc

+0

Если вы не хотите хранить метаданные один раз за «ведро» (например, один раз в день) имеют одну коллекцию только для метаданных и одну коллекцию для чистой части временных рядов данных и применяют вышеуказанные шаблоны к последним. – PKD

+0

Можете ли вы также показать мне, как запросить получить все статистические данные объектов с днем ​​= $ сегодня и meta1 = $ value1? – ntdunglc

Смежные вопросы