KSQL 查询对我的请求增加了太多延迟
KSQL query adds too much delay to my request
我有一个系统可以将 (X,Y) 坐标保存到 SQL table。然后,我有一个端点,当调用 returns 时 (X,Y) 坐标。
然而,我的系统最多需要 30 分钟来处理并将 (X,Y) 坐标存储到 SQL table。从这个意义上说,我正在使用 KSQL 来更快地获取数据。
我已经在我提到的后端端点中添加了对 KSQL 的调用。问题是此调用为我的请求增加了 6 秒。
我的端点包含一个如下所示的查询
SELECT feature_a,feature_b FROM ksql_table;
ksql_table 已被前两个流预处理。以我的理解,这个查询应该非常简单并且易于计算。但是处理需要 6 秒。
当 KSQL 查询运行时,它会实例化一个 Kafka Streams 应用程序,该应用程序将构建所请求的 table 状态。这将有一个 "spin-up" 时间,当它是流处理应用程序本身时,这并不重要(因为一旦它是 运行,它就会保持 运行)。但是,如果您在应用程序流程中通过 REST API 重复调用它,那么您将看到此延迟。
我认为在 Kafka 中处理数据流的更佳方法是使用 Kafka Streams 构建和持久化 KTable 中所需的状态,然后通过 Interactive Query and a custom API that your nodejs application can interface with such as described here. Further examples are here and here.
还有一个 nodejs Kafka Streams library,我没有用过,但可能值得一试。
我有一个系统可以将 (X,Y) 坐标保存到 SQL table。然后,我有一个端点,当调用 returns 时 (X,Y) 坐标。
然而,我的系统最多需要 30 分钟来处理并将 (X,Y) 坐标存储到 SQL table。从这个意义上说,我正在使用 KSQL 来更快地获取数据。
我已经在我提到的后端端点中添加了对 KSQL 的调用。问题是此调用为我的请求增加了 6 秒。
我的端点包含一个如下所示的查询
SELECT feature_a,feature_b FROM ksql_table;
ksql_table 已被前两个流预处理。以我的理解,这个查询应该非常简单并且易于计算。但是处理需要 6 秒。
当 KSQL 查询运行时,它会实例化一个 Kafka Streams 应用程序,该应用程序将构建所请求的 table 状态。这将有一个 "spin-up" 时间,当它是流处理应用程序本身时,这并不重要(因为一旦它是 运行,它就会保持 运行)。但是,如果您在应用程序流程中通过 REST API 重复调用它,那么您将看到此延迟。
我认为在 Kafka 中处理数据流的更佳方法是使用 Kafka Streams 构建和持久化 KTable 中所需的状态,然后通过 Interactive Query and a custom API that your nodejs application can interface with such as described here. Further examples are here and here.
还有一个 nodejs Kafka Streams library,我没有用过,但可能值得一试。