普元数据集成平台 普元数据集成平台
产品介绍
安装部署
快速入门
操作指南
FAQ
  • PDI-关系型数据库同步示例
  • 准备数据
  • 新建通用模板作业
  • 配置多表迁移属性
  • 通用配置
  • 指标日志
  • 保存草稿
  • 运行
  • 提交版本

# PDI-关系型数据库同步示例

本示例主要介绍Primeton DI处理引擎下,使用关系型数据库进行单表迁移、多表数据迁移、整库数据迁移的全量同步场景。

单表迁移:将关系型数据源的一张表的数据迁移到另一个数据源。

多表迁移:将关系型数据源的多张表的数据迁移到另一个数据源。

整库迁移:将关系型数据源的所有表的数据迁移到另一个数据源。

主要步骤如下:

  • 准备数据
  • 新建通用模板作业
  • 配置多表迁移属性
  • 通用配置
  • 指标日志
  • 保存草稿
  • 运行
  • 提交版本

# 准备数据

以 MySQL 数据库为例。创建两个数据库:dws_source_dev、dws_front_dev,在数据库 dws_source_dev 中创建一个表 t_xueji。

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for t_xueji
-- ----------------------------
DROP TABLE IF EXISTS `t_xueji`;
CREATE TABLE `t_xueji` (
  `id` int(11) DEFAULT NULL,
  `xuehao` varchar(255) DEFAULT NULL,
  `banji` varchar(255) DEFAULT NULL,
  `xueji` varchar(255) DEFAULT NULL,
  `xingbie` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of t_xueji
-- ----------------------------
BEGIN;
INSERT INTO `t_xueji` (`id`, `xuehao`, `banji`, `xueji`, `xingbie`) VALUES (1, '2023-0001', '1班', 'H', 1);
INSERT INTO `t_xueji` (`id`, `xuehao`, `banji`, `xueji`, `xingbie`) VALUES (2, '2023-0002', '1班', 'H', 1);
INSERT INTO `t_xueji` (`id`, `xuehao`, `banji`, `xueji`, `xingbie`) VALUES (3, '2023-0003', '1班', 'H', 0);
INSERT INTO `t_xueji` (`id`, `xuehao`, `banji`, `xueji`, `xingbie`) VALUES (4, '2023-0004', '1班', 'H', 0);
INSERT INTO `t_xueji` (`id`, `xuehao`, `banji`, `xueji`, `xingbie`) VALUES (5, '2023-0005', '1班', 'H', 1);
INSERT INTO `t_xueji` (`id`, `xuehao`, `banji`, `xueji`, `xingbie`) VALUES (6, '2023-0006', '1班', 'X', 0);
INSERT INTO `t_xueji` (`id`, `xuehao`, `banji`, `xueji`, `xingbie`) VALUES (7, '2023-0007', '1班', 'X', 0);
INSERT INTO `t_xueji` (`id`, `xuehao`, `banji`, `xueji`, `xingbie`) VALUES (8, '2023-0008', '1班', 'X', 1);
INSERT INTO `t_xueji` (`id`, `xuehao`, `banji`, `xueji`, `xingbie`) VALUES (9, '2023-0009', '1班', 'X', 0);
INSERT INTO `t_xueji` (`id`, `xuehao`, `banji`, `xueji`, `xingbie`) VALUES (10, '2023-0010', '1班', 'X', 2);

COMMIT;

SET FOREIGN_KEY_CHECKS = 1;

# 新建通用模板作业

点击资源树节点上的【...】,选择弹出菜单【新建通用模板作业】,填写"模板名称",选择"模板类型",点击【确定】按钮。

multi

multi

# 配置多表迁移属性

第一步,选择来源的"数据源名称"、"数据库名称"、"表",点击【下一步】按钮。

⚠️ 提示:单表迁移时选择一张表,多表迁移时选择多张表,整库迁移时选择全部表。

multi

第二步,选择目标的"数据源名称"、"数据库名称",点击【下一步】按钮。

multi

第三步,将来源表与目标表的名称进行映射,点击【确定并保存】按钮。

multi

⚠️ 提示:默认来源表与目标表的表名称一样,用户可以修改"目标表名称"。

# 通用配置

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

可以参考示例关系型表数据同步示例 中的"通用配置"说明。

# 指标日志

在指标日志中可以设置是否启用指标日志,当开启后,可以在【作业调度-【任务实例】中使用“查看数据量”统计数据量。

multi

image-20240514135250028

# 保存草稿

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

可以参考示例关系型表数据同步示例 中的"保存草稿"说明。

# 运行

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

multi

可以在目标数据库表中看到已经迁移过去的数据库表 t_xueji 及数据。

⚠️ 提示:目标表不存在时会自动创建。

multi

# 提交版本

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

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

可以参考示例关系型表数据同步示例 中的"提交版本"说明。

← Elasticsearch 同步到 MySQL示例 PDI-关系型数据库到Hive同步示例 →