ETL主要有四种实现模式,分别是触发器模式,增量字段,全量同步,日志对比。
各种模式的优缺点如下所示:
- 触发器模式:
优点:数据抽取的性能高,ETL加载规则简单,速度快,也不需要修改业务系统表结构,也可以实现数据的增量加载。
缺点:要求业务表建立触发器,对业务系统有一定的影响,容易对原数据库构成危险。
- 增量字段:
优点:抽取性能比较高,系统设计清晰,源数据抽取相对清楚,简单,可以实现数据的增量加载。
缺点:时间车维护需要由业务系统来完成,这对业务系统有很大的侵入性。对不支持时间车的自动更新的数据库还要求业务系统也要进行额外的更新时间戳操作,此外无法捕获对时间戳以前数据的delete和update操作,在数据准确性上受到了一定的限制。
- 全量同步:.
优点:这对已有的系统表结构不会造成影响,无需修改业务操作的程序,所有的抽取规则也需要由l来完成管理维护统一也可实现数据的增量加载,并且没有什么风险。
缺点:相比较而言,全量同步模式的比对较复杂,设计较复杂,且运行速度较慢,全表比对方式是被动的,当表中没有主见或者是唯一列且含有重复记录时,全表比对方式的准确性较差。
- 日志对比:
优点: ETL同步效率较高,不需要修改业务系统表结构,可实现数据的增量加载。
缺点:业务系统数据库版本与产品不统一,其实现相对复杂,在深入研究的情况下才能实现,除此之外,也可通过第三方工具来实现。