基于Flink SQL CDC Mysql to Mysql数据同步

news2024/11/18 8:43:13

基于Flink SQL CDC Mysql to Mysql数据同步

Flink CDC有两种方式同步数据库:

  • 一种是通过FlinkSQL直接输入两表数据库映射进行数据同步,缺点是只能单表进行同步;
  • 一种是通过DataStream开发一个maven项目,打成jar包上传到服务器运行。

本方案使用FlinkSQL方法,同步两表中的数据。
其中Flink应用可以部署在具有公网IP的服务器上,同时可以连接其他局域网中服务器的数据进行同步工作,如不需要操作管理页面,则不对服务器IP有要求。

一、 服务器部署Flink

将Flink压缩包解压到服务器指定位置
Flink下载地址,点击进入
在这里插入图片描述

二、 配置Flink

1.配置端口号

进入到 根目录\conf\flink-conf.yaml文件,找到rest.port,将其配置为已开放的端口
在这里插入图片描述

2.配置rest.bind地址

找到rest.port位置,将其参数localhost改为0.0.0.0,不修改会导致管理页面无法正常打开。
在这里插入图片描述

三、 上传两个jar包到lib中

上面的是同步到目标mysql库的连接器
下面的是源mysql的连接器
下载地址:
flink-connector-jdbc:jar:3.0.0-1.16
flink-sql-connector-mysql-cdc:jar:2.3.0
在这里插入图片描述

四、 启动服务

进入到bin文件夹中

1. 运行start-cluster.sh
2. 运行sql-client.sh进入到FlinkSQL模式

创建两个表映射、一个启动任务指令

1)源数据库映射

create table ny_energy_data_source
(
    id             bigint ,
    enterprise_id  bigint     ,
    use_time       timestamp   ,
    date_type      int        ,
    attribute_id   bigint     ,
    PRIMARY KEY (`id`) NOT ENFORCED
)WITH (
    'connector' = 'mysql-cdc',
    'hostname' = 'ip地址',
    'port' = '3306',
    'username' = '用户名',
    'password' = '密码',
    'database-name' = '源数据库名',
    'table-name' = '表名'
);

2)目标数据库映射

	create table ny_energy_data_target
(
    id             bigint ,
    enterprise_id  bigint     ,
    use_time       timestamp   ,
    date_type      int        ,
    attribute_id   bigint     ,
    PRIMARY KEY (`id`) NOT ENFORCED
)WITH (
    'connector' = 'jdbc',
    'url' = 'jdbc:mysql://IP地址:3306/库名?serverTimezone=UTC',
    'username' = '用户名',
    'password' = '密码',
    'table-name' = '表名',
    'driver' = 'com.mysql.cj.jdbc.Driver',
    'scan.fetch-size' = '200'
);

3)启动任务
从ny_energy_data_source到ny_energy_data_target,先全量后增量

insert into ny_energy_data_target select * from ny_energy_data_source;

五、 进入到http://IP:8081(默认端口),查看任务运行情况

在这里插入图片描述

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

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

相关文章

考研第一天,汤家凤基础班,连续与极限复习笔记

函数连续极限性质保号性证明极值点:夹逼准则二项式展开根号下,大于一,小于一的讨论直接放缩求和分子分母齐次,且分母大一次,用积分单调有界存在极限几个重要的切线放缩证明有界,然后放缩求单调证明有界&…

智慧高校数字化校园数据中心建设方案

本资料来源网络,知识分享,仅供个人学习,请勿商用。完整资料阅览见文末,部分资料内容: 一、 云数据中心建设规划云计算平台逻辑架构图 云设施即服务(IaaS,Cloud Infrastructure as a Service):系…

信息系统项目管理师——信息化和信息系统

信息的特征(掌握) 1、客观性 2、普遍性 3、无限性 4、动态性:信息是随着时间的变化而变化的。 5、相对性 6、依附性: 1)信息是客观世界的反映,任何信息必然由客观事物所产生,不存在无源的信息。…

视觉SLAM十四讲ch5 相机与图像笔记

视觉SLAM十四讲ch5 相机与图像本讲目标上讲回顾相机模型小孔成像模型(单目模型)畸变双目模型RGB-D相机本讲目标 ●理解理解针孔相机的模型、内参与径向畸变参数。 ●理解一个空间点是如何投影到相机成像平面的。 ●掌握OpenCV的图像存储与表达方式。 ●…

synchronized原理(轻量级,锁膨胀,自旋,偏向锁)

轻量级锁 轻量级锁的使用场景:如果一个对象虽然有多线程要加锁,但加锁的时间是错开的(也就是没有竞争),那么可以使用轻量级锁来优化。 轻量级锁对使用者是透明的,即语法仍然是 synchronized。 轻量级锁加…

c++11 标准模板(STL)(std::unordered_map)(三)

定义于头文件 <unordered_map> template< class Key, class T, class Hash std::hash<Key>, class KeyEqual std::equal_to<Key>, class Allocator std::allocator< std::pair<const Key, T> > > class unordered…

学习 Python 之 Pygame 开发魂斗罗(九)

学习 Python 之 Pygame 开发魂斗罗&#xff08;九&#xff09;继续编写魂斗罗1. 在子弹类中修改敌人发射子弹的位置2. 创建显示敌人子弹的函数3. 解决敌人不会向下掉落的问题4. 给敌人碰撞体组增加碰撞体5. 解决敌人叠加在一起的问题继续编写魂斗罗 在上次的博客学习 Python 之…

linux入门---如何实现用户切换

目录标题基本用户认识用户的切换susu -exitsu 用户名sudo基本用户认识 在linux系统中将用户分为两个大类一个是root用户一个是普通用户&#xff0c;root用户是linux操作系统的超级管理员&#xff0c;相当于古代的皇帝不会受到任何的权限约束&#xff0c;而普通用户就会受到权限…

循环缓冲区概述

传送门 >> AutoSAR入门和实战系列总目录 文章目录概述使用循环缓冲区机制循环缓冲区、循环队列、循环缓冲区或环形缓冲区是一种数据结构&#xff0c;它使用单个固定大小的缓冲区&#xff0c;就好像它是端到端连接的一样。这种结构很容易用于缓冲数据流。 概述 循环缓冲…

Linux性能学习(2.2):内存_进程线程内存分配机制探究

文章目录1 进程内存分配探究1.1 代码1.2 试验过程2 线程内存分配探究2.1 代码2.2 试验过程3 总结参考资料&#xff1a;1. 嵌入式软件开发杂谈&#xff08;3&#xff09;&#xff1a;Linux下内存与虚拟内存2. 嵌入式软件开发杂谈&#xff08;1&#xff09;&#xff1a;Linux下最…

Cookie+Session详解

文章目录批量删除会话技术简介CookieCookie 查看Cookie 的删除Cookie 使用页面获取 cookie 信息cookie 特点Sessionsession 的使用Session 登录权限验证过滤器简介过滤器的使用WebFilter 注解过滤放行登录权限验证批量删除 servlet 类 dao 层 会话技术 简介 在计算机领域…

论文阅读_近端策略优化_PPO

论文信息 name_en: Proximal Policy Optimization Algorithms name_ch: 近端策略优化算法 paper_addr: http://arxiv.org/abs/1707.06347 date_publish: 2017-08-28 if: IF 8.665 Q1 B1 Top EI author: John Schulman citation: 9685 读后感 PPO近端策略优化是一种强化学习算…

Linux 练习四 (目录操作 + 文件操作)

文章目录1 基于文件指针的文件操作1.1 文件的创建&#xff0c;打开和关闭1.2 文件读写操作2 基于文件描述符的文件操作2.1 打开、创建和关闭文件2.2 文件读写2.3 改变文件大小2.4 文件映射2.5 文件定位2.6 获取文件信息2.7 复制文件描述符2.8 文件描述符和文件指针2.9 标准输入…

Git标签与版本发布

1. 什么是git标签 标签&#xff0c;就类似我们阅读时的书签&#xff0c;可以很轻易找到自己阅读到了哪里。 对于git来说&#xff0c;在使用git对项目进行版本管理的时候&#xff0c;当我们的项目开发到一定的阶段&#xff0c;需要发布一个版本。这时&#xff0c;我们就可以对…

Spring 实战 第六版 学习笔记

Spring 实战 第六版 学习笔记 There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheated should leave quickly.…

【C语言督学训练营 第一天】课程导学,编程环境的安装

文章目录前言一、C语言学习常遇到的问题二、程序员职业发展三、C语言简介及环境搭建1.C语言简介2.安装编译器3.windows按装CLion前言 本系列是本人在复习408的时候记录的一些学习笔记&#xff0c;看的课程是王道的课程&#xff0c;只不过加入了一些个人的见解。不得不说王道的…

PTL仓库提货照明解决方案

仓库拣货到光解决方案是一种先进的导光技术&#xff0c;用货架空间上的全套电子显示装置&#xff08;如信号灯、显示器、确认按钮&#xff09;代替拣货单&#xff0c;简化仓储或配送&#xff1b;订单仓库中心履行流程的无纸化、高效且经济高效的解决方案。 什么是按光拣货系统(…

Java——包装类和List及ArrayList

目录 包装类&#xff08;Wrapped Class) 包装类的使用---装箱和拆箱 自动装箱和自动拆箱 Integer的易错题 javap反编译工具 List接口的使用 方法 ArrayList 使用 打印 区别 扩容机制 ArrayList练习 字符集合 杨辉三角 ​编辑 包装类&#xff08;Wrapped Class) Object 引用可…

CSS居中之 { left:50%; top:50%; transform:translate(-50%,-50%); }

CSS居中之 { left:50%; top:50%; transform:translate(-50%,-50%); } left:50%; top:50%; transform:translate(-50%,-50%); left:50%; top:50%; transform:translate(-50%,-50%);也可以写成: left:50%; top:50%; translate: -50% -50%; left:50%; top:50%; translate: -50%…

电子技术——CMOS反相器的动态响应

电子技术——CMOS反相器的动态响应 数字系统的速度&#xff08;例如计算机&#xff09;取决于其构成逻辑门的信号传播速度。因为反相器是数字逻辑门电路的基础&#xff0c;反相器的传播速度是一个很重要的特性。 传播延迟 传播延迟定义为反相器响应他的输入所需要的时间。特…