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 在源位置生成确定性水印。

相关推荐
早睡早起早日毕业几秒前
大数据管理与应用系列丛书《大数据平台架构》之第2章 分布式理论基础:大数据系统的架构基石
大数据·hadoop·分布式·架构
汽车仪器仪表相关领域11 分钟前
Kvaser Memorator Pro 2xHS v2:双通道CAN FD智能记录仪,赋能华南汽车与工业总线测试升级
大数据·人工智能·功能测试·安全·汽车·压力测试·可用性测试
刀法如飞12 分钟前
AI时代,基于大数据驱动内容运营的体系建设
大数据·人工智能·运营
架构师老Y15 分钟前
004、少样本与零样本Prompt:何时用、怎么用
大数据·人工智能·prompt
菜鸟小码17 分钟前
HDFS 常用命令大全:从入门到生产实战
大数据·hadoop·hdfs
code 小楊27 分钟前
最新快乐马视频模型深度解析:特性、对比测试与完整使用教程
大数据·人工智能·音视频
璞华Purvar30 分钟前
投后管理系统全解析:核心功能、应用场景与落地价值(2026年)
大数据·人工智能·物联网
Elastic 中国社区官方博客41 分钟前
Elasticsearch:智能搜索 - AI builder,workflow 及 skills
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
Young soul21 小时前
Elasticsearch(v8.5) 常用操作大全
大数据·elasticsearch·jenkins
乐迪信息1 小时前
乐迪信息:精准识别每一艘船:船舶AI类型分类算法技术解析
大数据·人工智能·物联网·安全·目标跟踪·分类·数据挖掘