背景
flink是一个低延迟高吞吐的系统,每秒处理的数据量高达数百万,而机器模型一般比较笨重,虽然功能强大,但是qps一般都比较低,日常工作中,我们一般是如何把flink和机器学习模型组合起来一起使用呢?
flink和机器学习模型的常用组合方式
第一种:flink处理和机器模型的处理完全分离
一般来说,这是目前常用的组合方式,首先利用flink集群先把数据处理完,然后输出一份结果数据到某个外部存储,比如DB中,到这里flink的处理就完成了。紧接着是会有一个外部的定时任务,其任务是获取flink的结果数据,然后调用机器模型接口获取最终的预测结果,把这份预测结果写入到最终的存储目的地
第二种: flink处理和机器模型处理完全结合
这种方式要解决的最大问题是flink的处理速度和机器模型的qps完全不是一个数量级的问题,所以为了将就机器模型的吞吐量,我们一般会在flink中进行数据聚合操作,比如把每分钟的数据聚合然后在调用一次机器模型,这样就相当于每分钟只会调用一次机器模型接口,这种访问量机器模型完全能应对