Kafka流的最佳做法

时间:2018-08-20 03:03:37

标签: machine-learning apache-kafka etl apache-kafka-streams

我们有一个用python编写的预测服务,用于提供机器学习服务,您向它发送一组数据,它将提供异常检测或预测等。

我想使用Kafka流来处理实时数据。

有两种选择方式:

  1. Kafka流作业仅完成ETL功能:加载数据,并进行简单的转换并将数据保存到Elastic Search。然后启动计时器,定期从ES加载数据并调用预测服务以计算结果并将结果保存回ES。

  2. Kafka流作业完成ETL之外的所有工作,当Kafka流作业完成ETL然后发送数据以预测服务并将计算结果保存到Kafka时,消费者会将结果从Kafka转发到ES。

我认为第二种方法更实时,但我不知道在流作业中进行如此多的预测任务是一个好主意。

这种应用程序是否有共同的模式或建议?

1 个答案:

答案 0 :(得分:2)

是的,我也选择第二个选项。

您可以做的是将Kafka用作ML训练模块和Prediction模块之间的数据管道。这些模块可以在Kafka Streams中很好地实现。

看看下图:

Machine Learning pipeline on top of Apache Kafka