• 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

    在这里插入图片描述

  • 相关阅读:
    web入门---tomcat&请求响应
    Eclipse Indigo运行Struts2的几个问题
    常用docker命令 docker_cmd_sheet
    智能化小区管理系统(JSP+java+springmvc+mysql+MyBatis)
    Python中的函数未定义的错误
    Halcon 基本语法
    字节码与Class文件的关系
    lodash已死?radash最全使用介绍(附源码说明)—— Array方法篇(3)
    前任开发在代码里下毒了,支付下单居然没加幂等
    《C++ Primer》第3章 字符串、向量和数组(一)
  • 原文地址:https://blog.csdn.net/m0_50186249/article/details/134247163