开发者社区> 问答> 正文

Flink数据丢失

已解决

Flink数据丢失

展开
收起
阿里云服务支持 2022-12-16 10:15:38 207 0
2 条回答
写回答
取消 提交回答
  • 官方回答
    2022-12-16 10:21:12
    赞同 展开评论 打赏
  • 一名在读研究生程序猿,欢迎大家指教,我们共同进步!

    不多废话,直接上代码,并解释关键代码

    三重保证 watermark(水位线) | allowedLateness(最大迟到数据) | sideOutputLateData(侧输出流)

    val dataDstream: DataStream[SensorReading] = inputDStream
          .map( data => {
            val dataArray: Array[String] = data.split(",")
            SensorReading(dataArray(0), dataArray(1).toLong, dataArray(2).toDouble)
          })
          // .assignAscendingTimestamps( _.timestamp * 1000L ) // 理想状态下直接指定时间戳字段就可以了
          .assignTimestampsAndWatermarks(new BoundedOutOfOrdernessTimestampExtractor[SensorReading]
            // 给WaterMark的一个初始值延时时间
            (Time.milliseconds(1000)) {
            // 指定时间戳字段以秒为单位 * 1000
              override def extractTimestamp(element: SensorReading): Long = element.timestamp * 1000L
          })    
    val resultDStream: DataStream[SensorReading] = dataDstream
            .keyBy("id")
            .timeWindow( Time.seconds(5) )
            .allowedLateness( Time.minutes(1) )
            .sideOutputLateData( new OutputTag[SensorReading]("late") )
            .reduce( MyReduceFunc() )
    
        dataDstream.print("data")
        resultDStream.print("result")
        // 获取测输出流的late并打印
        resultDStream.getSideOutput( new OutputTag[SensorReading]("late") ).print("late")
    
        env.execute("eventTime test job")
    

    watermark ->assignTimestampsAndWatermarks: 给这个作业设置水位线,这里设置水位线的方法是可以自己在代码中按自己的需求做一个水位线。 大多情况下可以直接按当前系统时间-10 秒

    allowedLateness -> allowedLateness: 根据自己需求定义允许延迟时间

    sideOutputLateData ->sideOutputLateData: 将 晚于 窗口+allowedLateness 的数据保存下来。

    resultDStream.getSideOutput(new OutputTagSensorReading) 这个结果就是。

    2022-12-16 10:54:34
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
作为全球云计算的领先者,阿里云为全球230万企业提供着云计算服务,服务范围覆盖200多个国家和地区。我们致力于为企业、政府等组织机构提供安全可靠的云计算服务,给用户带来极速愉悦的服务体验。
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载