kuiper批量创建规则的例子
2021-02-05 09:16
1331 查看
引言
前面提到了测试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,可以看到所有规则都被运行。
博主:测试生财
座右铭:专注测试与自动化,致力提高研发效能;通过测试精进完成原始积累,通过读书理财奔向财务自由。
csdn:https://blog.csdn.net/ccgshigao
相关文章推荐
- PowerShell创建Byte数组例子
- 创建测试表,批量插入数据的存储过程,分页存储过程
- AD(活动目录)批量创建用户!
- Exchange2007通过PowerShell批量创建用户邮箱指定组成员邮箱
- linux下paste合并文件 要创建不同于空格或tab键的域分隔符,使用-d选项。下面的例子用冒号做域分隔符。
- nginx rewrite规则、参数、例子
- 反对网抄,没有规则可以创建目标"install" 靠谱解答
- Linux shell脚本004(批量创建用户)
- mysql 批量创建表,利用存储过程
- vmrun 批量创建vmware虚拟机
- wxPython 一个很好的窗口、菜单创建例子
- 反对网抄,没有规则可以创建目标"install" 靠谱解答
- BW Infocube 批量创建
- 批量自动创建账号脚本2
- mongo索引sort排序字段复合索引升序和降序索引创建规则
- 用例子说明怎样动态创建控件.
- 轻松创建nodejs服务器(1):一个简单nodejs服务器例子
- 一个分别在栈和自由存储区创建和删除对象的例子
- 通过Shell脚本来创建批量服务器上的MySQL数据库账号
- python 按指定规则批量删除多级目录中的文件