使用flink1.17 实时同步数据(mysql到sqlserver 或 sqlserver 到sqlserver)

本文介绍了如何使用ApacheFlink1.17进行数据库实时同步,包括从MySQL到SQLServer以及SQLServer到SQLServer的同步。主要步骤涉及环境准备(Java环境、CentOS系统、下载相关jar包),开启数据库的CDC功能,建立Flink与数据库的连接,定义源和目标表,并通过FlinkSQL插入数据来实现同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


介绍两种数据库用 flink1.17 做数据实时同步的操作。

第一种:mysql 同步到 sqlserver
第二种:sqlserver 同步到 sqlserver

步骤一,环境的准备

准备一台有 java 环境的centos系统的主机或虚拟机

下载 flink:

https://flink.apache.org/downloads/
在这里插入图片描述

下载 mysql、sqlserver 相关 jar 包
# flink cdc 读取源数据的jar包
flink-sql-connector-mysql-cdc-2.4.0.jar
flink-sql-connector-sqlserver-cdc-2.4.0.jar

# flink jdbc 写数据的jar包,与 mssql 的驱动包
flink-connector-jdbc-3.1.1-1.17.jar
mssql-jdbc-9.4.1.jre8.jar 

以上jar下载地址:

# flink cdc
https://repo1.maven.org/maven2/com/ververica/
# flink connector
https://repo1.maven.org/maven2/org/apache/flink/flink-connector-jdbc/
# mssql jdbc 驱动
https://repo1.maven.org/maven2/com/microsoft/sqlserver/mssql-jdbc/
<
### Flink 1.17 Standalone Mode 下 StreamPark 部署指南 #### 准备工作 在部署 StreamPark 前,需确保环境满足以下条件: - JDK 版本为 1.8 更高版本[^4]。 - 节点之间已配置 SSH 免密登录。 - 关闭防火墙和服务端安全机制(如 SELinux)。 - 主机名解析正常,并已在 `hosts` 文件中完成配置。 下载并解压 Apache Flink 的二进制包: ```bash wget https://www.apache.org/dyn/closer.lua/flink/flink-1.17.1/flink-1.17.1-bin-scala_2.12.tgz tar -zxvf flink-1.17.1-bin-scala_2.12.tgz cd flink-1.17.1 ``` #### StreamPark 安装与集成 StreamPark 是一款基于 Flink 构建的数据开发平台工具。以下是其在 Standalone 模式下的具体部署流程: ##### 1. 获取 StreamPark 并初始化项目 从官方仓库克隆 StreamPark 项目源码: ```bash git clone https://github.com/streamingpro/StreamPark.git cd StreamPark ``` 构建 StreamPark 工程依赖 Maven 和 Java 开发环境。执行如下命令编译工程: ```bash mvn clean install -DskipTests ``` ##### 2. 修改 Flink 配置文件 编辑 Flink 的核心配置文件 `conf/flink-conf.yaml`,添加调整必要的参数以适配 StreamPark 运行需求: ```yaml jobmanager.rpc.address: localhost jobmanager.memory.process.size: 1600m taskmanager.memory.process.size: 1728m parallelism.default: 4 state.backend: filesystem state.checkpoints.dir: file:///checkpoint_dir high-availability: zookeeper high-availability.zookeeper.quorum: zk1:2181,zk2:2181,zk3:2181 ``` 上述配置中的 ZooKeeper 地址应替换为实际的集群地址。 ##### 3. 启动 Flink 集群 启动本地 Standalone 模式的 Flink 集群: ```bash ./bin/start-cluster.sh ``` 验证集群状态是否正常运行: ```bash ./bin/taskmanageroverview.sh ``` ##### 4. 配置 StreamPark 进入 StreamPark 的 Web 控制台目录,通常位于 `/web/target/web-assembly` 中。复制打包好的 WAR 文件至 Tomcat 其他支持 Servlet 的容器中。 修改 StreamPark 的默认配置文件 `application.properties`,指定连接到当前 Flink 集群的相关信息: ```properties stream.park.flink.home=/path/to/flink-1.17.1 stream.park.flink.version=1.17 spring.datasource.url=jdbc:mysql://localhost:3306/streampark?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=password ``` ##### 5. 初始化数据库表结构 根据 StreamPark 提供的 SQL 脚本,在 MySQL 数据库中创建所需的元数据表。脚本路径一般为 `/db/sql/init.sql`。 导入完成后,确认所有表均已成功生成。 ##### 6. 启动 StreamPark 应用服务 通过内置 Jetty 外部应用服务器加载 StreamPark 的前端页面和后端逻辑。访问 URL 如下所示: ``` http://<your-server-ip>:9090/ ``` #### 故障排查 如果遇到错误提示 “Failed to load web based job submission extension”,可能的原因包括但不限于以下几点: - 缺少必要依赖项插件未正确加载[^1]。 - 日志级别过高掩盖了潜在异常;建议降低日志等级以便定位问题所在。 --- ###
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值