Запрос KSQL добавляет слишком большую задержку моему запросу - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть система, которая сохраняет координаты (X, Y) в таблицу SQL.Затем у меня есть конечная точка, которая при вызове возвращает координаты (X, Y).

Однако моей системе требуется до 30 минут для обработки и сохранения координаты (X, Y) в таблице SQL.В этом смысле я использую KSQL для получения этих данных быстрее.

Я добавил вызов в KSQL в конечной точке упомянутого бэкэнда.Проблема в том, что этот вызов добавляет 6 дополнительных секунд к моему запросу.

Моя конечная точка содержит запрос, который выглядит следующим образом

SELECT feature_a,feature_b FROM ksql_table;

Таблица ksql_table уже была предварительно-обработано двумя предыдущими потоками.В моем понимании этот запрос должен быть довольно простым и легко вычисляемым.Но на обработку уходит 6 секунд.

1 Ответ

0 голосов
/ 05 февраля 2019

Когда выполняется запрос KSQL, он создает приложение Kafka Streams, которое будет формировать запрошенное состояние таблицы.Это будет иметь время «раскрутки», которое не имеет значения, когда оно является самим приложением для обработки потоков (так как после запуска оно продолжает работать).Однако, если вы неоднократно вызываете его через REST API как часть потока вашего приложения, вы увидите эту задержку.

Я думаю, что более оптимальным способом работы с потоком данных в Kafka было бы использование потоков Kafka для построения и сохранения состояния, требуемого в KTable, а затем его обслуживание через Интерактивный запрос и пользовательский API, с которым ваше приложение nodejs может взаимодействовать, как описано здесь .Дополнительные примеры: здесь и здесь .

Существует также библиотека 1013 * nodejs Kafka Streams , которую я не использовал, но, возможно, стоит проверитьиз.

...