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