普元数据开发平台 普元数据开发平台
产品介绍
安装部署
快速入门
操作指南
应用集成
FAQ
  • CDC通过SQL组件为目标表指定字段插入时间戳数据示例
  • 环境准备说明
  • 准备数据
  • 新建同步作业
  • 拖拽图元
  • 配置组件属性
  • 运行
  • 查看数据
  • 提交版本

# CDC通过SQL组件为目标表指定字段插入时间戳数据示例

在对数时,需要排查同步数据是否正确,经常会给目标表的某个字段插入时间戳数据。

本示例主要演示从 MySQL CDC数据源中的 depts 表中实时读取数据,通过SQL组件获取时间戳数据,给数据添加一个时间戳数据,并写入MySQL数据源的 depts_miggration 表中。

主要步骤如下:

  • 环境准备说明
  • 准备数据
  • 新建同步作业
  • 拖拽图元
  • 运行
  • 查看数据
  • 提交版本

# 环境准备说明

增量同步与多表迁移的向导界面类似,且都支持多表增量同步。与多表迁移的不同点在于,增量同步不是一次性将数据从源表同步到目标表,而是源表的数据发生变化(增加、修改、删除)时才会同步到目标表。

⚠️ 提示:

1、源表和目标表都必须定义主键;

2、目标表不存在时,模型运行时会自动创建表,和源表结构一致;

3、目标表存在时,要确保源表与目标表的数据结构、字段类型一致,且定义主键。同时源表开启了 cdc 配置。

# 准备数据

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

目标表比源表多个接收时间戳数据的字段

-- ---------------------------------------
-- Table structure for depts
-- ---------------------------------------
DROP TABLE IF EXISTS `depts`;
CREATE TABLE `depts` (
  `DEPTNO` int NOT NULL,
  `DNAME` varchar(100) DEFAULT NULL,
  `LOC` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`DEPTNO`)
);

-- ---------------------------------------
-- Table structure for depts_miggration
-- ---------------------------------------
DROP TABLE IF EXISTS `depts_miggration`;
CREATE TABLE `depts_miggration` (
  `DEPTNO` int NOT NULL,
  `DNAME` varchar(100) DEFAULT NULL,
  `LOC` varchar(100) DEFAULT NULL,
  `C_TIME` TIMESTAMP DEFAULT NULL,
  PRIMARY KEY (`DEPTNO`)
);

-- ----------------------------
-- Records of depts
-- ----------------------------
BEGIN;
INSERT INTO `depts` VALUES(70,'Lisa','ShangHai');
INSERT INTO `depts` VALUES(80,'Mike','New York');
COMMIT;

# 新建同步作业

点击数据同步上的【...】,选择弹出菜单【新建数据同步作业】,作业名称为:cdc-目标表加时间戳数据。

# 拖拽图元

依次拖拽数据源中的CDC组件、转换中的SQL组件和目标中的关系型数据库组件,依次连线。如下图所示:

cdcsource

# 配置组件属性

1、双击"CDC"组件,根据下图所示步骤依次配置基础信息、同步表配置、可选配置(示例使用默认值)。

cdcsource

2、双击"SQL"组件,根据下图所示步骤依次配置。

cdcsource

3、双击"关系型数据库"组件,根据下图所示步骤依次配置基础信息和数据库写入,其他的都用组件默认配置。

cdcsource

4、Ctrl+S保存该模型。

# 运行

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

cdcsource

# 查看数据

通过 SQL 客户端可以查看源表 depts 的数据已经同步到目标表 depts_miggration 中。通过数据库函数 NOW() 获取的时间戳数据插入到了目标表 depts_miggration 的 C_TIME 字段。

cdcsource

# 提交版本

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

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