kuiper规则编写流程

官方规则的教程:https://github.com/emqx/kuiper/blob/master/docs/en_US/rules/overview.md

添加规则过程

新建rule1.txt

{
  "sql": "SELECT  COUNT(*) As t_count FROM demo GROUP BY  TUMBLINGWINDOW(ss, 1)",
  "actions": [
    {
      "log": {}
    }]
}

这段代码的意思是:每一秒统计一秒内收到的消息数,并且kuiper收到消息后会写入log中

  1. sql代码怎么写:具体怎么写看官方文档:https://github.com/emqx/kuiper/blob/master/docs/en_US/sqls/built-in_functions.md
  2. action怎么写:
    是接收器的动作,即收到数据如何处理,提供三种处理方法:log保存;mqtt发送给其他设备;用户自定义,官方文档:https://github.com/emqx/kuiper/blob/master/docs/en_US/extension/function.md

在kuiper中创建和启用规则

将rule1.txt移动到kuiper安装的根目录下,在终端中输入以下命令来新建kuiper规则

bin/cli create rule rule1 rule1.txt

启用规则

bin/cli start rule rule1

测试

规则启用后就可以接收消息了,使用jmeter或者mosquitto发送消息测试,如用mosquitto发送,可以在log/stream.log中看到如下消息:

time="2020-03-21T19:23:35+08:00" level=info msg="triggered by ticker" rule=rule3
time="2020-03-21T19:23:35+08:00" level=info msg="window window triggered at 2020-03-21 19:23:35.000000384 +0800 CST" rule=rule3
time="2020-03-21T19:23:35+08:00" level=info msg="window window triggered for 1 tuples" rule=rule3
time="2020-03-21T19:23:35+08:00" level=info msg="sink result for rule rule3: [{\"t_count\":1}]" rule=rule3

在这里插入图片描述

附录

kuiper cli命令 对流和规则的操作:

在这里插入图片描述

发布了25 篇原创文章 · 获赞 0 · 访问量 433

猜你喜欢

转载自blog.csdn.net/longzu233/article/details/105014656