• 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

  • 相关阅读:
    负载均衡有哪些?
    Vue+java 实现时间段的搜索
    AndroidStudio jni C++与Java互相调用
    【已解决】EOFError: Ran out of input
    SSM整合redis及redis的注解式开发和解决Redis缓存问题
    【wsl】——windows wsl常用操作
    uniapp在不需要后端数据的情况下 怎么记录用户进一次记录一次
    测试人员常用借口,你中标了吗?
    关于iOS:如何使用SwiftUI调整图片大小?
    产品外观设计成本的组成,你知道吗?
  • 原文地址:https://blog.csdn.net/fearlesslpp/article/details/126368754