Использовать коллекцию временных рядов MongoDB для хранения ежедневных данных?

#mongodb

Вопрос:

Я хочу сохранить историческую среднюю дневную спотовую цену нескольких криптовалют в MongoDB. Я использовал Mongo в прошлом, но недавно был представлен коллекциям временных рядов, которые, как мне кажется, имели бы смысл здесь. Однако одним из параметров при создании коллекции временных рядов является granularity то, что параметры являются seconds , minutes , и hours . Учитывая, что я хочу хранить только на дневном уровне, является ли это правильным подходом? Тематические исследования, по-видимому, указывают на то, что Монго может легче сжимать данные и читать их быстрее, но действительно ли это излишне в моем случае. Во-вторых, тематическое исследование показывает полезность данных временных рядов, и я вижу, как это может быть полезно здесь:

Отдельный документ для каждой монеты может выглядеть так:

 {
  _id: ....,
  date: ISODate(),
  price: 100,
  symbol: 'btc'
}

{
  _id: ....,
  date: ISODate(),
  price: 120,
  symbol: 'eth'
}

 

Квази-пристегнутый подход мог бы объединить их:

 {
  _id: ...,
  date: ISODate(),
  prices: [
    {
      symbol: 'btc',
      price: 100
    },
    {
      symbol: 'eth',
      price: 120
    }
  }
}
 

Учитывая мое ограниченное знакомство с базами данных временных рядов, является ли это правильным выбором и выглядит ли моя схема прилично?

Комментарии:

1. Первый из них принесет вам больше пользы в будущем. Я бы сказал, что, как правило, вы хотите сопоставить свои данные с тем, как вы их передаете. Поэтому, если вы регистрируете экземпляры цены монеты в данный момент времени, запишите их таким образом в свою базу данных. В стороне, я не уверен, что это все еще так, но в прошлом году Монго встроил сокращение времени, которое было действительно медленным по сравнению с арифметическими подходами. Я бы следил за этим в любом случае, куда бы ты ни пошел.