一、.ETL体系结构
数据库--->抽取---> 转换--->加载--->目的数据源
二、ETL抽取方案
1).全量抽取
全量抽取类似于数据迁移或数据复制,它将数据源中的表或视图的数据原封不动的从数据库中抽取出来,并转换成自己的ETL工具可以识别的格式,全量抽取比较简单。全量抽取一般只在系统初始化时使用,全量一次后,就要每天采用增量抽取。
2).增量抽取
增量抽取只抽取自上次抽取以来数据库中要抽取的表中新增或者修改的数据。在ETL使用中,增量抽取使用更加广泛。
怎样获取变化的数据是增量抽取的关键。对于捕获方法的要求一般有:准确性,一致性,完整性,性能。
准确性:能够将业务系统中的变化数据按一定的规则准确的捕获到。
一致性:源表和目标表中数据的一致。不能有字段的不一致。
完整性:要求源表中应该放入到目标表中的数据均被放入到目标表中。
性能:因为一个公司晚上一般有大量的跑批,像我们公司,从凌晨12点开始,N个系统排队跑批,一般排到早上七八点钟。所以这就要求性能一定要优。不能对业务系统造成太大的压力,影响现有业务。
目前增量数据抽取中常用的捕获变化数据的方法有:
1.时间戳
在源表上增加一个时间戳字段,当系统中更新修改表数据的时候,同时修改时间戳字段。当进行数据抽取的时候,通过时间戳来抽取增量数据。
优点:性能比较好。ETL系统设计清晰,源数据抽取相对清楚简单