DataGen Connector本地造数神器(不用 Kafka 也能把 Pipeline 跑起来)

1、它到底做了什么

  • Source 并行运行:有多少个 source 并发子任务,就把Long的序列切成多少段(sub-sequence)
  • 你提供一个GeneratorFunction<Long, OUT>:把输入的 index(Long)映射成任意事件类型
  • 每个 subtask 内部有序,但全局顺序取决于并行度(parallelism)

一句话:Flink 负责发 index,你负责把 index 变成事件。

2、最小可跑示例:生成 0~999 的字符串

importorg.apache.flink.api.common.eventtime.WatermarkStrategy;importorg.apache.flink.api.common.functions.GeneratorFunction;importorg.apache.flink.api.common.typeinfo.Types;importorg.apache.flink.connector.datagen.source.DataGeneratorSource;importorg.apache.flink.streaming.api.datastream.DataStreamSource;importorg.apache.flink.streaming.api.environment.StreamExecutionEnvironment;publicclassDataGenDemo{publicstaticvoidmain(String[]args)throwsException{StreamExecutionEnvironmentenv=StreamExecutionEnvironment.getExecutionEnvironment();GeneratorFunction<Long,String>generator=index->"Number: "+index;longnumberOfRecords=1000;DataGeneratorSource<String>source=newDataGeneratorSource<>(generator,numberOfRecords,Types.STRING);DataStreamSource<String>stream=env.fromSource(source,WatermarkStrategy.noWatermarks(),"Generator Source");stream.print();env.execute("datagen-demo");}}

要点:

  • 并行度为 1 时输出是严格"Number: 0""Number: 999"顺序
  • 并行度 > 1 时:每个 subtask 内部仍然按序,但不同 subtask 的结果交织输出

3、限速:控制总吞吐(全局每秒不超过 N 条)

