大家都知道,ETL工具中,不管是ODI还是KETTLE,全量同步时,逻辑是先删除表数据,再连接数据源,再同步数据。这种情况下就有可能发生一件可怕的事情,数据源因为某种原因无法访问了,这就造成目标表清空了,如何解决?
在实践过程中建议采取四步法:
①新建大JOB,在JOB中添加“检查数据库连接”插件。
②在该插件后添加对应业务系统JOB作业。
③执行该大JOB时,首先检测数据源状态,若数据源状态异常,日志提示“不能连接到数据库”,即无法执行对应业务系统JOB作业(不对目标库数据做增删处理) 如下图1.1,若数据源状态正常,即继续执行对应业务系统JOB作业。
④建立对应大JOB调度,可通过执行日志进行查看执行情况,如下图1.2
![b95a95a28fa36ce40b456d51c3e656e0.png](https://i-blog.csdnimg.cn/blog_migrate/61028cc0c1d8d2b44159c8fb187d1fbc.jpeg)
图1.1
![31b1d840726db57505394967b0dd34fd.png](https://i-blog.csdnimg.cn/blog_migrate/974c9c28e4a06413258d9accaa61b0e9.jpeg)
图1.2
在这里也特别强调一下:新增大JOB时,尽量一对一新增(一个大JOB对应一个业务系统),在新增“检查数据库连接”插件中,只选择单业务系统数据。如下图1.3
![2862a3e396682d4b895ea812e5e61a94.png](https://i-blog.csdnimg.cn/blog_migrate/17e92992262f14c3361c7235409b988c.jpeg)
图1.3
关注希嘉工程师,聊聊数据治理那些事!