kuiper批量创建规则的例子

引言

前面提到了测试kuiper创建规则上限数遇到的问题,这里给大家分享一下如何批量创建多条规则。

分析

kuiper官网的性能测试结果中没有详细说明8000条规则的具体场景。这里我是这么理解:

首先有8000个流,其中800个流对应一个SELECT temperature FROM sourceX WHERE > 20这样的规则;另外7200个流对应SELECT temperature FROM sourceY WHERE temperature <= 20

这样如果我发送的MQTT消息中的temperature为(20,100]间的随机数,整个7200/8000=90%的数据被过滤掉,只有800/8000=10%的规则被命中。

测试场景构建

创建两个流:demo1和demo2

#进入容器
docker exec -it kuiper /bin/bash
#创建流demo1
bin/kuiper create stream demo1 '(temperature float, humidity bigint) WITH (FORMAT="JSON", DATASOURCE="demo1")'
#创建流demo2
bin/kuiper create stream demo2 '(temperature float, humidity bigint) WITH (FORMAT="JSON", DATASOURCE="demo2")'

然后分别创建7200条规则rule1(SELECT temperature FROM sourceY WHERE temperature <= 20)和800条规则rule2(SELECT temperature FROM sourceY WHERE temperature >20)

文件:rule1

{
  "sql": "SELECT * FROM demo1 WHERE temperature <= 20",
  "actions": [
    {
      "log": {}
    }
  ]
}

文件:rule2

{
  "sql": "SELECT * FROM demo2 WHERE temperature > 20",
  "actions": [
    {
      "log": {}
    }
  ]
}

编写脚本,创建7200条规则1和800条规则2

creatRule.sh

#!/bin/sh

#拷贝规则到kuiper容器内部
docker cp rule1 kuiper:/go/kuiper/_build/kuiper-1.1.1-linux-x86_64/bin
docker cp rule2 kuiper:/go/kuiper/_build/kuiper-1.1.1-linux-x86_64/bin

for i in `seq 1 8000`
do
      ruleId=$i
      echo $ruleId
      if [ $i -le 7200 ];then
       #前7200条规则rule1
           docker exec -it kuiper /bin/sh -c "bin/kuiper create  rule rule_iot_${ruleId} -f bin/rule1"
      else
       #前7200条规则rule2
           docker exec -it kuiper /bin/sh -c "bin/kuiper create  rule rule_iot_${ruleId} -f bin/rule2"
      fi
done

执行:sh creatRule.sh

预计几分钟后执行完毕,通过curl http://localhost:9081/rules,可以看到所有规则都被运行。

传送门:2021最新测试资料与大厂招聘合集

博主:测试生财(一个不为996而996的测开码农)

座右铭:专注测试开发与自动化运维,努力读书思考写作,为内卷的人生奠定财务自由。

内容范畴:技术提升,职场杂谈,事业发展,阅读写作,投资理财,健康人生。

csdn:https://blog.csdn.net/ccgshigao

博客园:https://www.cnblogs.com/qa-freeroad/

51cto:https://blog.51cto.com/14900374

微信公众号:测试生财(定期分享独家内容和资源)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

公众号-测试生财

点赞和关注比打赏更重要

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值