importorg.apache.flink.api.common.functions.GeneratorFunction;importorg.apache.flink.api.common.typeinfo.Types;importorg.apache.flink.connector.datagen.source.DataGeneratorSource;importorg.apache.flink.connector.datagen.source.RateLimiterStrategy;GeneratorFunction<Long,String>generator=index->"Number: "+index;DataGeneratorSource<String>source=newDataGeneratorSource<>(generator,Long.MAX_VALUE,RateLimiterStrategy.perSecond(100),// 全部 source subtasks 加起来 <= 100 条/sTypes.STRING);

适用场景:

  • 你想模拟“上游流量”但又不想把本机打爆
  • 做算子性能对比、Backpressure 观察、checkpoint 行为观察

4、有界/无界:它“永远是 bounded”,但可以“看起来无界”

  • 语义上永远是 bounded(理论上会结束)
  • numberOfRecords = Long.MAX_VALUE基本等同“不会结束”(实践上像 unbounded)

建议:

  • 要跑有限数据:考虑 BATCH mode,更贴近离线回放
  • 要模拟持续输入:用Long.MAX_VALUE+ rate limit

5、容错语义:at-least-once / end-to-end exactly-once 能不能保证?

可以,但有个硬条件:

  • GeneratorFunction必须对输入 index 完全确定性
    也就是:同一个 index 永远生成同样的输出。

反例(会破坏确定性):

  • random()System.currentTimeMillis()、读外部可变配置、读网络请求结果

正确做法:

  • 用 index 推导数据(例如 hash(index) 生成用户、金额、状态)
  • 或者用固定 seed 的伪随机:new Random(index)(每个 index 固定)

6、Watermark:也可以在 Source 侧发“确定性水位线”

默认例子用noWatermarks(),但你完全可以:

  • 在生成事件里带 eventTime
  • 配合自定义WatermarkStrategy生成 deterministic watermarks
    适合做 event-time 窗口、乱序、迟到数据的测试演示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1168007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“棋圣”聂卫平去世 享年74岁

九派新闻01-15 07:58:06记者从中国围棋协会获悉&#xff0c;中国围棋协会名誉主席、“棋圣”聂卫平九段昨晚在北京病逝&#xff0c;享年74岁。聂卫平是上世纪中国围棋振兴的关键人物&#xff0c;在八十年代的中日围棋擂台赛中&#xff0c;他作为主将力挽狂澜&#xff0c;连胜多…

Tailwind CSS 4.1:终于把“文字阴影”端上来了——更狠的是,它把配置文件也“踢”出去了

Tailwind CSS 4.1 这次更新&#xff0c;表面看是补齐了一堆大家喊了很多年的视觉工具&#xff08;比如文字阴影、遮罩、彩色投影&#xff09;&#xff0c;但真正动静更大的&#xff0c;其实是它悄悄改变了“你怎么配置 Tailwind”这件事。它把 Tailwind 又往前推了一步&#xf…

Dynamic Kafka Source不重启也能“动态切换集群/主题”

1. 核心概念&#xff1a;从“物理订阅”升级为“逻辑订阅” Dynamic Kafka Source 不是直接让你写 topics ["a", "b"]&#xff0c;而是让你订阅一个或多个 stream id&#xff1a; stream id&#xff1a;逻辑流名称&#xff0c;比如 "input-stream&…

面试官:谈谈 Redis 的过期策略?

在线 Java 面试刷题&#xff08;持续更新&#xff09;&#xff1a;https://www.quanxiaoha.com/java-interview面试考察点面试官提出这个问题&#xff0c;通常意在考察以下几个层面&#xff1a;对缓存数据生命周期管理的理解&#xff1a;你是否清楚 Redis 作为缓存或数据库&…

载入史册的哈军工计算机“集结号”

徐祖哲计算机六十年2026年1月15日 08:35 北京 中国计算机事业70年历程&#xff0c;在发展早期的重要节点留下了具有历史意义的多个集体合影&#xff1a;1955年8/9月&#xff0c;中科院物理所核科学家与计算机科学家合影&#xff1b;1958年8月1日&#xff0c;103电子计算机调试成…

2026黄金戒指怎么选?推荐这7款:款式多样,佩戴舒适!

"2026年黄金戒指怎么选&#xff1f;从材质、款式到舒适度&#xff0c;精选7大品牌推荐。足金999保值又时尚&#xff0c;活口设计贴合手指&#xff0c;简约百搭或精致雕花&#xff0c;周六福是正品吗总有一款让你爱不释手。"话说回来&#xff0c;想在2026年挑个合适的…

你以为日期选择器很简单?我刚进团队就被它狠狠干了一周

我最近加入了一个新团队。那种“成熟到可怕”的 Design System 团队&#xff1a;Figma 命名规矩、代码语义清晰、会议都有议程——你甚至能在日历里看到“讨论结束时间”。 但我第一次见识到他们的“当下大麻烦”&#xff0c;不是在什么战情室&#xff0c;也不是在发布事故复盘…

美防长访问“星舰基地”透露哪些信息

学习“马斯克模式”&#xff0c;加速AI军事化&#xff0c;美防长访问“星舰基地”透露多重信息环球网【环球时报特约记者 晨阳 环球时报记者 刘扬】美国总统特朗普近日提议将2027年美国国防开支提高到创纪录的1.5万亿美元&#xff0c;同时要求阻止国防承包商派息及进行股票回购…

几个硬件与人机环境系统智能的问题

问题1&#xff0e;国外一些投资机构在投资AI硬件产品时&#xff0c;会从A硬件的本质出发&#xfe63;-AI硬件应该是对人类感知和行为的无缝增强&#xff0c;成为我们身体和认知的自然部分&#xff0c;在使用时"消失"&#xff0c;在需要时"显现"&#xff0c…

吐血推荐10个AI论文写作软件,专科生搞定毕业论文+格式规范!

吐血推荐10个AI论文写作软件&#xff0c;专科生搞定毕业论文格式规范&#xff01; AI工具正在改变论文写作的未来 随着人工智能技术的不断进步&#xff0c;越来越多的学生开始借助AI工具来完成毕业论文的撰写。对于专科生而言&#xff0c;论文写作不仅是一项学术任务&#xff0…

浪潮信息和Datawhale成功举办「AI+X」高校人才培养研讨会!

Datawhale高校 线下&#xff1a;AIX高校人才培养研讨会1月8日&#xff0c;“AIX高校人才培养研讨会”在南京举办。面对人工智能全面融入传统学科的现实挑战&#xff0c;来自东南大学、南京大学、中国矿业大学、江南大学、浪潮信息、Datawhale开源学习社区等多所高校教育专家、行…

机器人学习!(二)ROS-模型优化与加速(TensorRT)(4)2026/01/15

TensorRT只适用NVIDIA&#xff1a;TensorRT是NVIDIA开发的闭源SDK&#xff0c;其核心优化技术深度依赖于NVIDIA GPU的专属硬件架构&#xff08;如Tensor Core、SM单元&#xff09;和软件生态&#xff08;如CUDA、cuDNN&#xff09;。替换方案&#xff1a;硬件平台推荐技术栈关键…

Spring Boot 钩子全集实战(六):SpringApplicationRunListener.contextPrepared()详解

Spring Boot 钩子全集实战&#xff08;六&#xff09;&#xff1a;SpringApplicationRunListener.contextPrepared() 详解 在上一篇中&#xff0c;我们深入剖析了 ApplicationContextInitializer 这一容器初始化前的核心扩展点&#xff0c;实现了容器安全加固、Bean 定义预处理…

技术日报|Claude Code超级能力登顶,今日狂揽2000+星标

&#x1f31f; TrendForge 每日精选 - 发现最具潜力的开源项目 &#x1f4ca; 今日共收录 10 个热门项目&#xff0c;涵盖 50 种编程语言&#x1f310; 智能中文翻译版 - 项目描述已自动翻译&#xff0c;便于理解&#x1f3c6; 今日最热项目 Top 10 &#x1f947; obra/superpo…

RyTuneX(Win10/11系统优化工具)

RyTuneX是一款专为Windows 10和Windows 11系统打造的系统优化工具&#xff0c;基于WinUI 3框架构建&#xff0c;旨在帮助用户优化系统资源&#xff0c;提升设备性能&#xff0c;同时增强隐私保护。 软件功能 系统优化&#xff1a;支持一键性能调整&#xff0c;可禁用Superfetc…

HoRain云--掌握jQuery事件处理全攻略

&#x1f3ac; HoRain 云小助手&#xff1a;个人主页 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站&#xff0c;性价比超高&#xff0c;大内存超划算&#xff01;忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …

普洛斯集团任命赵明琪为普洛斯中国首席执行官

、美通社消息&#xff1a;普洛斯集团(GLP Pte Ltd)宣布任命赵明琪为普洛斯中国首席执行官。赵明琪将向全球首席执行官梅志明汇报&#xff0c;她领导的中国管理团队都有深厚行业积累&#xff0c;以保证业务的连续性&#xff0c;并共同推动未来的成功。普洛斯中国前常务副董事长诸…

从脚本到服务:5 分钟通过 Botasaurus 将你的爬虫逻辑转化为 Web API

很多开发者对爬虫的认知还停留在“写一个 .py 脚本&#xff0c;跑完出个 CSV”的阶段。但在真实的业务场景中&#xff0c;爬虫往往需要作为微服务存在&#xff1a;通过 HTTP 调用、支持异步任务队列、拥有可视化监控后台。通常&#xff0c;这意味着你需要额外配置 FastAPI/Flas…

vue基于Python软件整合网站 flask django Pycharm

目录 这里写目录标题目录项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路&#xff01;&#xff01;需要的小伙伴可以发链接或者截图给我 项目介绍 …

HoRain云--jQuery淡入淡出特效全解析

&#x1f3ac; HoRain 云小助手&#xff1a;个人主页 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站&#xff0c;性价比超高&#xff0c;大内存超划算&#xff01;忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …