Я бы хотел попросить других SO для их мнений относительно лучших структур данных, которые будут использоваться для индексации временных рядов (по столбцам, плоско-линейные данные).
Два основныхСуществуют типы временных рядов, основанные на характеристике выборки / дискретизации:
Регулярная дискретизация (каждый образец берется с общей частотой)
Неправильная дискретизация (образцы берутся в произвольные моменты времени)
Запросы, которые потребуются:
Все значения в диапазоне времени [t0, t1]
Все значения в диапазоне времени [t0, t1], которые больше / меньше v0
Все значения во временидиапазон [t0, t1], который находится в диапазоне значений [v0, v1]
Наборы данных состоят из суммированных временных рядов (что-то вроде нерегулярной дискретизации), имногомерный временной ряд.Размер рассматриваемых наборов данных составляет около 15-20 ТБ, следовательно, обработка выполняется распределенным образом - поскольку некоторые из описанных выше запросов приведут к наборам данных, превышающим физический объем памяти, доступный в любой одной системе.
Распределенная обработка в этом контексте также означает диспетчеризацию требуемых конкретных вычислений данных вместе с запросом временного ряда, чтобы вычисление могло происходить как можно ближе к данным, чтобы уменьшить связь между узлами(несколько похоже на парадигму отображения / сокращения) - в непосредственной близости от вычислений и данных очень важно.
Другая проблема, с которой должен справиться индекс, заключается в том, что подавляющее большинство данных является статичными / историческими.(99,999 ...%), однако ежедневно добавляются новые данные, представьте себе "сеньоров на местах" или "рыночные данные".Идея / требование состоит в том, чтобы иметь возможность обновлять любые текущие вычисления (средние значения, диаграммы и т. Д.) С минимально возможной задержкой, некоторые из этих текущих вычислений требуют исторических данных, некоторые из которых будут больше, чем те, которые могут быть разумно кэшированы.
Я уже рассмотрел HDF5, он работает хорошо / эффективно для небольших наборов данных, но начинает перетаскиваться по мере увеличения наборов данных, также нет встроенных возможностей параллельной обработки от внешнего интерфейса.
Поиск предложений, ссылок, дальнейшего чтения и т. Д. (Решения на C или C ++, библиотеки)