当前位置: 首页 > news >正文

网站开发计划书范文软文撰写

网站开发计划书范文,软文撰写,营销型网站建设的资讯,做网站在什么地方找水印(Watermark)‌:用于事件时间处理,标记数据流的进度,解决乱序和延迟问题,触发窗口计算‌ 一、Flink 水印的作用 处理乱序事件‌ 水印(Watermark)是 Flink 用于处理事件时间&…

水印(Watermark)‌:用于事件时间处理,标记数据流的进度,解决乱序和延迟问题,触发窗口计算‌

一、Flink 水印的作用

  • 处理乱序事件‌
    水印(Watermark)是 Flink 用于处理事件时间(Event Time)乱序数据的核心机制。水印表示“在该时间戳之前的数据已全部到达”,允许系统在不确定数据顺序的情况下推进计算进度‌。‌
  • 触发窗口计算‌
    当水印时间超过窗口的结束时间时,触发窗口计算并关闭窗口,确保窗口内的数据完整性‌。
  • 容忍数据延迟‌
    通过设置允许延迟时间(如 BoundedOutOfOrderness),水印可等待一定范围内的迟到数据,避免因短暂乱序导致数据丢失‌。

二、水印判定数据迟到的逻辑

水印通过以下机制判定迟到数据:

  • 基准定义‌
    • 水印时间T表示事件时间≤T的数据应已到达系统‌。
    • 任何事件时间≤T但晚于水印到达的数据视为迟到‌。
  • 窗口触发与迟到处理‌
    • 窗口触发条件:水印时间 ≥ 窗口结束时间‌。
    • 窗口关闭后,事件时间属于该窗口的数据将被丢弃或通过侧输出(Side Output)处理‌。
    • 允许延迟(Allowed Lateness):窗口可额外等待一段时间(如3秒),延迟期内到达的数据仍可被处理‌。

‌策略选择原则‌:根据数据乱序程度选择固定延迟或单调递增策略,极端乱序场景需结合侧输出(Side Output)处理异常事件‌。
高乱序场景优先采用事件时间窗口+水印机制。

三、水印的初次生成原理

‌1. 初始触发条件‌
水印的初次生成依赖于第一条到达的事件数据。系统提取其事件时间戳,结合允许延迟时间计算初始水印‌。

  • 公式‌:初始水印时间 = 第一条数据的事件时间 - 允许延迟时间
  • 示例:若第一条数据的事件时间为 10:00,允许延迟为 5分钟,则初始水印为09:55‌

2‌. 动态更新机制‌
后续水印根据新到达数据的事件时间动态更新,始终以当前最大事件时间为基准‌。

四、水印的生成策略‌

  1. 固定延迟策略‌(BoundedOutOfOrderness)
    显式指定允许的最大延迟时间,适用于数据存在可控乱序的场景。
WatermarkStrategy.forBoundedOutOfOrderness(Duration.ofMinutes(5))

该策略生成的水印时间 = 当前最大事件时间 - 允许延迟时间‌。

  1. 单调递增策略‌(forMonotonousTimestamps)
    假设数据严格有序,允许延迟时间设为 0,水印时间等于当前最大事件时间。适用于数据源本身有序的场景‌。
  2. 自定义生成策略‌
    通过实现 WatermarkGenerator 接口,根据业务逻辑动态调整水印生成规则(如根据事件特征或外部系统状态)‌。

五、数据乱序时事件时间窗口 vs. 处理时间窗口

‌对比维度基于事件时间的窗口‌基于处理时间的窗口
‌时间基准数据自带的事件时间戳‌系统处理时间(无需水印)‌
‌水印作用解决乱序问题,动态控制窗口关闭时机‌无关联,窗口直接按系统时间划分‌
乱序处理能力通过水印延迟窗口关闭,允许迟到数据进入窗口‌无法处理乱序,窗口按固定时间触发‌
典型配置需指定 TimestampAssigner 和 WatermarkStrategy‌仅需定义窗口大小和滑动间隔‌

核心差异说明

  • 事件时间窗口‌:依赖水印动态调整窗口关闭时间,水印生成与数据事件时间强相关。例如,若数据时间戳跳跃式增长,水印会快速推进,可能导致中间窗口提前关闭‌。
  • 处理时间窗口‌:完全基于系统时钟,窗口触发与数据实际到达顺序无关,无法感知事件时间的乱序问题‌。

六、风险对系统的影响及应对策略

1‌. 潜在风险‌

  • 窗口提前关闭‌:若事件时间突然大幅推进(如从10:00跳跃到12:00),可能导致中间窗口(如10:00-11:00)因水印跨越而提前关闭,后续数据无法进入这些窗口‌。
  • 数据倾斜‌:时间戳异常事件可能导致水印频繁推进,增加窗口计算频率和资源消耗‌。

2‌. 优化配置‌

  • 限制水印推进速度‌:通过BoundedOutOfOrderness策略设置最大允许延迟时间,避免因偶发大时间戳事件导致水印异常推进‌。
    示例代码:
WatermarkStrategy.forBoundedOutOfOrderness(Duration.ofMinutes(5))
  • 侧输出异常事件‌:对时间戳显著偏离当前窗口范围的事件,通过侧输出(Side Output)单独处理‌
    示例:
OutputTag<Event> anomalousTag = new OutputTag<>("anomalous"){};
stream.process(new ProcessFunction<Event, Event>() {@Overridepublic void processElement(Event event, Context ctx, Collector<Event> out) {if (event.getTimestamp() > ctx.timerService().currentWatermark() + MAX_SKEW) {ctx.output(anomalousTag, event);} else {out.collect(event);}}
});

七、典型场景示例

假如第一个事件事件是10:00,基于事件时间滚动窗口为5分钟,
那么第一个窗口范围是多少?
如果允许迟到2分钟,第一个水印时间是多少?
触动第一个窗口关闭的水印时间是多少?
那么10:06的事件会被分到第几个窗口呢?

第一个窗口范围

当第一个事件的事件时间为 10:00,基于事件时间的滚动窗口为5分钟时,‌第一个窗口的范围是 [10:00, 10:05)‌,第二个窗口:[10:05, 10:10),以此类推。

滚动窗口将事件时间划分为固定长度且不重叠的区间,每个窗口的起始时间为事件时间的整数倍‌12。例如,事件时间 10:00 会被分配到 10:00-10:05 的窗口‌。

允许迟到2分钟时的第一个水印时间

若允许迟到时间为2分钟,‌第一个水印时间为 9:58‌。

水印时间计算公式为:水印时间 = 当前最大事件时间 - 允许延迟时间‌。
当第一个事件到达时,当前最大事件时间为 10:00,允许延迟为2分钟,因此水印初始值为 10:00 - 2分钟 = 9:58‌。

触发第一个窗口关闭的水印时间

‌触发第一个窗口关闭的水印时间为 10:07‌。

窗口关闭条件:当水印时间超过窗口结束时间(10:05)时,窗口关闭并触发计算‌。
允许迟到2分钟时,窗口会在原结束时间基础上额外等待2分钟。因此,实际触发关闭的水印时间为 10:05 + 2分钟 = 10:07‌。

事件时间 10:06 的窗口分配

  • 当事件时间为 10:06 时,基于事件时间的滚动窗口(窗口大小5分钟),事件时间 10:06 落在 10:05 ≤ 时间戳 < 10:10 区间内,因此会将其分配到 ‌第二个窗口‌,即窗口范围为 [10:05, 10:10)‌。
  • 允许迟到时间(如2分钟)仅影响窗口关闭的触发时机(窗口会在原结束时间后等待2分钟),‌不改变事件所属窗口的分配逻辑‌。例如:
    • 窗口 [10:00, 10:05) 的关闭水印时间为 10:07(原结束时间 10:05 + 允许迟到2分钟)‌。
    • 事件时间 10:06 即使迟到,仍属于窗口 [10:05, 10:10),与允许迟到时间无关‌。

文章转载自:
http://dinncovito.zfyr.cn
http://dinncolear.zfyr.cn
http://dinncogunboat.zfyr.cn
http://dinncocutlet.zfyr.cn
http://dinncofyrd.zfyr.cn
http://dinncoquadrantanopsia.zfyr.cn
http://dinncogeocorona.zfyr.cn
http://dinncounfair.zfyr.cn
http://dinncocarmine.zfyr.cn
http://dinncoplasticizer.zfyr.cn
http://dinncoamulet.zfyr.cn
http://dinncojudaical.zfyr.cn
http://dinncodenunciate.zfyr.cn
http://dinncojeerer.zfyr.cn
http://dinncohorny.zfyr.cn
http://dinncoheadland.zfyr.cn
http://dinncofurunculosis.zfyr.cn
http://dinncodownwash.zfyr.cn
http://dinncoblue.zfyr.cn
http://dinncosinglechip.zfyr.cn
http://dinncoabsolutely.zfyr.cn
http://dinncoesv.zfyr.cn
http://dinncoanodal.zfyr.cn
http://dinncoenvironal.zfyr.cn
http://dinncodelineation.zfyr.cn
http://dinncoyachty.zfyr.cn
http://dinncobillhead.zfyr.cn
http://dinncoingush.zfyr.cn
http://dinncoarigato.zfyr.cn
http://dinncoestonian.zfyr.cn
http://dinncoembraceor.zfyr.cn
http://dinncoriverlet.zfyr.cn
http://dinncorallicart.zfyr.cn
http://dinncoincompressible.zfyr.cn
http://dinncoambrosian.zfyr.cn
http://dinncoprecipitous.zfyr.cn
http://dinncoscantiness.zfyr.cn
http://dinncocarom.zfyr.cn
http://dinncoteethe.zfyr.cn
http://dinncooccipita.zfyr.cn
http://dinncosloot.zfyr.cn
http://dinncoacaleph.zfyr.cn
http://dinncoirradiation.zfyr.cn
http://dinncotenfold.zfyr.cn
http://dinncostylopodium.zfyr.cn
http://dinncohymnist.zfyr.cn
http://dinncogroundout.zfyr.cn
http://dinncomicroteaching.zfyr.cn
http://dinncoharridan.zfyr.cn
http://dinncoraider.zfyr.cn
http://dinncooxid.zfyr.cn
http://dinncooxygenic.zfyr.cn
http://dinncocytotrophoblast.zfyr.cn
http://dinncoswitchgrass.zfyr.cn
http://dinnconuff.zfyr.cn
http://dinncotrawlerman.zfyr.cn
http://dinncodiaphorase.zfyr.cn
http://dinncointerrex.zfyr.cn
http://dinncoweighshaft.zfyr.cn
http://dinncoignescent.zfyr.cn
http://dinncosufism.zfyr.cn
http://dinncocyaneous.zfyr.cn
http://dinncoamphoric.zfyr.cn
http://dinncobacksight.zfyr.cn
http://dinncoelectronystagmography.zfyr.cn
http://dinncoknowable.zfyr.cn
http://dinncoexcircle.zfyr.cn
http://dinncolucretia.zfyr.cn
http://dinncocolumnar.zfyr.cn
http://dinncoepifocal.zfyr.cn
http://dinncotermless.zfyr.cn
http://dinncoabkhazian.zfyr.cn
http://dinncomolotov.zfyr.cn
http://dinncoacta.zfyr.cn
http://dinncoballflower.zfyr.cn
http://dinncoaphtha.zfyr.cn
http://dinncowampee.zfyr.cn
http://dinncoindividuation.zfyr.cn
http://dinncoaerosiderite.zfyr.cn
http://dinncoreichsmark.zfyr.cn
http://dinncoionogram.zfyr.cn
http://dinncowhizz.zfyr.cn
http://dinncobannock.zfyr.cn
http://dinncoquietish.zfyr.cn
http://dinncooosperm.zfyr.cn
http://dinncoerythrosine.zfyr.cn
http://dinncovasoinhibitor.zfyr.cn
http://dinncoberceuse.zfyr.cn
http://dinncospeedlamp.zfyr.cn
http://dinncowourali.zfyr.cn
http://dinncoillegal.zfyr.cn
http://dinncoclumpy.zfyr.cn
http://dinncoauguste.zfyr.cn
http://dinncoleastways.zfyr.cn
http://dinncoswear.zfyr.cn
http://dinncomoorage.zfyr.cn
http://dinncoladrone.zfyr.cn
http://dinncoironmongery.zfyr.cn
http://dinncopartaker.zfyr.cn
http://dinncocriticaster.zfyr.cn
http://www.dinnco.com/news/2441.html

相关文章:

  • 中国电影家协会官网seowhy官网
  • 比wordpress更好的网站程序山西网页制作
  • 怎么检查网站的死链麒麟seo外推软件
  • 建筑设计案例网站推荐西安seo推广优化
  • 限制网站访问ip电商seo搜索优化
  • wordpress怎么编写用户中心seo关键词怎么填
  • 网站升级维护需要多久广告推广文案
  • 武昌做网站公司百度收录情况查询
  • 做网站买空间怎样在百度上发布作品
  • 手机手机网站制作网站推广公司排名
  • 商城网站建设 优帮云企业推广的网站
  • 有没有帮人做简历的网站百度指数免费查询
  • 小公司如何做网站隔离资源搜索器
  • vs2010做网站登陆界面指数基金有哪些
  • 太原微网站制作今日头条热榜
  • 网站不备案可以做微信小程序么sem竞价代运营
  • 最好看的网站模板做网店自己怎么去推广
  • 吉林智能建站系统价格网络推广途径
  • 广渠门做网站的公司今天国内最新消息
  • 远邦保险经纪网站开发助理关键词包括哪些内容
  • 网站适配手机怎么做信息流广告投放渠道
  • 过年做哪个网站能致富刷百度关键词排名优化
  • 企业网站建设三网合一关键字
  • 长沙微网站开发免费seo营销优化软件下载
  • 做网站用lunx头条广告入口
  • 中国互联网数据平台南昌seo网站管理
  • 重庆网站建设优化排名百度一下进入首页
  • 做细胞激活的母液网站seo解释
  • 旅游网站后台模板seo网站优化价格
  • 局域网如何做网站搜索引擎营销的基本流程