• flink理论干货笔记(3)


    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

  • 相关阅读:
    企业文件传输使用网盘好还是大文件传输软件好?
    python项目上线
    某米ax3000路由器组网解析
    通过数组模拟理解队列、环形队列
    号称Java圣经,Github上爆火的1058页JVM全栈小册到底有什么魅力
    基于STM32的实时操作系统FreeRTOS移植教程(手动移植)
    华为云Astro的前世今生:用7年时间革新低代码开发观念
    基于ssm的在线法律咨询平台的设计与实现
    【22-23春】AI作业10-经典卷积网络
    肝了五万字把SQL数据库从基础到高级所有命令写的明明白白,内容实在丰富,MySQL这一篇就够了
  • 原文地址:https://blog.csdn.net/fearlesslpp/article/details/126368754