官网介绍:https://github.com/emqx/kuiper/blob/master/README-CN.md
EMQ X Kuiper 是 Golang 实现的轻量级物联网边缘分析、流式处理开源软件,可以运行在各类资源受限的边缘设备上。Kuiper 设计的一个主要目标就是将在云端运行的实时流式计算框架(比如 Apache Spark,Apache Storm 和 Apache Flink 等)迁移到边缘端。Kuiper 参考了上述云端流式处理项目的架构与实现,结合边缘流式数据处理的特点,采用了编写基于源 (Source),SQL (业务逻辑处理), 目标 (Sink) 的规则引擎来实现边缘端的流式数据处理。
接收mqtt协议的流数据,并处理,处理后的数据可以写入本地文件,以mqtt格式传出去或者用自定义的golang语言发送到其他地方。怎样处理数据,数据处理后发送给谁,都可以在规则中定义。
如何编写规则可以看官方文档:https://github.com/emqx/kuiper/blob/master/docs/en_US/extension/function.md
官网列举了许多优点,我觉得最重要的三个优点是
参考官方:https://www.jianshu.com/p/dd2567db4614
以上各类应用场景很好体现了边缘计算的价值:实时本地数据处理,提升用户体验;在本地数据处理,还提高了数据安全性,保护个人隐私;节省网络带宽和云端存储成本。Kuiper 可以运行在这些计算资源不足的边缘设备上,低成本地实现边缘端的流式数据处理。
Kuiper 的使用过程与传统的流式工具类似,主要包括三步:流定义,规则定义,提交规则执行
用来启动kuiper的接收消息服务,命令为
bin/server
对流的增删查看,对规则的增删查看、启用停止,命令格式,如
bin/cli $命令
#如 bin/cli query
功能 | 解释 | 命令 | stream | rule |
---|---|---|---|---|
create | 创建流/规则 | create | create stream $stream_name | create rule $rule_name $rule_json / -f $rule_def_file |
describe | 查看流/规则 | describe | describe stream $stream_name | describe rule $rule_name |
drop | 删除流/规则 | drop | drop stream $stream_name | drop rule $rule_name |
show | 显示所有规则/流 | show | show streams | show rules |
query | 接收筛选 | query | query command line | |
restart | 重启规则 | restart | restart rule $rule_name | |
start | 开始规则 | start | start rule $rule_name | |
stop | 结束规则 | stop | stop rule $rule_name | |
getstatus | 查看规则状态 | getstatus | getstatus rule $rule_name | |
help | 帮助 | h |