InfluxDB - лучшая схема для данных временных рядов (медленные), содержащие временные ряды (быстрые) - PullRequest
0 голосов
/ 27 июня 2019

Я новичок в InfluxDB, и мне интересно, какой дизайн схемы я должен использовать. У меня есть пара датчиков, производящих наборы данных с временными метками с частотой примерно 0,4 - 1 Гц (то есть около 20 000 - 80 000 наборов данных в день, умноженных на количество датчиков). Поля этих датчиков не всегда одинаковы, но я предполагаю, что каждое поле с данными представлено в столбце.

Что вызывает проблемы, так это один тип датчика, который доставляет в наборе данных с временной отметкой сигнал амплитуды сэмплированного напряжения 10 МГц (20 000 точек, называемый «rawData»). Эти необработанные данные сами по себе являются временными рядами, но отдельные точки в них не имеют временных отметок. Однако я могу сгенерировать метки времени для каждой из них, используя информацию выше.

Мой вопрос: как мне лучше всего это смоделировать? Лучше ли мне поместить 20 000 точек в одну строку в качестве значения в поле или мне нужно поместить их в 20 000 строк? Если я сделаю последнее, то как обработать все остальные данные в полях с метками времени - я должен повторить их для каждой строки или есть более элегантный способ сделать это для последующего анализа временных рядов rawData?

Другая проблема заключается в том, что сопоставление массива rawData с отдельными строками influenxDB в Python занимает очень много времени, поэтому я предпочитаю подход "один массив rawData на строку", но это ли хорошая стратегия?

Визуализация структуры набора данных:

  • 1012 * Отметка времени *
  • поле1: строка
  • field2: int
  • field3: float <- данные медленного временного ряда </li>
  • ... больше полей ...
  • rawData: массив [20.000] <- быстрый временной ряд в медленном временном ряду </li>
  • поле (п + 1)
  • ... больше полей ...
...