变化数据捕获(CDC)技术是ETL工作中的重点和难点,通常需要在增量抽取时完成。实现变化数据捕获时最理想的是找到源系统的DBA。如果不能找到,就需要ETL项目组自己进行检测数据的变化。下面是一些常用的技术。
1.采用审计列
审计列指表中如“添加日期”、“修改日期”、“修改人”等信息的字段。应用程序在对该表的数据进行操作时,同时更新这些字段,或者建立触发器来更新这些字段。采用这种方式进行变化数据捕获的优点是方便,容易实现。缺点是如果操作型系统没有相应的审计字段,需要改变已有的操作型系统的数据结构,以保证获取过程涉及的每张表都有审计字段。
2.数据库日志
DBMS日志获取是一种通过DBMS提供的日志系统来获得变化的数据。它的优点是对数据库或访问数据库的操作系统的影响最小。缺点是要求DBMS支持,并且对日志记录的格式非常了解。
3.全表扫描
全表扫描或者全表导出文件后进行扫描对比也可以进行变化数据捕获,尤其是捕获删除的数据时。这种方法的优点是,思路清晰,适应面广,缺点是效率比较差。 |