Flink CEP greedy理解
使用greedy
val env = StreamExecutionEnvironment.getExecutionEnvironment
val input = env.fromElements("a", "aa", "aaa","bbb","ccc","cc") val pattern = Pattern.begin[String]("a-label").where(s => s.startsWith("a")).oneOrMore.next("b-label").where(s => s.length==3).oneOrMore.greedy.next("c-label").where(s=> s.startsWith("c"))val patternStream = CEP.pattern(input, pattern)patternStream.select(map=>{val a = map.get("a-label").getval b = map.get("b-label").getval c = map.get("c-label").gets"$a-$b-$c" }).print()
env.execute()
结果:
7> Buffer(aaa) - Buffer(bbb, ccc)-Buffer(cc)
4> Buffer(a, aa) - Buffer(aaa, bbb, ccc)-Buffer(cc)
6> Buffer(aa) - Buffer(aaa, bbb, ccc)-Buffer(cc)
5> Buffer(aa, aaa) - Buffer(bbb, ccc)-Buffer(cc)
3> Buffer(a, aa, aaa) - Buffer(bbb, ccc)-Buffer(cc)
--------------------------------------------------------------------------------------------------------------------------------
不使用greedy:
val env = StreamExecutionEnvironment.getExecutionEnvironmentimport org.apache.flink.streaming.api.scala._ val input = env.fromElements("a", "aa", "aaa","bbb","ccc","cc")// pattern为a+(greedy)b val pattern = Pattern.begin[String]("a-label").where(s => s.startsWith("a")).oneOrMore.next("b-label").where(s => s.length==3).oneOrMore.next("c-label").where(s=> s.startsWith("c"))val patternStream = CEP.pattern(input, pattern)patternStream.select(map=>{val a = map.get("a-label").getval b = map.get("b-label").getval c = map.get("c-label").gets"$a-$b-$c" }).print()env.execute()
结果:
3> Buffer(aaa)-Buffer(bbb)-Buffer(ccc)
5> Buffer(a, aa)-Buffer(aaa, bbb, ccc)-Buffer(cc)
6> Buffer(aa, aaa)-Buffer(bbb, ccc)-Buffer(cc)
8> Buffer(aaa)-Buffer(bbb, ccc)-Buffer(cc)
11> Buffer(a, aa, aaa)-Buffer(bbb)-Buffer(ccc)
1> Buffer(aa, aaa)-Buffer(bbb)-Buffer(ccc)
2> Buffer(aa)-Buffer(aaa, bbb)-Buffer(ccc)
12> Buffer(a, aa)-Buffer(aaa, bbb)-Buffer(ccc)
7> Buffer(aa)-Buffer(aaa, bbb, ccc)-Buffer(cc)
4> Buffer(a, aa, aaa)-Buffer(bbb, ccc)-Buffer(cc)
--------------------------------------------------------------------------------------------------------------------------------
结论:
b-label使用贪婪模式时,元素ccc既满足b-label条件,也满足c-label条件,此时,ccc会被贪婪的处理成满足b的条件;b-label不使用贪婪模式时,ccc既可以当成b-label的元素,也可以当成c-label的元素,所以最后匹配的结果比使用贪婪模式会多。同时,从结果上看,b-label上的greedy不会作用到a-label上。
Flink CEP greedy理解相关推荐
- 【Flink】基于 Flink CEP 实时计算商品订单流失量
1.概述 转载:https://blog.csdn.net/tzs_1041218129/article/details/108786597 假设有个需求需要实时计算商品的订单流失量,规则如下: 用户 ...
- 一文学会 Flink CEP(以直播平台监控用户弹幕为例)
我们在看直播的时候,不管对于主播还是用户来说,非常重要的一项就是弹幕文化.为了增加直播趣味性和互动性, 各大网络直播平台纷纷采用弹窗弹幕作为用户实时交流的方式,内容丰富且形式多样的弹幕数据中隐含着复杂 ...
- 大数据计算引擎之Flink Flink CEP复杂事件编程
原文地址:大数据计算引擎之Flink Flink CEP复杂事件编程 复杂事件编程(CEP)是一种基于流处理的技术,将系统数据看作不同类型的事件,通过分析事件之间的关系,建立不同的时事件系序列库,并利 ...
- Apache Flink CEP 实战
本文根据Apache Flink 实战&进阶篇系列直播课程整理而成,由哈啰出行大数据实时平台资深开发刘博分享.通过一些简单的实际例子,从概念原理,到如何使用,再到功能的扩展,希望能够给打算使用 ...
- 从滴滴的Flink CEP引擎说起
从滴滴的Flink CEP引擎说起 本文转载自 https://www.cnblogs.com/cx2016/p/11647110.html. CEP业务场景 复杂事件处理(Complex Event ...
- Flink CEP在哈啰出行的应用
来源:ververica.cn 作者:刘博·哈啰出行 By 大数据技术与架构 场景描述:Flink CEP 是 Flink 的复杂处理库.它允许用户快速检测无尽数据流中的复杂模式.不过 Flink C ...
- Flink: CEP详解
本文根据 Apache Flink 系列直播课程整理而成,由哈啰出行大数据实时平台资深开发刘博分享.通过一些简单的实际例子,从概念原理,到如何使用,再到功能的扩展,希望能够给计划使用或者已经使用的同学 ...
- flink CEP之规则解释
flink CEP表示复杂事件处理. CEP开发流程: 输入事件流的创建即DataStream pattern的定义即规则定义 通过pattern规则去事件流匹配 选取结果 pattern 1.规则定 ...
- Flink CEP编程
一.FlinkCEP介绍 FlinkCEP(Complex event processing for Flink) 是在Flink实现的复杂事件处理库. 它可以让你在无界流中检测出特定的数据,有机会掌 ...
- flink cep demo
Flink CEP 是 Flink 的复杂处理库.它允许用户快速检测无尽数据流中的复杂模式.不过 Flink CEP 仅可用于通过 DataStream API处理. 参考细说Flink CEP,我们 ...
最新文章
- refreshcontrol 实现下拉刷新的功能
- python数据模型的意义_Python 数据模型
- python开发安卓程序-python可以编写android程序吗?
- 红黑树和平衡二叉树的区别_一文搞懂红黑树
- win7屏保时间设置_论如何优雅的设置手机和电脑时间屏保!
- win32获取当前运行程序的内存地址_一个lock锁,就可以分出程序员对问题处置方式水平的高中低...
- 大二物竞金牌转北大计算机,物理竞赛保送去北大还是清华?
- clickhouse kafka引擎入门
- laravel composer 安装指定版本以及基本的配置
- 【Storm入门指南】第六章 真实示例
- CCAA 信息安全管理体系 考试大纲及重点题目记忆
- python确定样本量(总体比例)
- 程序员应该每年更新自己的简历
- 第四章、Zigbee模块的设置及组网
- 电脑技巧2——调出控制面板(桌面控制面板)
- Problem H. Curious (莫比乌斯反演)
- vue-element-admin/template+tornado(pyrestful)前后端分离框架实践(1)——自定义菜单和仪表盘
- 我的人格类型是:ESTP(外向,感觉,思维,知觉)
- Unity 灯光设置——灯光类型
- 快速入池淘宝猜你喜欢方法技巧
热门文章
- hiberfil.sys文件删除
- hosts文件位置以及如何修改hosts文件【Windows】【以github为例】
- 我叫mt4公会攻城战服务器维护中,公会攻城战也要讲战术《我叫MT4》攻城战策略解析...
- Android 手机实现网络嗅探发现周围设备(类似悟空遥控器)
- 18 个 JavaScript 入门技巧
- C++代码静态分析与优化(10)_rats
- 拆弹实验-phase_1
- Your brain expands and shrinks over time — these charts show how
- 《你的降落伞是什么颜色》书摘
- 一行 Python 能实现什么丧心病狂的功能?