• Flink SQL DataGen Connector 示例


    Flink SQL DataGen Connector 示例

    1、概述

    使用 Flink SQL DataGen Connector,可以快速地生成符合规则的测试数据,可以在不依赖真实数据的情况下进行开发和测试。

    2、使用示例

    创建一个名为 “users” 的表,包含 6 个字段:id、name、age、email、created_at 和 updated_at。

    在表的定义中,指定各个字段的规则:

    id 字段使用序列生成器,生成的范围从 1 到 1000;

    name 字段的长度为 10 个字符;

    age 字段的范围从 18 到 60 岁;

    email 字段的长度为随机的10个字符;

    created_at 和 updated_at 字段使用随机时间生成器,时间范围从 2022 年 1 月 1 日到 2022 年 12 月 31 日。

    3、官网参数介绍
    1)数据类型注释
    TypeSupported GeneratorsNotes
    BOOLEANrandom
    CHARrandom / sequence
    VARCHARrandom / sequence
    STRINGrandom / sequence
    DECIMALrandom / sequence
    TINYINTrandom / sequence
    SMALLINTrandom / sequence
    INTrandom / sequence
    BIGINTrandom / sequence
    FLOATrandom / sequence
    DOUBLErandom / sequence
    DATErandomAlways resolves to the current date of the local machine.
    TIMErandomAlways resolves to the current time of the local machine.
    TIMESTAMPrandomAlways resolves to the current timestamp of the local machine.
    TIMESTAMP_LTZrandomAlways resolves to the current timestamp of the local machine.
    INTERVAL YEAR TO MONTHrandom
    INTERVAL DAY TO MONTHrandom
    ROWrandomGenerates a row with random subfields.
    ARRAYrandomGenerates an array with random entries.
    MAPrandomGenerates a map with random entries.
    MULTISETrandomGenerates a multiset with random entries.
    2)连接器参数:
    参数是否必选默认值数据类型描述
    connector必须(none)String指定要使用的连接器,这里是 ‘datagen’。
    rows-per-second可选10000Long每秒生成的行数,用以控制数据发出速率。
    fields.#.kind可选randomString指定 ‘#’ 字段的生成器。可以是 ‘sequence’ 或 ‘random’。
    fields.#.min可选(Minimum value of type)(Type of field)随机生成器的最小值,适用于数字类型。
    fields.#.max可选(Maximum value of type)(Type of field)随机生成器的最大值,适用于数字类型。
    fields.#.length可选100Integer随机生成器生成字符的长度,适用于 char、varchar、string。
    fields.#.start可选(none)(Type of field)序列生成器的起始值。
    fields.#.end可选(none)(Type of field)序列生成器的结束值。
    4、代码示例
    CREATE TABLE users (
      id BIGINT,
      name STRING,
      age INT,
      text STRING,
      created_at TIMESTAMP(3),
      updated_at TIMESTAMP(3)
    ) WITH (
      'connector' = 'datagen',
      'fields.id.kind' = 'sequence',
      'fields.id.start' = '1',
      'fields.id.end' = '1000',
      'fields.name.length' = '10',
      'fields.age.min' = '18',
      'fields.age.max' = '60',
      'fields.text.length' = '5'
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    测试结果:

    select * from users;
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    如何在 Spring MVC 中处理表单提交
    没有上司的舞会 - 树形DP
    放大器的稳定性分析举例
    SpringBoot之JdbcTemplate输出完整SQL日志
    mysql之DML的select分组排序
    《MySQL实战45讲》——学习笔记15 “redo log与bin log答疑“总结【建议收藏】
    电子电器架构 --- 智能座舱技术分类
    服务案例|AI算法在Oracle指标异常检查、故障预测之牛刀小试
    【相机标定&基于消失点的外参标定】
    算法 滑动窗口最大值-(双指针+队列)
  • 原文地址:https://blog.csdn.net/m0_50186249/article/details/134247163