1 数据源形式
从操作型数据源获取数据.
(1) 结构化数据:可以采用直连数据库的方式进行抽取,一般采用JDBC.优点是数据抽取效率高,但会增加数据库负载,因此需要控制抽取时间,一般选择在凌晨进行结构化数据的抽取.也可以通过数据库日志方式进行抽取,这种方式对数据库产生的影响极小,但需要解析日志
(2) 半结构化数据和非结构化数据:一般采用监听文件变动.优点是比较灵活,可以实时抽取变动的内容,但需要解决增量抽取和数据格式转换等问题.
2 抽取策略
2.1 全量抽取
每次ETL操作均删除目标表数据,由ETL全新加载数据.用来抽取数据量很小并且易处理的数据,如维度表.
特点:抽取规则简单,速度快.
2.2 增量抽取
2.2.1 通过增量标识
抽取时利用属性列来判断哪些数据是增量数据,只抽取这些数据.常见的属性列有更新时间和自增序列.
优点:ETL系统设计清晰,源数据抽取相对清楚简单,速度快.
缺点:时戳维护需要由来源表系统完成,需要修改来源表的结构.工作量大,改动面大.
2.2.2 通过日志表
在来源表系统中添加系统日志表,当业务数据发生变化时,更新维护日志表内容.当ETL加载时,通过读日志表数据决定抽取哪些数据及如何抽取.例如使用Mysql的binlog.
优点:不需要修改来源表结构,源数据抽取清楚,速度较快.
缺点:日志表维护需要由来源表系统完成,维护较为麻烦.
2.2.3 数据合并策略
可根据主键值进行插入与更新的判定,或者根据时间节点分割数据.
3 抽取流程
①确定数据源:数据源的访问方式及抽取方法,数据源的形式等.
②建立逻辑映射:确定来源表结构与目标表结构的映射关系、数据转换规则.
③确定数据抽取策略
④抽取数据并核对,并评估性能.