DataGen SQL 连接器

从1.12开始支持。

DataGen 连接器允许按数据生成规则进行读取。

DataGen 连接器可以使用计算列语法,灵活地生成记录。 默认情况下,DataGen表将创建无限数量的行,每列具有一个随机值。对于大小可变的类型char/varchar/string/array/map/multiset,可以指定长度。此外,可以指定总行数,从而生成一个有界表。

DDL写法

表的有界性:当表中字段的数据全部生成完成后,source 就结束了。 因此,表的有界性取决于字段的有界性。
时间类型为本地计算机当前系统时间。

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'
)

每个列,都有两种生成数据的方法:

  • 随机生成器是默认的生成器,您可以指定随机生成的最大和最小值。char、varchar、string (类型)可以指定长度。它是无界的生成器。

  • 序列生成器,您可以指定序列的起始和结束值。它是有界的生成器,当序列数字达到结束值,读取结束。

CREATE TABLE datagen (
 f_sequence INT,
 f_random INT,
 f_random_str STRING,
 ts AS localtimestamp,
 WATERMARK FOR ts AS ts
) WITH (
 'connector' = 'datagen',
-- optional options --
'rows-per-second'='5',
'fields.f_sequence.kind'='sequence',
'fields.f_sequence.start'='1',
'fields.f_sequence.end'='1000',
'fields.f_random.min'='1',
'fields.f_random.max'='1000',
'fields.f_random_str.length'='10'
)

类型

Type Supported Generators Notes
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 Always resolves to the current date of the local machine.
TIME random Always resolves to the current time of the local machine.
TIMESTAMP random Resolves a past timestamp relative to the current timestamp of the local machine. The max past can be specified by the ‘max-past’ option.
TIMESTAMP_LTZ random Resolves a past timestamp relative to the current timestamp of the local machine. The max past can be specified by the ‘max-past’ option.
INTERVAL YEAR TO MONTH random
INTERVAL DAY TO MONTH random
ROW random Generates a row with random subfields.
ARRAY random Generates an array with random entries.
MAP random Generates a map with random entries.
MULTISET random Generates a multiset with random entries.

属性


参数 是否必选 默认参数 数据类型 描述
connector
必须 (none) String 指定要使用的连接器,这里是 ‘datagen’。
rows-per-second
可选 10000 Long 每秒生成的行数,用以控制数据发出速率。
fields.#.kind
可选 random String 指定 ‘#’ 字段的生成器。可以是 ‘sequence’ 或 ‘random’。
fields.#.min
可选 (Minimum value of type) (Type of field) 随机生成器的最小值,适用于数字类型。
fields.#.max
可选 (Maximum value of type) (Type of field) 随机生成器的最大值,适用于数字类型。
fields.#.length
可选 100 Integer 随机生成器生成字符的长度,适用于 char、varchar、string。
fields.#.start
可选 (none) (Type of field) 序列生成器的起始值。
fields.#.end
可选 (none) (Type of field) 序列生成器的结束值。