深度学习KSQL UDF,用于MQTT IoT传感器数据的流异常检测

我使用Apache Kafka作为可扩展的中枢神经系统,为混合机器学习基础架构构建了一个方案。 公共云用于以极端规模训练分析模型(例如,通过Google ML Engine在Google Cloud Platform(GCP)上使用TensorFlow和TPU。预测(即模型推断)在本地Kafka基础架构的边缘执行)(例如,利用Kafka Streams或KSQL进行流分析。

这篇文章重点介绍本地部署。 我创建了一个带有KSQL UDFGithub项目,用于传感器分析 。 它利用KSQL的新API功能,使用Java轻松构建UDF / UDAF函数,以对传入事件进行连续流处理。

用例:联网汽车–使用深度学习的实时流分析

从连接的设备(在此示例中为汽车传感器)连续处理数百万个事件:

深度学习

为此,我建立了不同的分析模型。 他们使用TensorFlow,H2O和Google ML Engine在公共云上进行了培训。 模型创建不是本示例的重点。 最终模型已经准备就绪,可以投入生产,并且可以部署用于实时进行预测。

可以通过模型服务器完成模型服务,也可以将模型本机嵌入到流处理应用程序中。 有关模型部署的信息,请参见RPC与流处理之间的权衡取舍,以及此处的“ TensorFlow + gRPC + Kafka流”示例

演示:使用MQTT,Kafka和KSQL在边缘进行模型推理

Github项目生成汽车传感器数据,并通过Confluent MQTT代理将其转发到Kafka集群,以进行KSQL处理和实时分析

该项目致力于通过MQTT将数据吸收到Kafka中以及通过KSQL处理数据:

深度学习

Confluent MQTT代理的一个巨大好处是无需使用MQTT代理即可轻松实现IoT场景。 您可以通过MQTT代理将消息直接从MQTT设备转发到Kafka。 这大大减少了工作量和成本。 如果您只是想在Kafka和MQTT设备之间进行通信,那么这是一个完美的解决方案。

如果您想看故事的另一部分(与Elasticsearch / Grafana之类的接收器应用程序集成),请查看Github项目“ 用于传输IoT数据的KSQL ”。 这样可以通过Kafka Connect和Elastic连接器实现与ElasticSearch和Grafana的集成。

KSQL UDF –源代码

开发UDF非常容易。 只需在UDF类中的一个Java方法中实现该函数:

@Udf(description = "apply analytic model to sensor input")
            public String anomaly(String sensorinput){ "YOUR LOGIC" }

这是异常检测KSQL UDF的完整源代码。

如何使用Apache Kafka和MQTT代理运行演示?

Github项目中描述了执行演示的所有步骤。

您只需要安装Confluent Platform ,然后按照以下步骤来部署UDF,创建MQTT事件并利用分析模型通过KSQL处理它们

我使用Mosquitto生成MQTT消息 。 当然,您也可以使用任何其他MQTT客户端。 这是开放和标准化协议的巨大好处。

适用于Apache Kafka和机器学习的混合云架构

如果您想了解有关可伸缩的,与供应商无关的机器学习基础架构背后的概念的更多信息,请查看我在Slideshare上的演示,或观看相应的Confluent网络研讨会“ 在云中释放Apache Kafka和TensorFlow ”的记录。

KaiWähner 在云中释放Apache Kafka和TensorFlow

请分享任何反馈! 你喜欢还是不喜欢? 还有其他想法吗?

翻译自: https://www.javacodegeeks.com/2018/08/deep-learning-ksql-udf.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值