Kettle中进行DDL同步
1、监测DDL变化
开发者需要通过读取流字段来获取源表结构和目标表结构,并将这些信息分别写入两个文件。
之后,Kettle会通过比对这两个文件来获取字段之间的差异,开发者基于此进行自定义的后续处理。
2、DDL同步
Kettle监测到源端和目标端的结构差异后,如果目标库中没有相应的表,Kettle会生成创建表的SQL语句。
如果目标库中已有表,Kettle会检查字段是否存在差异,并在有差异的情况下生成ALTER语句来进行DDL同步;如果没有字段差异,Kettle会通过弹框告知开发者。
FDL中进行DDL同步
1、源表结构变化监测
FDL数据同步节点提供了「源表结构变化监测」选项,开发者只需要勾选此选项,节点在执行时就会自动获取源端表结构,并与当前配置的表结构进行比对。如果检测到表结构变化,FDL会通过「任务控制」中的「结果通知」功能自动通知指定用户,用户可以及时进行任务调整。
与此同时,开发人员在数据同步过程中,若来源段出现表结构变化,FDL会提示开发人员进行「更新字段映射」和「更新目标表」。
2、更新字段映射
若任务的数据来源是主流数据库SQLServer、Oracle、PostgreSQL和MySQL,用户可以直观地查看到增删改字段的变化情况,进入更新字段映射界面,点击确认即可根据来源表字段变化更新字段映射。
3、更新目标表
当数据同步任务的数据去向选择「已存在表」时,若来源表字段相较之前有变化,点击更新目标表按钮就可以对目标表进行调整,支持选择已有目标表字段,也可以手动输入新字段,确认对应映射关系变化后,即可自动生成目标表DDL语句并执行。