machine-learning - Kafka 流的最佳实践

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

我们有一个用Python编写的预测服务来提供机器学习服务,你向它发送一组数据,它会给出异常检测或预测等。

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

有两种选择方式:

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

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

我认为第二种方式更实时,但我不知道在流作业中做这么多预测任务是个好主意。

此类应用程序有任何常见模式或建议吗?

最佳答案

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

您可以使用 Kafka 作为 ML 训练模块和预测模块之间的数据管道。这些模块可以在 Kafka Streams 中很好地实现。

看看下面的图:

Machine Learning pipeline on top of Apache Kafka

关于machine-learning - Kafka 流的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51923672/

相关文章:

sql-server - 无法在同一数据流任务中使用行计数和条件拆分

sql-server - ssis 中的日期值错误

python - 如何存储 CNN 提取的特征来训练 SVM 分类器

java - 有没有办法从 Spark 流作业中读取 Kafka 流中的特定偏移量?

apache-kafka - 滑动窗口中Kafka KStream相关消息事件

apache-kafka - Apache Kafka 灾难恢复计划

sql-server - 无法使用 SSIS 将长文本从 Excel 导入 SQL Server

arrays - 在 Julia 中将数组拆分为训练集和测试集的有效方法是什么?

python - 使用文本特征提取创建数据集

python - Python 中的 Praat 集成 2/3