Вопрос: InfluxDB использует Kapacitor в качестве обработчика данных, который работает путем написания tick
сценариев, сравнивая его с написанием простого приложения NodeJS, выполняя вычисления и записывая результаты обратно в influxdb
. Что лучше?
О: Зависит.
Все сводится к тому, насколько сложным будет расчет, сколько данных и достаточно ли вы предприимчивы, чтобы изучить tick
скрипт.
Короче говоря, Kapacitor — это определенно то, что нужно, поскольку он предназначен для выполнения сложных вычислений в масштабе. Его недостаток в том, что;
tick
сценарий имеет крутую кривую обучения
- это все еще относительно новая технология, и если ваши расчеты включают в себя что-то необычное, чего не поддерживает Kapacitor, вам придется создать свой собственный
UDF
.
- более высокая вероятность обнаружения неизвестных ошибок
Когда вы используете Kapacitor
, вы в основном используете его структуру стиля конвейера для обработки данных. Что это за "конвейерный" стиль? Я не буду углубляться в это, но вкратце, каждый node
, который вы определяете в своем tick
скрипте, представляет собой последовательную цепочку узлов обработки данных. Во время выполнения данные будут одновременно проходить через отдельные станции безостановочно (для большинства узлов), чтобы выполнить работу.
Эта структура также является причиной того, что kapacitor
такой быстрый.
NodeJS
с другой стороны. Если вы уже знакомы с ним, то практически не тратите время на его изучение. Javascript
довольно просто. Много отсылок в отличие от Tick
скрипта.
Самым недостатком NodeJS
является то, что Javascript
является однопоточным. То есть одновременно может обрабатываться только одна точка данных или 1 сегмент данных. Если ваш расчет включает в себя какую-то дорогостоящую вычислительную процедуру, то NodeJS
не рекомендуется.
Однако, если расчет является прямым одношаговым видом, например. if X is True then: write back to influxdb as Y
тогда все будет хорошо.
NodeJS или нет. Я думаю, для начала, если ваш расчет должен быть простым, то быстрый и грязный Javascript
должен сделать это. Также сэкономьте свое время от головной боли tick
сценариев. Но имейте в виду, если вы собираетесь делать какие-то сумасшедшие вычисления на более позднем этапе, ваше NodeJS
приложение может плохо масштабироваться. Возможно, вы вернетесь к Kapacitor
.
person
Samuel Toh
schedule
01.06.2018