上下游开发指南

 

数据生成器 DataGen

更新时间 2023-09-06

版本说明

当前仅支持 Flink 1.12 版本。

使用范围

Datagen 是 Flink 自带的随机数据生成器,它可以作为数据源(Source)直接使用,支持有界和无界数据源。

DDL 定义

CREATE TABLE Orders (
    order_number BIGINT,
    price        DECIMAL(32,2),
    buyer        ROW<first_name STRING, last_name STRING>,
    order_time   TIMESTAMP(3)
) WITH (
  'connector' = 'datagen',
  'number-of-rows' = '100'
)

注意

默认情况下,DataGen 表将创建无界表,每列具有随机值。对于可变类型 char/varchar/string/array/map/multiset,可以指定长度。

设置 number-of-rows 总行数,可以创建有界表。

sequence 类型(fields.#.kind)的字段,可以定义起始值(fields.#.start)和结束值(fields.#.end) ,如果表中的任何列是 sequence 类型,则是有界表,并在任意一个序列达到结束值时结束。

Datagen 源表 WITH 参数

参数值 是否必填 默认值 数据类型 描述
connector String 连接器,固定值为 datagen
rows-per-second 10000 Long 每秒生成的行数,控制发出数据速率。
number-of-rows Long 总发出数据行数,默认无界。
fields.#.kind random String 指定 # 字段的生成器。可以是 sequencerandom
fields.#.min (Minimum value of type) (Type of field) ‘random’ 生成器的最小值,适用于数字类型。
fields.#.max (Maximum value of type) (Type of field) ‘random’ 生成器的最大值,适用于数字类型。
fields.#.length 100 Integer ‘random’ 生成器生成字符的长度,适用于 char/varchar/string/array/map/multiset 类型。
fields.#.start (Type of field) ‘sequence’ 生成器的起始值。
fields.#.end (Type of field) ‘sequence’ 生成器的结束值。

Datagen 数据类型

数据类型 支持的生成器 描述
BOOLEAN random -
CHAR random / sequence -
VARCHAR random / sequence -
STRING random / sequence -
DECIMAL random / sequence -
TINYINT random / sequence -
SMALLINT random / sequence -
INT random / sequence -
BIGINT random / sequence -
FLOAT random / sequence -
DOUBLE random / sequence -
DATE random 当前日期。
TIME random 当前时间。
TIMESTAMP random 当前时间戳。
TIMESTAMP WITH LOCAL TIMEZONE random 当前时间戳。
INTERVAL YEAR TO MONTH random -
INTERVAL DAY TO MONTH random -
ROW random 生成带有随机子字段的行。
ARRAY random 生成带有随机元素的 array。
MAP random 生成带有随机元素的 map。
MULTISET random 生成带有随机元素的 multiset。
这篇文档解决了您的问题吗?
0
0