产业气象站|传感器数据流异常检测的深度学习KSQL UDF,「物联网架构」MQTT

用于传感器分析的KSQLUDF 。 利用KSQL的新的API特性 , 用Java轻松地构建UDF/UDAF函数 , 从而使用ApacheKafka进行连续流处理 。 用例:联网汽车——使用深度学习的实时流媒体分析 。
我为混合机器学习基础设施构建了一个场景 , 利用ApacheKafka作为可伸缩的中枢神经系统 。 使用公共云在极端尺度下训练分析模型(如通过谷歌ML引擎在谷歌云平台(GCP)上使用TensorFlow和TPUs 。 预测(即模型推断)是在本地Kafka基础设施的边缘前提下执行的(例如利用Kafka流或KSQL进行流分析) 。
这篇文章的重点是在前提部署 。 我用KSQLUDF创建了一个用于传感器分析的Github项目 。 它利用KSQL的新API特性轻松地使用Java构建UDF/UDAF函数 , 对传入事件进行连续流处理 。
用例:联网汽车——使用深度学习的实时流媒体分析连续处理来自连接设备(本例中的汽车传感器)的数百万个事件:
产业气象站|传感器数据流异常检测的深度学习KSQL UDF,「物联网架构」MQTT
文章图片
我建立了不同的分析模型 。 他们在公共云上接受训练 , 利用TensorFlow、H2O和谷歌ML引擎 。 模型创建不是这个示例的重点 。 最终的模型已经准备好投入生产 , 并可以部署进行实时预测 。
模型服务可以通过模型服务器或原生嵌入到流处理应用程序中来完成 。 查看模型部署中RPC与流处理的权衡和“TensorFlow+gRPC+Kafka流”示例 。
演示:使用MQTT、Kafka和KSQL在边缘进行模型推断Github项目生成汽车传感器数据 , 通过ConfluentMQTT代理将其转发到Kafka集群进行KSQL处理和实时分析 。
这个项目主要是通过MQTT将数据输入Kafka , 通过KSQL对数据进行处理:
产业气象站|传感器数据流异常检测的深度学习KSQL UDF,「物联网架构」MQTT
文章图片
ConfluentMQTT代理的一大优点是可以简单地实现物联网场景 , 而不需要MQTT代理 。 您可以通过MQTT代理直接将消息从MQTT设备转发到Kafka 。 这大大减少了工作和成本 。 如果您“只是”希望在Kafka和MQTT设备之间进行通信 , 那么这是一个完美的解决方案 。
【产业气象站|传感器数据流异常检测的深度学习KSQL UDF,「物联网架构」MQTT】如果你想看这个故事的其他部分(与像Elasticsearch/Grafana这样的sink应用的集成) , 请看看Github项目“KSQL流物联网数据” 。 通过KafkaConnect和Elasticconnector实现了与ElasticSearch和Grafana的集成 。
KSQLUDF源代码开发udf非常容易 。 只需在一个UDF类中实现一个Java方法:
@Udf(description="applyanalyticmodeltosensorinput")publicStringanomaly(Stringsensorinput){"YOURLOGIC


    推荐阅读