使用 Flink + Faker Connector 生成测试数据压测 MySQL

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

使用 Flink 压测 MySQL 是一个不错的注意,或者,有时候我们需要在 MySQL 中生成一些可控的测试数据,这时使用 Flink 的 Faker Connector 就是会很简单。本文记录一下操作方法。

1. 创建 MySQL 测试表

测试表明, MySQL 作为 Sink 时,是不能通过 Flink SQL 在 MySQL 上建库或表的,只能是 Flink 读取 MySQL 上现成的表
所以,需要先在数据库将表建出来。

CREATE DATABASE IF NOT EXISTS `example`;
CREATE TABLE IF NOT EXISTS `example`.`currency_rates` (`currency_code` CHAR(3) NOT NULL,`eur_rate` DECIMAL(6,4) NOT NULL,`rate_time` DATETIME NOT NULL,PRIMARY KEY (`currency_code`)
);

2. 创建 Flink Faker 表并持续写入 MySQL

create catalog mysql_datasource with ('type'='jdbc','base-url'='jdbc:mysql://10.0.13.30:3307','default-database'='example','username'='root','password'='Admin1234!'
);drop table if exists currency_rates;
create table if not exists currency_rates 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'   
) like mysql_datasource.example.currency_rates (excluding options);insert into mysql_datasource.example.currency_rates select * from currency_rates;
select * from mysql_datasource.example.currency_rates;

由于上述表的主键 currency_code 的值是有限的(166个),Flink 的 JDBC Connector 的处理方式是,如果写入的数据主键已存在,则改为更新,所以上述 SQL 不会报错,刷新 MySQL 表会发现表中的数据在不停地更新。这张表特别适合作为维表测试 Temporal Join!

以下单独在 Flink SQL 中创建 currency_rates 的 SQL:

create table if not exists currency_rates (currency_code string,eur_rate decimal(6,4),rate_time timestamp(3),primary key (currency_code) not enforced
) with ('connector' = 'jdbc','url' = 'jdbc:mysql://10.0.13.30:3307/example','table-name' = 'currency_rates','username'='root','password'='Admin1234!'
);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/766445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day06vue2学习

day06 路由的封装抽离 问题:所有的路由配置都堆在main.js中不太合适么?不好,会加大代码的复杂度 目标:将路由模块抽离出来。好处:差分模块,利于维护。 大致的做法就是,将路由相关的东西都提…

Python界面库Flet(1)介绍和快速使用

Python界面库Flet(1)快速上手使用 Author:Once Day Date:2024年3月19日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: Pyt…

【QT+QGIS跨平台编译】之九十:【QGIS_Crashhandler+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、QGIS_Crashhandler介绍二、QGIS下载三、文件分析四、pro文件五、编译实践一、QGIS_Crashhandler介绍 QGIS_Crashhandler模块是QGIS中的一个重要组成部分,它提供了QGIS程序的错误崩溃处理与跟踪。 二、QGIS下载 QGIS网址: QGIS Source Download 获取最新版本的…

RabbitMq高可用

消息队列高级 服务异步通信-高级篇1.消息可靠性1.1.生产者消息确认1.2.消息持久化1.3.消费者消息确认1.4.消费失败重试机制1.5.总结 2.死信交换机2.1.初识死信交换机2.2.TTL2.3.延迟队列 3.惰性队列3.1.消息堆积问题3.2.惰性队列 4.MQ集群4.1.集群分类4.2.普通集群4.3.镜像集群…

【物联网开源平台】tingsboard二次开发环境搭建+编译

文章目录 一,需要准备的环境二,获取tingsboard源码1.git拉取源码2.下载源码压缩包 三.新建仓库存放依赖文件四,编译五,遇到的错误 提示: 1.这篇只要准备两个环境,方法更简单! 2.基于tingsboard …

网盘——客户端服务器搭建

1、配置文件加载 资源文件 将服务器IP和PORT信息填入配置文件中 将配置文件作为资源文件添加到资源文件中 程序运行时加载配置文件中的数据 1.1、首先在创建好的代码目录下面创建一个配置文件 代码目录怎么找到的呢? 1.2、在这个路径下面,创建一个…

鸿蒙Harmony应用开发—ArkTS-枚举说明

说明: 本模块首批接口从API version 7开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。 Color 从API version 9开始,该接口支持在ArkTS卡片中使用。 颜色名称颜色值颜色示意Black0x000000 Blue0x0000ff Brown…

STM32 | Systick定时器(第四天)

STM32 第四天 一、Systick定时器 1、定时器概念 定时器:是芯片内部用于计数从而得到时长的一种外设。 定时器定时长短与什么有关???(定时器定时长短与频率及计数大小有关) 定时器频率换算单位:1GHZ=1000MHZ=1000 000KHZ = 1000 000 000HZ 定时器定时时间:计数个数…

NLP 笔记:Latent Dirichlet Allocation (介绍篇)

1 问题介绍 假设我们有一堆新闻,每个新闻都有≥1个主题 我们现在只知道新闻的内容,我们希望一个算法,帮我们把这些新闻分类成主题人类可以根据每个每个文章里面的单词判断主题,那计算机怎么做呢? ——>LDA(Latent D…

利用免费 GPU 部署体验大型语言模型推理框架 vLLM

vLLM简介 vLLM 是一个快速且易于使用的 LLM(大型语言模型)推理和服务库。 vLLM 之所以快速,是因为: 最先进的服务吞吐量 通过 PagedAttention 高效管理注意力键和值内存 连续批处理传入请求 使用 CUDA/HIP 图快速模型执行 量…

clang-query 的编译安装与使用示例

1,clang query 概述 作用: 检查一个程序源码的抽象语法树,测试 AST 匹配器; 帮助检查哪些 AST 节点与指定的 AST 匹配器相匹配; 2,clang-query 安装 准备: git clone --recursive https://git…

Linux详细介绍

Linux操作系统介绍 Linux 是一种开源的类 Unix 操作系统,最初由 Linus Torvalds 在 1991 年创建。与其他操作系统不同,Linux 是一个基于内核的操作系统,其核心是 Linux 内核。Linux 内核是由程序员社区不断开发和改进的,它提供了…

【 yolo红外微小无人机-直升机-飞机-飞鸟目标检测】

yolo无人机-直升机-飞机-飞鸟目标检测 1. 小型旋翼无人机目标检测2. yolo红外微小无人机-直升机-飞机-飞鸟目标检测3. yolo细分类型飞机-鸟类-无人机检测4. yolo红外大尺度无人机检测5. 小型固定翼无人机检测6. 大型固定翼无人机检测7. yolo航空俯视场景下机场飞机检测 1. 小型…

Hive SQL必刷练习题:排列组合问题【通过join不等式】

排列组合问题【通过join不等式】 这种问题,就是数学的排列不等式,一个队伍只能和其余队伍比一次,不能重复 方法1:可以直接通过join,最后on是一个不等式【排列组合问题的解决方式】 方法2:也可以是提前多加…

IAB欧洲发布首张泛欧洲数字零售媒体能力矩阵图

2024年1月18日,互动广告署-欧洲办事处(IAB Europe)发布了首张泛欧洲数字零售媒体能力矩阵图。为媒体买家提供的新资源概述了在欧洲运营的零售商提供的现场、场外和数字店内零售媒体广告机会。 2024年1月18日,比利时布鲁塞尔,欧洲领…

【深度学习】神经网络教程

文章目录 安装python环境熟悉Python安装torch 安装python环境 有解释器: 设置环境: 熟悉Python var1 1 # 整型 var2 1.1 # 浮点型 var3 1 2j # 复数 var4 hello # 字符串 var5 True # 布尔型 var6 [1, 2, 3] # 列表List var7 (1, 2, 3)…

PHP 读取嵌入式数据 SQLite3

SQLite3 属于轻量级开源的嵌入式关系型数据库,但它支持 ACID(Atomicity,Consistency,Isolation,Durability) 事务。 SQLite Download Page: https://www.sqlite.org/download.html 第一步:在 php.ini 中开启 extensionsqlite3 第二步:连接数…

保研复习概率论1

1.什么是随机试验(random trial)? 如果一个试验满足试验可以在相同的条件下重复进行、试验所有可能结果明确可知(或者是可知这个范围)、每一次试验前会出现哪个结果事先并不确定,那么试验称为随机试验。 …

JVM——运行时数据区

前言 由于JAVA程序是交由JVM执行的,所以我们所说的JAVA内存区域划分也是指的JVM内存区域划分,JAVA程序具体执行的过程如下图所示。首先Java源代码文件会被Java编译器编译为字节码文件,然后由JVM中的类加载器加载各个类的字节码文件&#xff0…

部标JT808车辆定位监控平台单服务器13.6万接入压力测试记录(附源码)

之前经常有人问平台能支持多少设备同时在线,由于事情多没时间做。最近刚好有机会做下压力测试。在不间断的连续压测三天,最终结果为13.6万TCP连接,30秒上报频率。 一、测试目的 测试平台同时接入设备数量与并发处理能力。 二、准备环境 一…