使用Flink做流数据处理时,除了主流数据输出,还自定义侧流输出即旁路输出,以实现灵活的数据拆分。

定义旁路输出标签

首先需要定义一个OutputTag,代码如下:

// 这需要是一个匿名的内部类,以便我们分析类型
OutputTag<String> outputTag = new OutputTag<String>("side-output") {};

在ProcessFunction使用Context调用

可以通过以下Function中,将outputTag作为参数传递到Context中

  • ProcessFunction
  • KeyedProcessFunction
  • CoProcessFunction
  • KeyedCoProcessFunction
  • ProcessWindowFunction
  • ProcessAllWindowFunction

代码示例:

DataStream<Integer> input = ...;final OutputTag<String> outputTag = new OutputTag<String>("side-output"){};SingleOutputStreamOperator<Integer> mainDataStream = input.process(new ProcessFunction<Integer, Integer>() {@Overridepublic void processElement(Integer value,Context ctx,Collector<Integer> out) throws Exception {// 发送数据到主要的输出out.collect(value);// 发送数据到旁路输出ctx.output(outputTag, "sideout-" + String.valueOf(value));}});

在 DataStream 运算结果上使用 getSideOutput(OutputTag) 方法获取旁路输出流:

final OutputTag<String> outputTag = new OutputTag<String>("side-output"){};
SingleOutputStreamOperator<Integer> mainDataStream = ...;
// 获取到侧流输出DataStream,输出结果类型要与outputTag 定义的一致
DataStream<String> sideOutputStream = mainDataStream.getSideOutput(outputTag);

本文中只列出了Java代码的实现;
Flink官网还有Scala/python代码实现

参考链接:https://nightlies.apache.org/flink/flink-docs-release-1.16/zh/docs/dev/datastream/side_output/

Flink流计算处理-旁路输出相关推荐

  1. Flink流计算WordCount代码示例

    代码 package com.zxl.flinkimport org.apache.flink.streaming.api.scala.StreamExecutionEnvironment/*** f ...

  2. 基于 Flink 流计算实现的股票交易实时资产应用

    01 背景 本次赛题思路源自于真实工作场景的一个线上项目,该项目在经过一系列优化后已稳定上线,在该项目开发的过程中数据平台组和技术负责人提供了许多资源和指导意见,而项目的结果也让我意识到了流计算在实际 ...

  3. Flink流计算编程--在WindowedStream中体会EventTime与ProcessingTime

    一.Flink流处理简介 Flink流处理的API叫做DataStream,可以在保证Exactly-Once的前提下提供高吞吐.低延时的实时流处理. 二.Flink中的Time模型 Flink中提供 ...

  4. 7、Flink 流计算处理和批处理平台

    一.Flink 基本概念 Flink 是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎.它的最大亮点是流处理,是业界最顶级的开源流处理引擎.Flink ...

  5. Flink流计算可视化平台

    github 地址 https://github.com/zhp8341/flink-streaming-platform-web (建议) 国内 gitee 地址 https://gitee.com ...

  6. Flink流计算引擎

    伴随着海量增长的数据,数字化时代的未来感扑面而至.不论是结绳记事的小数据时代,还是我们正在经历的大数据时代,计算的边界正在被无限拓宽,而数据的价值再也难以被计算.时下,谈及大数据,不得不提到热门的下一 ...

  7. flink流计算随笔(6)

    ​生成,编译模板工程 MacBook-Air:SocketWindowWordCount myhaspl$ bash <(curl https://flink.apache.org/q/sbt- ...

  8. 【Flink】Flink 流计算 容错 source节点进行数据容错

    1.概述 本博客是视频的笔记:Apache Flink 知其然,知其所以然(原理&实战) 就是当流任务失败的时候,如何让flink从数据源上次消费的位置开始消费. 2.案例 2.1 没有che ...

  9. 阿里云基于Flink的流计算平台

    01 流计算开发运维痛点 1.1 任务需要底层API开发 1.2 任务逻辑调试 1.3 上下游数据预览 1.4 任务指标曲线 1.5 性能调优 1.6 监控报警 02 基于Flink的流计算平台 2. ...

最新文章

  1. [mmu/cache]-cache的一些基本概念介绍
  2. Spring Boot 之 elasticsearch
  3. el-tooltip位置不灵活_美团研究院:超五成生活服务业商户有灵活用工需求
  4. C++:数字字符的出现次数
  5. Python调试方法
  6. 需要学习的技术知识备忘录
  7. Java 开发必备,EasyExcel 操作详解!
  8. Linux电源管理(3)-Generic PM之reboot过程【转】
  9. 基于Python的DELMIA二次开发(三):人体建模
  10. OA系统中的任务管理
  11. cmd检查java_如何通过cmd查看java环境
  12. 鼠标控制c语言扫雷程序,【源码项目】C语言/C+开发,打造一个小项目扫雷小游戏!...
  13. 百度云重置服务器密码,单台或多台腾讯云服务器 CVM 重置实例密码教程
  14. 如何在桥接模式下使用Eero保持路由器的高级功能
  15. android 仿微信群聊头像 合成图片
  16. protobuf根据有关联的.proto文件进行编译
  17. 北京非一卡通公司异型卡遭禁
  18. 性能分析工具Arthas
  19. 自学量化投资之旅-计算股票的复权价
  20. 存储技术与智能存储组件

热门文章

  1. 理解电感的Isat Irms,饱和电流,额定电流
  2. 用matlab和labview来制作一个5*5的随机矩阵图形
  3. 博士申请 | 美国普渡大学张如琪老师组招收机器学习方向博士/硕士/实习生
  4. 钢铁侠也要换成女版的了???
  5. 大数据从何学起?大数据脑图+学习路线清晰的告诉你!
  6. STM32L151低功耗项目笔记(CO传感器TGS5042)
  7. 研究生科研论文必用软件——我的一套组合
  8. 微信小程序_快递查询
  9. 易语言5.6 精简破解版[Ctoo]
  10. 2021年危险化学品生产单位安全生产管理人员考试内容及危险化学品生产单位安全生产管理人员考试技巧