Apache StreamPark-DataGen

作者: Apache StreamPark

介绍

支持:

  • Scan Source: Bounded
  • Scan Source: UnBounded
    DataGen连接器允许通基内存的数据生成来创建表,这对于本地查询,而不是外部系统查询来说是非常有用的,比如kafka。表可以包含Computed Column syntax字段计算语法,以支持更灵活的数据生成。
    DataGen是内建连接器,无需添加额外依赖。

使用

默认情况下,DataGen表将创建无限数量的数据行,并且每个字段都是随机值。对于可变大小的类型,比如char/varchar/string/array/map/multiset,可以指定他们的长度。另外也可以通过指定总行数,来创建一个有界表。
flink也提供了序列化生成器,用户可以指定序列的开始和结束之。如果表的某个字段为序列类型,则表将会成为有界表,当第一个字段值生成到他对应的结束值时数据生成结束。

时间类型通常为本地机器的当前系统时间。

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

通常情况下,数据生成连接器和LINK子句一起使用来模拟物理表。

CREATE TABLE Orders (
    order_number BIGINT,
    price        DECIMAL(32,2),
    buyer        ROW<first_name STRING, last_name STRING>,
    order_time   TIMESTAMP(3)
) WITH (...)
-- 创建一个模拟表
CREATE TEMPORARY TABLE GenOrders
WITH (
    'connector' = 'datagen',
    'number-of-rows' = '10'
)
LIKE Orders (EXCLUDING ALL)

数据类型

类型 支持的生成器 备注
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 flink-1.13.x:通常为本地机器的时间戳。
flink-1.5.x:解析为本地机器时间戳过去一段时间的时间戳,最大可以过去的时间可以通过 max-past 选项配置。
TIMESTAMP_LTZ random flink-1.13.x:通常为本地机器的时间戳。
flink-1.5.x:解析为本地机器时间戳过去一段时间的时间戳,最大可以过去的时间可以通过 max-past 选项配置。
INTERVAL YEAR TO MONTH random
INTERVAL DAY TO MONTH random
ROW random 通过随机子属性值生成一个row类型字段值。
ARRAY random 通过随机entry生成一个数组。
MAP random 通过随机entry生成一个map表。
MULTISET random 通过随机entry生成一个multiset

连接器选项

Option 是否必须 默认值 类型 描述
connector 必须 (none) String 指定使用那个连接器,这儿应该是:datagen
rows-per-second 可选 10000 Long 指定每秒生成的行数以控制发射频率。
number-of-rows 可选 (none) Long 发射的数据总行数。默认情况下,表是无界的。
fields.#.kind 可选 random String 该**#字段的生成器,可以是sequencerandom**。
fields.##.min 可选 (该类型最小值) (Type of field) 随机生成器的最小值,指针对于数字类型。
fields.##.max 可选 (该类型最大值) (Type of field) 随机生成器的最大值,只针对于数字类型。
从 flink-1.15.x:开始支持
fields.##.max-past
可选 0 Duration 时间戳随机生成器可以过去的最大时间,只用于 timestamp 类型。
fields.##.length 可选 100 Integer 生成 char/varchar/string/array/map/multiset 可变长度类型的大小或长度。
fields.##.start 可选 (none) (Type of field) 序列生成器的开始值。
fields.##.end 可选 (none) (Type of field) 序列生成器的结束值。

注:上面选项中的 ## ,在实际使用时,要替换为创建的表的某个字段名称,表示对这个字段设置属性。

文章列表

更多推荐

更多
  • Pulsar消息队列-一套高可用实时消息系统实现 实时消息【即时通信】系统,有群聊和单聊两种方式,其形态异于消息队列:1 大量的 group 信息变动,群聊形式的即时通信系统在正常服务形态下,瞬时可能有大量用户登入登出。2 ...
  • Pulsar消息队列-Pulsar对比Kafka笔记 很多人查看 Pulsar 之前可能对 Kafka 很熟悉,参照上图可见二者内部结构的区别,Pulsar 和 Kafka 都是以 Topic 描述一个基本的数据集合,Topic 数据又分为若干 Partition,即对数据进行逻辑上的 ...
  • Pulsar消息队列-对 2017 年一套 IM 系统的反思 信系统的开发,前前后后参与或者主导了六七个 IM 系统的研发。上一次开发的 IM 系统的时间点还是 2018 年,关于该系统的详细描述见 [一套高可用实时消息系统实现][1] ...
  • Apache APISIX文档-快速入门指南-如何构建 Apache APISIX 如何构建 Apache APISIX,步骤1:安装 Apache APISIX,步骤2:安装 etcd,步骤3:管理 Apache APISIX 服务,步骤4:运行测试案例,步骤5:修改 Admin API key,步骤6:为 Apac
  • Apache APISIX文档-快速入门指南-快速入门指南 快速入门指南,概述,前提条件,第一步:安装 Apache APISIX,第二步:创建路由,第三步:验证,进阶操作,工作原理,创建上游服务Upstream,绑定路由与上游服务,添加身份验证,为路由添加前缀,APISIX Dashboard
  • Apache APISIX文档-架构设计-APISIX APISIX,软件架构,插件加载流程,插件内部结构,配置 APISIX,插件加载流程,比如指定 APISIX 默认监听端口为 8000,并且设置 etcd 地址为 http://foo:2379, 其他配置保持默认。在 ...
  • Apache APISIX文档-架构设计-Service Service 是某类 API 的抽象(也可以理解为一组 Route 的抽象)。它通常与上游服务抽象是一一对应的,Route 与 Service 之间,通常是 N:1 的关系,参看下图。不同 Route 规则同时绑定到一个 Service ...
  • Apache APISIX文档-架构设计-Plugin Config 如果你想要复用一组通用的插件配置,你可以把它们提取成一个 Plugin config,并绑定到对应的路由上。举个例子,你可以这么做:创建 Plugin config,如果这个路由已经配置了 plugins,那么 Plugin config ...
  • Apache APISIX文档-架构设计-Debug Mode 注意:在 APISIX 2.10 之前,开启基本调试模式曾经是设置 conf/config.yaml 中的 apisix.enable_debug 为 true。设置 conf/debug.yaml 中的选项,开启高级调试模式。由于 ...
  • Apache APISIX文档-架构设计-Consumer 如上图所示,作为 API 网关,需要知道 API Consumer(消费方)具体是谁,这样就可以对不同 API Consumer 配置不同规则。授权认证:比如有 [key-auth] 等。获取 consumer_...
  • 近期文章

    更多
    文章目录

      推荐作者

      更多