当前位置: 首页 > news >正文

Flink:使用 Faker 和 DataGen 生成测试数据

《大数据平台架构与原型实现:数据中台建设实战》博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,京东购书链接:https://item.jd.com/12677623.html,扫描左侧二维码进入京东手机购书页面。

DataGen 是开源 Flink 就内置的随机数据生成器;DataGen 生成的数据仅支持随机和序列值两种,且也并不是所有的数据类型都能支持随机或序列值,例如最常见的一个需求:针对时间类型就不能生成指定区间内的单调递增的数值,相较而言,Faker 的功能要明显强于 DataGen,我们只需掌握 Faker 这一种数据生成器就足够了。

1. 安装


sudo -u flink wget https://github.com/knaufk/flink-faker/releases/download/v0.5.3/flink-faker-0.5.3.jar -P /usr/lib/flink/lib/

2. 示例


-- example 1: currency_ratesdrop table if exists currency_rates;create table if not exists currency_rates (currency_code string,eur_rate decimal(6,4),rate_time timestamp(3)
)
with ('connector' = 'faker','fields.currency_code.expression' = '#{Currency.code}','fields.eur_rate.expression' = '#{Number.randomdouble ''4'',''0'',''10''}','fields.rate_time.expression' = '#{date.past ''15'',''SECONDS''}','rows-per-second' = '100'
);select * from currency_rates;-- example 2: transactionsdrop table if exists transactions;create table if not exists transactions (`id` string,`currency_code` string,`total` decimal(10,2),`transaction_time` timestamp(3),watermark for `transaction_time` as transaction_time - interval '30' second
) with ('connector' = 'faker','fields.id.expression' = '#{Internet.UUID}','fields.currency_code.expression' = '#{Currency.code}','fields.total.expression' = '#{Number.randomDouble ''2'',''10'',''1000''}','fields.transaction_time.expression' = '#{date.past ''30'',''SECONDS''}','rows-per-second' = '100'
);select * from transactions;

3. 资源


Flink Faker 项目地址:https://github.com/knaufk/flink-faker/?tab=readme-ov-file

表达式文档:https://github.com/datafaker-net/datafaker

http://www.lryc.cn/news/321714.html

相关文章:

  • Json格式解析
  • Java Day13 多线程
  • 以太坊的演变:EIP、ERC 概念以及革命性的 ERC20、ERC721 和 ERC115 标准
  • B003-springcloud alibaba 服务治理 nacos discovery ribbon feign
  • mac笔记本执行定时任务
  • 解决linux系统网卡加载慢的问题
  • Linux 命令或者一些工具
  • 基于python的4s店客户管理系统
  • 解决谷歌浏览器最新chrome94版本CORS跨域问题
  • JAVA 线程
  • Rust 基于 await、async 的异步编程和纤程、协程的实现
  • 【进阶五】Python实现SDVRP(需求拆分)常见求解算法——差分进化算法(DE)
  • 什么是神经网络?
  • 基于Python的图形用户界面设计及应用
  • python网络爬虫实战教学——urllib的使用(1)
  • 简述归并排序
  • HTML实现卷轴动画完整源码附注释
  • sh: 1: dtc: not found
  • laravel 表单验证的 exists、unique 去除软删除字段的校验
  • 【PHP + 代码审计】函数详解2.0
  • 宠物智能喂食机方案设计
  • 测试直播打赏需要考虑哪些测试要点?
  • Python练习(续)
  • 发布镜像到阿里云仓库
  • web蓝桥杯真题:灯的颜色变化
  • 通过docker容器安装zabbix6.4.12图文详解(监控服务器docker容器)
  • 算法打卡day21|回溯法篇01|理论知识,Leetcode 77.组合
  • C++ 输入输出
  • FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+HLS图像缩放+多路视频拼接,提供4套工程源码和技术支持
  • 【gpt实践】50个提升工作效率的GPT指令