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

相关推荐
LB211228 分钟前
SQL隐式链接显式连接
大数据·数据库·sql
攻城狮7号31 分钟前
2025时序数据库选型,以IoTDB为主从架构基因到AI赋能来解析
大数据·物联网·时序数据库·apache iotdb·时序大模型·sql mcp·ainode
金融小师妹3 小时前
基于哈塞特独立性表态的AI量化研究:美联储政策独立性的多维验证
大数据·人工智能·算法
打码人的日常分享10 小时前
运维服务方案,运维巡检方案,运维安全保障方案文件
大数据·运维·安全·word·安全架构
半夏陌离12 小时前
SQL 拓展指南:不同数据库差异对比(MySQL/Oracle/SQL Server 基础区别)
大数据·数据库·sql·mysql·oracle·数据库架构
A小弈同学14 小时前
新规则,新游戏:AI时代下的战略重构与商业实践
大数据·人工智能·重构·降本增效·电子合同
字节跳动数据平台15 小时前
一客一策:Data Agent 如何重构大模型时代的智能营销?
大数据·agent
用户Taobaoapi201416 小时前
京东图片搜索相似商品API开发指南
大数据·数据挖掘·数据分析
镭眸16 小时前
因泰立科技:用激光雷达重塑智能工厂物流生态
大数据·人工智能·科技
IT研究室18 小时前
大数据毕业设计选题推荐-基于大数据的贵州茅台股票数据分析系统-Spark-Hadoop-Bigdata
大数据·hadoop·spark·毕业设计·源码·数据可视化·bigdata