хранилище значения ключа для данных временного ряда?

Плавание в SQL Двойное в CLR (C#/VB). Существует таблица типов данных SQL с эквивалентами CLR на MSDN.

12
задан toasteroven 5 November 2009 в 22:23
поделиться

2 ответа

Похоже, что MongoDB очень хорошо подошел бы. Обновления и вставки происходят очень быстро, поэтому, возможно, вы захотите создать документ для каждого события, например:

{
   object: XYZ,
   ts : new Date()
}

Тогда вы сможете индексировать поле ts, и запросы также будут быстрыми. (Кстати, вы можете создать несколько индексов в одной базе данных.)

Как выполнить три ваших запроса:

получить все данные для объекта XYZ. между временем t1 и временем t2

db.data.find({object : XYZ, ts : {$gt : t1, $lt : t2}})

делать то же самое, но возвращать одну дату. очко в день (первое, последнее, закрытое до time t...)

// first
db.data.find({object : XYZ, ts : {$gt : new Date(/* start of day */)}}).sort({ts : 1}).limit(1)
// last
db.data.find({object : XYZ, ts : {$lt : new Date(/* end of day */)}}).sort({ts : -1}).limit(1)

Для ближайшего времени вам, вероятно, понадобится пользовательская JavaScript-функция, но это выполнимо.

получить все данные для всех объектов для конкретная временная метка

db.data.find({ts : timestamp})

Не стесняйтесь спрашивать в списке пользователей , если у вас есть вопросы, кто-нибудь другой мог бы придумать более легкий способ приближения к событиям.

.
3
ответ дан 2 December 2019 в 22:51
поделиться

Вот почему существуют базы данных, специфичные для данных временных рядов - реляционные базы данных просто недостаточно быстры для больших временных рядов.

Я использовал Fame довольно неплохо. лот в инвестиционных банках. Это очень быстро, но я думаю, очень дорого. Однако, если вашему приложению требуется скорость, возможно, стоит его посмотреть.

2
ответ дан 2 December 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: