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

相关推荐

  1. 72Flink DataGen 连接器详解

    2024-07-18 06:36:02       22 阅读
  2. Flink】FlinkSQLDataGen连接器(测试利器)

    2024-07-18 06:36:02       49 阅读
  3. 70Flink DataStream Connector 之 JDBC 连接器详解

    2024-07-18 06:36:02       20 阅读
  4. 71Flink Hybrid Source 详解

    2024-07-18 06:36:02       19 阅读
  5. 69、Flink DataStream Connector 之 Kafka 连接器详解

    2024-07-18 06:36:02       20 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 06:36:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 06:36:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 06:36:02       57 阅读
  4. Python语言-面向对象

    2024-07-18 06:36:02       68 阅读

热门阅读

  1. Hive第三天

    2024-07-18 06:36:02       17 阅读
  2. Elasticsearch(ES)集群监控

    2024-07-18 06:36:02       22 阅读
  3. 聊聊不再兼容安卓的鸿蒙

    2024-07-18 06:36:02       20 阅读
  4. SpringSecurity + JWT 实现登录认证

    2024-07-18 06:36:02       15 阅读
  5. vue路由的钩子函数

    2024-07-18 06:36:02       24 阅读
  6. Socket、WebSocket 和 MQTT 的区别

    2024-07-18 06:36:02       22 阅读
  7. 深入探讨SQL Server端口设置:理论与实践

    2024-07-18 06:36:02       24 阅读
  8. kafka判断生产者是否向kafka集群成功发送消息

    2024-07-18 06:36:02       24 阅读