我有一个将(x,y)坐标保存到sql表的系统。然后,我有一个端点,调用它时返回(x,y)坐标。
但是,我的系统需要30分钟来处理(x,y)坐标并将其存储到sql表中。从这个意义上说,我使用ksql来更快地获取数据。
我已经在我提到的后端的端点中添加了对ksql的调用。问题是这个电话给我的请求增加了6秒钟。
我的端点包含如下查询 SELECT feature_a,feature_b FROM ksql_table;
ksqlèu表已经由前面的两个流进行了预处理。在我的理解中,这个查询应该是非常直接和容易计算的。但这需要6秒钟来处理。
1条答案
按热度按时间plicqrtu1#
当ksql查询运行时,它将示例化kafka streams应用程序,该应用程序将构建请求的表状态。这将有一个“加速”时间,这与流处理应用程序本身无关(因为一旦它运行,它就保持运行状态)。但是,如果您作为应用程序流的一部分通过restapi重复调用它,那么您将看到这种延迟。
我认为使用kafka中的数据流的一种更为优化的方法是使用kafka流来构建和持久化ktable中所需的状态,然后通过交互式查询和nodejs应用程序可以与之接口的自定义api来提供服务,如这里所述。更多的例子在这里和这里。
还有一个nodejs-kafka-streams库,我没有用过,但可能值得一看。