Лучшие в своем классе структуры данных индексирования для чрезвычайно больших временных-рядов

Я хотел бы спросить у коллег по SO, что они думают о лучших в своем роде структурах данных, которые будут использоваться для индексации временных-рядов (также называемых столбцами-мудрые данные, также известные как плоские линейные).

Существует два основных типа временных рядов-, основанных на характеристике выборки/дискретизации:

  1. Регулярная дискретизация (Каждая выборка берется с общей частотой)

  2. Нерегулярная дискретизация(Выборки берутся в произвольное время -точки)

Требуемые запросы:

  1. Все значения во временном диапазоне [t0,t1]

  2. Все значения во временном диапазоне [t0,t1], которые больше/меньше v0

  3. Все значения во временном диапазоне [t0,t1], находящиеся в диапазоне значений [v0,v1]

Наборы данных состоят из суммированных временных-рядов (, которые как бы преодолевают неравномерную дискретизацию)и многомерные временные-ряды. Рассматриваемый набор данных(s)имеет размер около 15-20 ТБ, следовательно, обработка выполняется распределенным образом -, поскольку некоторые из описанных выше запросов приведут к наборам данных, превышающим физический объем памяти, доступной в любой системе.

Распределенная обработка в этом контексте также означает диспетчеризацию требуемых вычислений, специфичных для данных, вместе с запросом временной-серии, так что вычисление может выполняться как можно ближе к данным -, чтобы уменьшить узел за узлом. связь (несколько похожа на парадигму map/reduce)-в непосредственной близости вычислений и данных очень важна.

Еще одна проблема, с которой должен справиться индекс, заключается в том, что подавляющее большинство данных являются статическими/историческими (99,999...%),однако ежедневно добавляются новые данные, подумайте о «полевых сеньорах» или «рыночных данных». Идея/требование состоит в том, чтобы иметь возможность обновлять любые текущие вычисления (средние значения, garch и т. д.)с минимально возможной задержкой, некоторые из этих текущих вычислений требуют исторических данных, некоторые из которых будут больше, чем может быть. разумно кэшируется.

Я уже рассматривал HDF5, он хорошо/эффективно работает с небольшими наборами данных, но начинает тормозить по мере того, как наборы данных становятся больше, а также нет встроенных возможностей параллельной обработки-переднего интерфейса.

Нужны предложения, ссылки, дополнительная литература и т. д. (Решения, библиотеки на C или C++)

23
задан Community 22 September 2017 в 17:44
поделиться