上下游开发指南

 

数据生成器 Faker

更新时间 2023-09-06

版本说明

当前仅支持 Flink 1.12 版本。

使用范围

Faker 是一款便捷的随机数据生成器,它可以作为数据源(Source)直接使用,支持无界数据源。

DDL 定义

DROP TABLE IF EXISTS page_view;
CREATE TABLE page_view (
      product_id       INT,
      sex              INT,
      province         STRING,
      full_name        STRING,
      click_time       TIMESTAMP(3),
      WATERMARK FOR click_time AS click_time - INTERVAL '4' SECOND
) WITH (
      'connector' = 'faker',                                                              -- 必选参数,固定值为faker
      'fields.product_id.expression'    = '#{number.numberBetween ''1'',''100''}',        -- 随机生成 1-100 范围内的数据
      'fields.sex.expression' = '#{regexify ''(0|1){1}''}',                               -- 针对sex字段随机生成0、1两种值,用于后续通过性别统计
      'fields.province.expression'  = '#{regexify ''(河北省|山西省|辽宁省|吉林省|黑龙江省|江苏省|浙江省|安徽省|福建省|江西省|山东省|河南省|湖北省|湖南省|广东省|海南省|四川省|贵州省|云南省|陕西省|甘肃省|青海省|台湾省){1}''}',-- 针对province字段随机生成省份,用于后续通过省份统计
      'fields.full_name.expression' = '#{regexify ''(华为智慧屏V65i 65英寸 HEGE-560B 4K全面屏智能电视机 多方视频通话 AI升降摄像头 4GB+32GB 星际黑|Redmi 10X 4G Helio G85游戏芯 4800万超清四摄 5020mAh大电量 小孔全面屏 128GB大存储 4GB+128GB 冰雾白 游戏智能手机 小米 红米|小米10 至尊纪念版 双模5G 骁龙865 120HZ高刷新率 120倍长焦镜头 120W快充 8GB+128GB 透明版 游戏手机|小米10 至尊纪念版 双模5G 骁龙865 120HZ高刷新率 120倍长焦镜头 120W快充 12GB+256GB 陶瓷黑 游戏手机|Redmi 10X 4G Helio G85游戏芯 4800万超清四摄 5020mAh大电量 小孔全面屏 128GB大存储 4GB+128GB 冰雾白 游戏智能手机 小米 红米|华为 HUAWEI P40 麒麟990 5G SoC芯片 5000万超感知徕卡三摄 30倍数字变焦 8GB+128GB亮黑色全网通5G手机|Apple iPhone 12 (A2404) 64GB 黑色 支持移动联通电信5G 双卡双待手机|华为 HUAWEI P40 麒麟990 5G SoC芯片 5000万超感知徕卡三摄 30倍数字变焦 6GB+128GB冰霜银全网通5G手机){1}''}',                                               -- 针对full_name字段随机生成产品名,用于后续通过产品名热词拆分
      'fields.click_time.expression' = '#{date.past ''6'',''1'',''SECONDS''}',            -- 针对click_time 字段随机生成比当前时间有1-6秒的延迟的时间数据
      'rows-per-second'          = '1'                                                    -- 每秒生成1条数据
);

Faker 源表 WITH 参数

参数值 是否必填 默认值 数据类型 描述
connector String 连接器,固定值为 faker
rows-per-second 10000 Long 每秒生成的行数,控制发出数据速率。
fields.field.expression String 通过正则表达式生成有规则数据。具体请参考 java-faker 中的正则功能和使用方式。
fields.field.null-rate 0.0 Double 此字段为空(null)的比率。
fields.field.length 1 Integer Array,map,multiset 相关类型数据的长度(size)。

Faker 数据类型

数据类型 支持的生成器 描述
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