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