flink理论干货笔记(3)

本文详细介绍了Flink的CEP(Complex Event Processing)模式匹配,包括oneOrMore、times、greedy、optional等模式,以及next、followedBy、notNext等结合模式,同时讲解了within时间约束和连续性的定义。此外,还提到了PatternStream的处理、选择函数以及超时处理功能,以及Flink Dataset的操作如flatMap、groupBy、sum等。
摘要由CSDN通过智能技术生成

201. pattern.oneOrMore()用于指定循环模式,比如上述b+,而pattern.times()可指定特定事件的出现次数,还可以指定最小和最大出现次数。pattern.greedy()使循环模式变得贪婪,即循环尽可能多次。pattern.optional()用于创建所有模式。pattern.timesOrMore(2)表示2次或者更多次

202. pattern的单模式api还有or、until等

203. 结合模式有严格连续性、轻松连续性、非确定性轻松连续性。具体算子有next、followedBy、followedByAny,以及notNext、notFollowedBy(无法结束)

204. pattern.within可定义模式在特定时间,如10秒内发生。注意,模式序列只能有一个时间约束

205. 严格连续用consecutive(),非确定性宽松连续用allowCombinations(),而默认的轻松连续用一般的oneOrMore()和times()等循环模式 

206. continuous()是严格连续,通常与oneOrMore以及times一起使用

207. 要控制分配事件的匹配数,可以指定跳过策略(AfterMatchSkipStrategy),具体有no_skip、skip_past_last_event、skip_to_first、skip_to_last 

208. 模式序列运行事件流是PatternStream,它通过CEP.pattern创建,参数是输入流、模式、比较器。比较器用于对具有相同时间戳的事件进行排序。

209. PatternStream可通过select或flatSelect进行选择。前者需要实现PatternSelectFunction接口。后者需要实现PatternFlatSelectFunction接口。 

210. 为了处理超时部分模式,提供了PatternTimeoutFunction和PatternFlatTimeoutFunction

211. sideOutputLateData方法用于处理迟到的数据 

212. flink dataset可通过env.fromElements创建,然后就能执行flatMap、groupBy、sum等算子。具体还有mapPartition、map、filter、reduce、reduceGroup、aggregate、and、andMin、distinct、join、where、equalTo、leftOuterJoin、coGroup、with、cross、union、reblance、partitionByHash、partitionByRange、partitionCustom、sortPartition、first、project、minBy、maxBy等 

213. env基于文件的创建方式有:readTextFile、readTextFileWithValue、readCsvFile、readFileOfPrimitives、readSequenceFile

214. env基于集合的创建方式有:fromCollection、fromElements、fromParallelCollection、generateSequence

215. 通用的创建方式有: readFile、createInput

216. flink dataset的输出方式有: writeAsText、writeAsFormattedText、writeAsCsv、print、write、output等

217. flink有两种类型的迭代:BulkIteration和DeltaIteration。前者是批量迭代,通过DataSet的iterate方法得到IterativeDataSet,使用closeWith来终止迭代。后者利用某些算法在每次迭代中不会更改解决方案的每个数据点,维护状态并增量更新。使用iterateDelta创建DeltaIteration对象,以及用getWorkset和getSolutionSet创建工作集和解决方案集。 

218. kmeans算法会用到BulkIteration来聚类未标记的点

219. 语义注释允许系统推断在多个算子操作中重用排序顺序或分区,可以加速执行,可用于提供函数行为的flink提示。它能使程序免于不必要的数据混洗或排序,提高了程序性能。宁愿没有,也不要提供错误的语义注释。 

220. 目前的语义注释有:转发字段注释、非转发字段、阅读字段。转发可以通过函数类注释或算子参数来声明,比如@ForwardedFields、@ForwardedFieldsFirst、@ForwardedFieldsSecond,以及withFor

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值