DataGen SQL 连接器

Scan Source: 有界 Scan Source: 无界

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

DataGen 连接器可以使用计算列语法。 这使您可以灵活地生成记录。

DataGen 连接器是内置的。

注意 不支持复杂类型: Array,Map,Row。 请用计算列构造这些类型。

怎么创建一个 DataGen 的表

表的有界性:当表中字段的数据全部生成完成后,source 就结束了。 因此,表的有界性取决于字段的有界性。

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

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

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

  1. CREATE TABLE datagen (
  2. f_sequence INT,
  3. f_random INT,
  4. f_random_str STRING,
  5. ts AS localtimestamp,
  6. WATERMARK FOR ts AS ts
  7. ) WITH (
  8. 'connector' = 'datagen',
  9. -- optional options --
  10. 'rows-per-second'='5',
  11. 'fields.f_sequence.kind'='sequence',
  12. 'fields.f_sequence.start'='1',
  13. 'fields.f_sequence.end'='1000',
  14. 'fields.f_random.min'='1',
  15. 'fields.f_random.max'='1000',
  16. 'fields.f_random_str.length'='10'
  17. )

连接器参数

参数是否必选默认值数据类型描述
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.#.max-past
可选0Duration随机生成器生成相对当前时间向过去偏移的最大值,适用于 timestamp 类型。
fields.#.length
可选100Integer随机生成器生成字符的长度,适用于 char、varchar、string。
fields.#.start
可选(none)(Type of field)序列生成器的起始值。
fields.#.end
可选(none)(Type of field)序列生成器的结束值。