#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. Первый из них принесет вам больше пользы в будущем. Я бы сказал, что, как правило, вы хотите сопоставить свои данные с тем, как вы их передаете. Поэтому, если вы регистрируете экземпляры цены монеты в данный момент времени, запишите их таким образом в свою базу данных. В стороне, я не уверен, что это все еще так, но в прошлом году Монго встроил сокращение времени, которое было действительно медленным по сравнению с арифметическими подходами. Я бы следил за этим в любом случае, куда бы ты ни пошел.