当前位置: 首页 > 知识库问答 >
问题:

Apach Flink CEP“至少”条件

韩嘉胜
2023-03-14

我正在尝试创建一个与“至少”事件匹配的CEP模式。修改示例代码:

middle.oneOrMore().where(new IterativeCondition<SubEvent>() {
    @Override
    public boolean filter(SubEvent value, Context<SubEvent> ctx) throws Exception {
        if (!value.getName().startsWith("foo")) {
            return false;
        }

        double sum = value.getPrice();
        for (Event event : ctx.getEventsForPattern("middle")) {
            sum += event.getPrice();
        }
        return Double.compare(sum, 5.0) < 0;
    }
});

middle.oneOrMore().where(new IterativeCondition<SubEvent>() {
    @Override
    public boolean filter(SubEvent value, Context<SubEvent> ctx) throws Exception {
        if (!value.getName().startsWith("foo")) {
            return false;
        }

        long count = 0;
        for (Event event : ctx.getEventsForPattern("start")) {
            count = count + 1; 
        }
        return count >= MIN_COUNT;
    }
});

不解决我的问题,因为条件将不断失败,永远无法贡献计数。

我在中找到https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/libs/cep.html确实有

// expecting 4 occurrences
 start.times(4);

 // expecting 0 or 4 occurrences
 start.times(4).optional();

 // expecting 1 or more occurrences
 start.oneOrMore();

 // expecting 0 or more occurrences
 start.oneOrMore().optional();

有start.at存在吗?

共有2个答案

濮阳
2023-03-14

您可以使用。时间(5)后跟相同的模式,但带有量词。一个或多个()。可选()。时间只需要5次,而零或更多时间将为您提供“至少…”。

计承德
2023-03-14

检查此链接以查找解决方案。它会检查模式是否发生5次。您可以按次修改(number_of_times)

[https://stackoverflow.com/questions/45033109/flink-complex-event-processing/45048866]
 类似资料:
  • 本文向大家介绍说出至少十条你理解的css规范相关面试题,主要包含被问及说出至少十条你理解的css规范时的应答技巧和注意事项,需要的朋友参考一下 命名规范(连字符分隔的字符串) 文件宽度限制(每行80个字符) 加注释 编写选择器应有助于重用 尽量不要加 避免使用CSS表达式 选择 舍弃 避免使用滤镜(IE 专有的 AlphaImageLoader 滤镜) 把样式表放在顶部 / 把CSS放在外部文件

  • 本文向大家介绍说出至少十条你理解的html规范相关面试题,主要包含被问及说出至少十条你理解的html规范时的应答技巧和注意事项,需要的朋友参考一下 标签名和属性推荐用小写 标签都需闭合,不管是单标签还是双标签 双标签不宜使用单标签闭合方式 属性值需双引号 img 标签需加上 alt img 标签推荐加上固定宽高 html 和 body 标签最好不好 部分字符推荐转义,比如 link 写在 head

  • 本文向大家介绍说出至少十条你理解的js规范相关面试题,主要包含被问及说出至少十条你理解的js规范时的应答技巧和注意事项,需要的朋友参考一下 1.尽量使用const去定义常量,且采用大写加_,如 MAX_COUNT = 10 2.尽量写代码注释; 3.try catch不确定的代码块; 4.Promise的reject处理; 5.及时清理不用的变量、定时器; 6.switch 语句应使用break中

  • 问题内容: 雇员表具有ID和NAME列。名称可以重复。我想找出是否至少有一个名称类似“ kaushik%”的行。 因此查询应返回true / false或1/0。 是否可以使用单个查询找到它。如果我们尝试类似 在这种情况下,它不会返回true / false。另外,我们正在遍历表中的所有记录。简单SQL中是否存在这样的方式,使得每当获取满足条件的第一条记录时,它都应停止检查其他记录。还是只能在Pl

  • 首先,我知道这个查询有点混乱,但它可以正常工作,直到至少有一条记录存在,并且设置为true,此时没有返回任何记录。如果有另一条记录的设置为false或两者的组合,则它可以正常工作,即返回的记录的所有票证总数都设置为0或适当的值。 我已将查询更新为,并将票证表联接更改为left(也尝试了full outer),但它仍然存在上述问题。 为什么会发生这种情况,我能做些什么来防止它?

  • 我有值,我希望它们至少有两个十进制数字,但我不想修剪其余的数字。 是否有构建方法或更优雅的方法来实现这一点? 我不能使用,因为我希望在存在其他小数时保留它们。