72、Flink 的 DataGen 连接器详解

DataGen 连接器
1.概述

DataGen 连接器提供了一个 Source 实现,允许为 Flink 生成输入数据,DataGen 连接器是内置的,不需要其他依赖项。

2.使用

DataGeneratorSource 并行生成 N 个数据点,以下代码将生成 ["Number:0"、"Number:2"、...、"Numeric:999"] 记录的序列。

复制代码
GeneratorFunction<Long, String> generatorFunction = index -> "Number: " + index;
long numberOfRecords = 1000;

DataGeneratorSource<String> source =
        new DataGeneratorSource<>(generatorFunction, numberOfRecords, Types.STRING);

DataStreamSource<String> stream =
        env.fromSource(source,
        WatermarkStrategy.noWatermarks(),
        "Generator Source");

元素的顺序取决于并行度,每个子序列将按顺序生成;如果并行度为一,则将按照从"Number:0"到"Number:999"的顺序生成一个序列。

3.生成速率

DataGeneratorSource 内置了对速率的限制,以下代码将以不超过每秒100个事件的总源速率(跨所有源子任务)生成一个数据流。

复制代码
GeneratorFunction<Long, Long> generatorFunction = index -> index;
double recordsPerSecond = 100;

DataGeneratorSource<String> source =
        new DataGeneratorSource<>(
             generatorFunction,
             Long.MAX_VALUE,
             RateLimiterStrategy.perSecond(recordsPerSecond),
             Types.STRING);

其他速率限制策略,如限制每个检查点发出的记录数,可以在 RateLimiterStrategy 中找到。

4.有界性

DataGeneratorSource 是有界的,可以将记录的数量设置为 Long.MAX_VALUE 来模拟无界流。

5.注意

在 GeneratorFunction 的输出相对于其输入具有确定性的条件下,DataGeneratorSource 可以用于实现至少一次和端到端精确一次处理保证的 Flink 作业。

可以根据生成的事件和自定义 WatermarkStrategy 在源位置生成确定性水印。

相关推荐
AMZ-Lu21 分钟前
正本清源:亚马逊战场上的“原创者红利”与心智产权
大数据·人工智能·媒体·亚马逊
NOCSAH38 分钟前
统好AI数智一体化平台:原生一体架构筑牢数智基底
大数据·人工智能·统好ai·数智一体化平台
diygwcom1 小时前
AI正在吞噬所有SAAS软件:一场颠覆性的技术革命
大数据·人工智能
威联通安全存储1 小时前
某大型食品饮料企业:基于威联通 TS-h1290FX 的中央数据管控与合规实践
大数据·人工智能·云计算
LY智网强哥1 小时前
企业怎么出现在AI回答里?GEO优化的原理、路径与边界
大数据·人工智能
guoji77882 小时前
Gemini 3.1 Pro 安全与对齐机制深度解析:可控性、合规性与企业级应用评估
大数据·人工智能·算法
q_35488851533 小时前
计算机毕业设计:Python当当网图书大数据分析平台 Django框架 爬虫 Pandas 可视化 大数据 大模型 书籍(建议收藏)✅
大数据·爬虫·python·机器学习·数据分析·django·课程设计
没有羊的王K3 小时前
大数据技术栈全解析
大数据
m0_528174453 小时前
Git误操作急救手册大纲
大数据·elasticsearch·搜索引擎
happyboy19862113 小时前
2026大专大数据科学专业就业市场竞争激烈吗?
大数据