普元数据开发平台 普元数据开发平台
产品介绍
安装部署
快速入门
操作指南
SDK开发指南
FAQ
  • 关系型表数据同步示例
  • 准备数据
  • 新建批量作业
  • 画布中拖拽关系型数据库输入图元
  • 配置"关系型数据库输入"组件属性
  • 配置"关系型数据库输出"组件属性
  • 通用配置
  • 保存草稿
  • 运行
  • 提交版本

# 关系型表数据同步示例

本示例主要介绍关系型数据库表的同步场景开发,该场景实现了 MySQL 中的 empsinfo 源表数据同步到 empsinfo_miggration 目标表中。

主要步骤如下:

  • 准备数据
  • 新建批量作业
  • 画布中拖拽关系型数据库输入图元
  • 配置"关系型数据库输入"组件属性
  • 配置"关系型数据库输出"组件属性
  • 通用配置
  • 保存草稿
  • 运行
  • 提交版本

# 准备数据

创建表 empsinfo 和 empsinfo_miggration 分别作为源表和目标表,并给源表 INSERT 一些数据。

-- ---------------------------------------
-- Table structure for empsinfo
-- ---------------------------------------
DROP TABLE IF EXISTS `empsinfo`;
CREATE TABLE `empsinfo` (
  `ID` int NOT NULL,
  `NAME` varchar(10) DEFAULT NULL,
  `AGE` decimal(3,0) DEFAULT NULL,
  `EMPNO` int DEFAULT NULL,
  PRIMARY KEY (`ID`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

-- ---------------------------------------
-- Table structure for empsinfo_miggration
-- ---------------------------------------
DROP TABLE IF EXISTS `empsinfo_miggration`;
CREATE TABLE `empsinfo_miggration` (
  `ID` int NOT NULL,
  `NAME` varchar(10) DEFAULT NULL,
  `AGE` decimal(3,0) DEFAULT NULL,
  `EMPNO` int DEFAULT NULL,
  PRIMARY KEY (`ID`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

-- ----------------------------
-- Records of empsinfo
-- ----------------------------
BEGIN;
INSERT INTO `empsinfo` (`ID`, `NAME`, `AGE`, `EMPNO`) VALUES (10001, 'WARD', 25, 7521);
INSERT INTO `empsinfo` (`ID`, `NAME`, `AGE`, `EMPNO`) VALUES (10002, 'JONES', 32, 7566);
INSERT INTO `empsinfo` (`ID`, `NAME`, `AGE`, `EMPNO`) VALUES (10003, 'BLAKE', 15, 7698);
INSERT INTO `empsinfo` (`ID`, `NAME`, `AGE`, `EMPNO`) VALUES (10004, 'SCOTT', 53, 7788);
INSERT INTO `empsinfo` (`ID`, `NAME`, `AGE`, `EMPNO`) VALUES (10005, 'KING', 22, 7839);
COMMIT;

# 新建批量作业

点击资源树节点上的【...】,选择弹出菜单【新建批量作业】。

mysql2mysql

填写作业名称、选择作业类型"离线转换"。

mysql2mysql

# 画布中拖拽关系型数据库输入图元

分别用鼠标拖拽"关系型数据库输入"和"关系型数据库输出"图元到画布。当鼠标放置到画布中的"关系型数据库输入"图元上时四周会显示"连接桩",此时拖住鼠标将"关系型数据库输入"与"关系型数据库输出"连接起来。

mysql2mysql

# 配置"关系型数据库输入"组件属性

在"关系型数据库输入"图元上右键,点击【编辑】按钮,弹出"关系型数据库输入"组件的弹窗。

mysql2mysql

通过下拉框选择数据源。

mysql2mysql

点击【获取SQL查询语句】,选择一个表名后点击【确定】按钮,SQL 语句自动回填到编辑框。用户也可以自行编写 SQL 语句。

mysql2mysql

mysql2mysql

mysql2mysql

点击【预览】按钮,可以在线查看对应SQL语句查询的数据列表。如果不想预览数据可以不用点击。

属性设置完毕请点击【确定】按钮。

mysql2mysql

# 配置"关系型数据库输出"组件属性

从下拉框中选择"数据源"。

mysql2mysql

从下拉框中选择"目标表"。用户也可以自行输入目标表,手工输入时请确保目标表存在,否则运行时会出错。

mysql2mysql

勾选【truncate】、【指定数据库字段】。

truncate:在数据同步前会先清空表。

指定数据库字段:当源表与目标表的字段名称不一样时,需要手工进行映射。

如果有更复杂的映射请点击【列映射】按钮进行映射。

如果需要添加新的字段映射时请点击【增加】按钮。

属性设置完毕请点击【确定】按钮。

mysql2mysql

# 通用配置

在通用配置中可以配置任务优先级、Worker 分组、命名参数、本地参数、超时告警。

mysql2mysql

# 保存草稿

如果所有组件属性都已设置完毕,点击【保存】按钮,可以看到保存过的历史草稿,并可以随意切换草稿。(草稿只保存最近 10 个)

mysql2mysql

# 运行

点击【运行】按钮,可以运行已经开发完毕的场景,在日志栏可以看运行日志及运行结果。

mysql2mysql

mysql2mysql

去目标表查看 empsinfo 源表数据已经同步到 empsinfo_miggration 目标表中。

# 提交版本

当草稿运行正常后,点击【提交】按钮可以将该版本提交到作业调度,每次修改提交都会生成新的版本,可以看到提交的历史版本,并可以随意切换版本。

提交后的版本,可以在作业调度中进行"定时"调度配置。

mysql2mysql

mysql2mysql

← 运维中心 MySQL表数据同步示例(替换SQL语句变量) →