Обработка большого количества телеметрии - PullRequest
0 голосов
/ 14 января 2011

У меня есть проект, в котором мы читаем большое количество данных телеметрии. Телеметрия состоит из «каналов», канал часто значения от одного датчика. Например, датчик температуры.

Каждое чтение состоит из:
A: Измеренное значение
B: Идентификатор канала
C: время измерения

Мы получаем телеметрию с довольно высокой частотой, до 500 Гц (500 выборок в секунду) и до 1 Гц для каждого канала. Количество одновременных каналов обычно составляет около 150.

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

Итак, я ищу коллекцию / алгоритм для обработки данных и последующего отображения значений, отображение состоит из графиков и числовых показаний.

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

Короче говоря, мне нужна коллекция, которая может структурировать данные:
A: Должен быть в состоянии получить доступ к одному чтению по времени, как Значение (время).
B: Должен быть в состоянии прочитать значения последовательно от времени a до b.
C: Вставьте новые значения, в конце или в середине.

Я сделал реализацию, используя skiplist (http://en.wikipedia.org/wiki/Skiplist). Кажется, что он соответствует всем требованиям, но потребляет много памяти. Мои первоначальные вычисления показали где-то между 5 и 10 от измеренных значений. На практике это выше, чем это.

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

Итак, есть мысли о коллекции / алгоритме, которые могут это сделать?

1 Ответ

0 голосов
/ 14 января 2011

Вы можете использовать для этого HDF5 .

Упоминается приложение телеметрии для этого формата здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...