美文网首页Flink专题
Streaming 预定义的时间戳提取器/水印发射器

Streaming 预定义的时间戳提取器/水印发射器

作者: 尼小摩 | 来源:发表于2019-02-02 15:17 被阅读61次

时间戳和水印处理所述,Flink 提供了抽象概念来允许程序指定自己的timestampwatermark发射器。更具体地说,用户可以根据自己的需要来实现AssignerWithPeriodicWatermarksAssignerWithPunctuatedWatermarks中的接口来指定自己的timestamp和发射自己的watermark

为了更进一步的简化这些任务的编程工作,Flink还提供了一些预实现的timestamp分配器,这个章节提供了这些预实现timestamp分配器的列表。除了它们拆箱即用的功能外,它们的实现也可作为自定义实现的例子。

递增时间戳分配器(Assigners with ascending timestamps)

对于周期性水印生成,最简单的特殊情况是时间戳被给定源任务按递增顺序产生。在这种情况下,当前时间戳始终可以作为水印,因为没有更早的时间戳。

注意,每个并行数据源任务的timestamp是递增的。例如:如果指定了一个Kafka分区被一个并行数据源实例读取,那么每个Kafka分区的timestamp是递增的。Flink的watermark合并机制将会在并行数据流shuffled、unioned、connected 或者 merged的时候产生正确的水印。

val stream: DataStream[MyEvent] = ...

val withTimestampsAndWatermarks = stream.assignAscendingTimestamps( _.getCreationTime )

允许固定数量延迟的分配器(Assigners allowing a fixed amount of lateness)

周期性水印生成的另一个例子是当水印滞后的最大时间戳在数据流中被认为是一个固定的时间。在这种情况下数据流中遇到的最大延迟是已知的,例如,创建一个带时间戳的并在一个固定的时间内传播的元素的测试源。对于这些情况,Flink 提供了BoundedOutOfOrdernessTimestampExtractormaxOutOfOrderness作为参数,这个maxOutOfOrderness是指在窗口计算的最后,一个元素允许的最大延迟时间。延迟与t-t_w的结果相对应,这里t指的是元素的timestamp,而t_w指的是上个水印。如果延迟>0 那么这个元素被认为是延迟的,默认情况下,这个元素不计入窗口的最终计算中。请参考允许时延Allowed Lateness来获取更多关于延迟元素如何工作的信息。

val stream: DataStream[MyEvent] = ...

val withTimestampsAndWatermarks = stream.assignTimestampsAndWatermarks(
     new BoundedOutOfOrdernessTimestampExtractor[MyEvent](Time.seconds(10))( _.getCreationTime ))

相关文章

  • Streaming 预定义的时间戳提取器/水印发射器

    如时间戳和水印处理所述,Flink 提供了抽象概念来允许程序指定自己的timestamp和watermark发射器...

  • 使用OPenGL ES实现粒子发射器

    粒子发射器 粒子发射器实现思路粒子发射器 使用粒子发射器 示例代码 设置Context 加载纹理 设置渲染格式 设...

  • 粒子系统

    粒子系统:资产 发射器 Actor:在场景中使用粒子系统 Cascade(级联):编辑粒子系统 发射器:多个发射器...

  • 成为孩子的助推剂

    新时代的智慧父母要让自己成为孩子的助推器。 火箭助推器是一种用于导弹、火箭等的发射时使其迅速飞离发射器并加速达到预...

  • iOS动画(3):粒子动画

    粒子动画是由CAEmitterLayer(发射器)和CAEmitterCell(粒子)结合实现的,需要发射器发射粒...

  • iOS动画开发 粒子效果 CAEmitterLayer

    ios的粒子效果主要有两部分组成 发射器:发射器主要设置粒子发射的宏观属性 粒子单元:设置相应的粒子属性发射器是基...

  • js函数条件

    函数定义与执行 变量与函数预解析 提取行间事件 匿名函数 函数传参 作业

  • 粒子引擎使用 ——

    粒子发射器 粒子

  • iOS-粒子发射器

    QQ和微信里面有个红包雨,苹果提供了一个非常方便的方法来实现:粒子发射器。 粒子发射器包括两个部分:发射器(CAE...

  • 小结-Spark-Spark Streaming入门

    定义及工作原理 Spark Streaming定义,官网翻译如下 Spark Streaming是核心Spark ...

网友评论

    本文标题:Streaming 预定义的时间戳提取器/水印发射器

    本文链接:https://www.haomeiwen.com/subject/xuvssqtx.html