# 执行 SQL 示例
本示例主要介绍用于两个不同数据库表的数据同步场景开发。
该场景的执行效果是先执行删除数据库表STUDENT_INFO的数据,然后将STUDENT_INFO的数据同步到STUDENT_INFO1中。主要步骤如下:
- 准备数据
- 新建批量作业
- 画布中拖入执行SQL脚本图元、关系型数据库输入图元、关系型数据库输出图元
- 配置"执行SQL脚本"组件属性
- 配置"关系型数据库输入"组件属性
- 配置"关系型数据库输出"组件属性
- 通用配置
- 保存草稿
- 运行
- 提交版本
# 准备数据
创建表 STUDENT_INFO 和 STUDENT_INFO1 分别作为源表和目标表,并给源表 STUDENT_INFO 中初始化一些数据。
CREATE TABLE STUDENT_INFO(
ID INT(10),
NAME VARCHAR(20),
SEX VARCHAR(20),
AGE INT(10),
PHONE VARCHAR(20)
);
CREATE TABLE STUDENT_INFO1(
ID INT(10),
NAME VARCHAR(20),
SEX VARCHAR(20),
AGE INT(10),
PHONE VARCHAR(20)
);
INSERT INTO STUDENT_INFO(ID, NAME, SEX, AGE, PHONE) VALUES(1, 'TOM', '男', 23, '110');
# 新建批量作业
点击资源树节点上的【...】,选择弹出菜单【新建批量作业】。
填写作业名称、选择作业类型"离线转换"。
# 画布中拖拽关系型数据库输入图元
画布中拖入执行SQL脚本图元、关系型数据库输入图元、关系型数据库输出图元。
# 配置"执行SQL脚本"组件属性
在"执行SQL脚本"图元上右键,点击【编辑】按钮,弹出"执行SQL脚本"组件的弹窗。选择"数据源"、编写 SQL 语句后点击【确定】按钮。此处数据源为执行 SQL 语句所在数据源。其他用属性用默认配置。
# 配置"关系型数据库输入"组件属性
在"关系型数据库输入"图元上右键,点击【编辑】按钮,弹出"关系型数据库输入"组件的弹窗。通过下拉框选择数据源。
点击【获取SQL查询语句】,选择一个表名后点击【确定】按钮,SQL 语句自动回填到编辑框。用户也可以自行编写 SQL 语句。
点击【预览】按钮,可以在线查看对应SQL语句查询的数据列表。如果不想预览数据可以不用点击。
属性设置完毕请点击【确定】按钮。
# 配置"关系型数据库输出"组件属性
在"关系型数据库输出"图元上右键,点击【编辑】按钮,弹出"关系型数据库输出"组件的弹窗。从下拉框中选择"数据源"。
从下拉框中选择"目标表"。用户也可以自行输入目标表,手工输入时请确保目标表存在,否则运行时会出错。
不要勾选【truncate】、勾选【指定数据库字段】。
truncate:在数据同步前会先清空表。
指定数据库字段:当源表与目标表的字段名称不一样时,需要手工进行映射。
如果有更复杂的映射请点击【列映射】按钮进行映射。
如果需要添加新的字段映射时请点击【增加】按钮。
属性设置完毕请点击【确定】按钮。
# 通用配置
在通用配置中可以配置任务优先级、Worker 分组、命名参数、本地参数、超时告警。 修改属性后请务必点击【确定】按钮。
可以参考示例关系型表数据同步示例 中的"通用配置"说明。
# 保存草稿
如果所有组件属性都已设置完毕,点击【保存】按钮,可以看到保存过的历史草稿,并可以随意切换草稿。(草稿只保存最近 10 个)
可以参考示例关系型表数据同步示例 中的"保存草稿"说明。
# 运行
点击【运行】按钮,可以运行已经开发完毕的场景,在日志栏可以看运行日志及运行结果。
下图为"执行 SQL脚本"之前的数据。
下图为"执行 SQL 脚本"之后,数据被删除了。
# 提交版本
当草稿运行正常后,点击【提交】按钮可以将该版本提交到作业调度,每次修改提交都会生成新的版本,可以看到提交的历史版本,并可以随意切换版本。
提交后的版本,可以在作业调度中进行"定时"调度配置。
可以参考示例关系型表数据同步示例 中的"提交版本"说明。