ApacheFlink如何在从ApacheKafka摄取数据时生成水印?
创始人
2024-09-05 19:30:28
0次

在Apache Flink中,可以通过在Kafka消费者上为流添加timestamp和watermark提供时间戳和水印。在此之前,需要将Kafka消费者配置为以EventTime模式启动。Flink基于该配置生成CloseEventWatermarkGenerator和PeriodicWatermarkGenerator对象,可以使用这些对象生成水印。以下是示例代码:

//指定Kafka Consumer启动时间为EventTime模式 Properties consumerProperties = new Properties(); consumerProperties.setProperty("bootstrap.servers", "localhost:9092"); consumerProperties.setProperty("group.id", "myGroup"); consumerProperties.setProperty("flink.partition-discovery.interval-millis", "5000"); FlinkKafkaConsumer myConsumer = new FlinkKafkaConsumer<>( "myTopic", new SimpleStringSchema(), consumerProperties ); myConsumer.assignTimestampsAndWatermarks(new CustomWatermarkEmitter());

//自定义WatermarkEmitter类以生成水印 public class CustomWatermarkEmitter implements AssignerWithPeriodicWatermarks {

private long currentTimestamp = Long.MIN_VALUE;

@Override public long extractTimestamp(String element, long previousElementTimestamp) { //从事件中提取时间戳 return getTimestampFromEvent(element); }

@Override public Watermark getCurrentWatermark() { //生成水印 long maxOutOfOrderness = 3500; //最大水印滞后时间 return new Watermark(currentTimestamp == Long.MIN_VALUE ? Long.MIN_VALUE : currentTimestamp - maxOutOfOrderness); } }

代码中,CustomWatermarkEmitter类是为了提取时间戳和生成水印而自定义的。extractTimestamp()方法从消费的Kafka消息中提取时间戳。getCurrentWatermark()方法计算最大水印滞后时间并生成水印。可以调整maxOutOfOrderness来改变水印的生成方式。最后,在使用Kafka消费者数据流时,可以将CustomWatermarkEmitter对象作为参数传递给assignTimestampsAndWatermarks()方法。

相关内容

热门资讯

技术分享!!智星德州插件最新版... 一款 AI 游戏攻略黑科技工具上线,查攻略效率直接开挂。它整合版本更新、装备搭配、BOSS 打法、牌...
一分钟揭秘!wpk透视辅助下载... 很多人使用云端 AI 时,都担心wpk透视辅助下载、内部资料上传带来隐私风险。这款本地运行的 AI ...
玩家亲测!wepoker私人局... wepoker私人局怎么玩AI 游戏攻略黑科技上线本地缓存功能,离线查阅能力开挂。提前下载对应游戏攻...
分辨真假!wepoker俱乐部... 您好:wepoker俱乐部辅助这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多...
1.9分钟了解!wpk德州局怎... 您好:wpk德州局怎么透视这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户...
分享个大家!wpk透视工作室,... AI 黑科技赛道又上新,这款智能处理工具堪称效率开挂,专门面向短视频创作者打造。它打通脚本撰写、AI...
攻略讲解!wpk透视辅助方法,... 一款 AI 游戏攻略黑科技工具上线,查攻略效率直接开挂。它整合版本更新、装备搭配、BOSS 打法、牌...
技术分享!wepoker俱乐部... 您好:wepoker俱乐部辅助这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多...
玩家必备教程!!德扑之星透视辅... 玩家必备教程!!德扑之星透视辅助插件,WPK有没有辅助插件神器(素来是真的有透视)AI 智能体黑科技...
科技通报!wepoker代打辅... 『标题:当前标题』主打赛后复盘的 AI 游戏攻略黑科技走红,对局总结能力开挂。上传对局回放或者战绩截...