我们有一个用python编写的预测服务来提供机器学习服务,你发送一组数据,它会给出异常检测或预测等等 .
我想使用Kafka流来处理实时数据 .
有两种方法可供选择:
-
Kafka流作业只完成
ETL
功能:加载数据,并进行简单转换并将数据保存到弹性搜索 . 然后启动计时器定期从ES加载数据并调用预测服务来计算并将结果保存回ES . -
Kafka流工作除了
ETL
之外还做了所有工作,当Kafka流工作完成ETL
然后将数据发送到预测服务,并将计算结果保存到Kafka,消费者将结果从Kafka转发到ES .
我认为第二种方式更实时,但我不知道在流媒体工作中做这么多预测任务是个好主意 .
此类申请是否有任何共同的模式或建议?
1 回答
是的,我也会选择第二种选择 .
您可以做的是使用Kafka作为ML-Training模块和预测模块之间的数据管道 . 这些模块可以在Kafka Streams中很好地实现 .
看看下图: