Flink实现固定时长或消息条数的触发器

笔者在日常工作中遇到了一个问题,在做实时数仓调用第三方Thrift服务来补充维度信息时,第三方提供的服务可以同时传入一个或者多个查询条件,如果传入多个查询条件,则会返回多条结果。 在上述场景下,有如下几种调用第三方服务的方法。

  1. Flink异步调用Thrift服务,每次传入一个参数。

  2. Flink异步调用Thrift服务,设置固定时间的时间窗口,当窗口结束时,将多个查询条件组织到一起并将请求发送出去。

  3. Flink异步调用Thirft服务,添加可以实现固定时长或者消息条数的触发器。

上面这三种方案中:

方案1 由于未使用窗口与触发器,虽然使用了异步调用,但是由于每次只发送含一个参数的请求,针对于每条输入数据,都要发送一次,较为耗时。

方案2 由于需要等待窗口结束后才会发送请求,会无形给下游造成一定的延迟。

方案3 中当固定窗口结束或者窗口内数据条数达到设定长度后都会触发后续的数据处理。

综合看,方案3更加适合上述场景。

Flink 自带的触发器如下:

触发器名称

触发条件

CountTrigger

指定条数触发

ContinuousEventTimeTrigger

指定事件时间触发<

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flink的运行时长可以通过以下几个概念来定义: 1. Job的运行时长Flink的Job是指你提交给Flink执行的任务。Job的运行时长是指从Job开始执行到Job完成的时间间隔。在Flink中,可以通过Job的启动时间和结束时间来计算运行时长。 2. Task的运行时长Flink将Job划分为多个Task来执行。Task是Flink并行计算的基本单元。Task的运行时长是指从Task开始执行到Task完成的时间间隔。在Flink中,可以通过Task的启动时间和结束时间来计算运行时长。 3. 窗口的运行时长Flink中的窗口(Window)是用于处理流数据的一种时间段。窗口的运行时长是指窗口开始到窗口结束的时间间隔。在Flink中,可以通过窗口的开始时间和结束时间来计算窗口的运行时长。 要获取Flink的运行时长,可以通过以下方式进行: 1. 使用Flink的Metrics系统:Flink内置了Metrics功能,可以用于收集和展示各种指标数据。你可以配置Metrics系统,并使用相关指标来获取Job、Task或窗口的运行时长。 2. 使用Flink的REST API:Flink提供了REST API接口,可以通过API查询作业的详细信息,包括作业的状态、启动时间、结束时间等。你可以通过查询API获取作业的运行时长信息。 3. 监控工具:你可以使用监控工具来监视Flink集群的运行时长。常用的监控工具包括Prometheus、Grafana、Datadog等。这些工具可以通过Flink的Metrics接口获取指标数据,并提供可视化的监控界面。 总结来说,Flink的运行时长可以通过Metrics系统、REST API或监控工具来获取。具体实施方法可能会因为使用的工具和版本而有所差异,需根据实际情况进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值