ETL : 从 数据库或者文本文件 中抽取 数据 到 数据仓库 的过程。
指标:关联、转换、增量、调度和监控
抽取方式:
全量抽取:类似于数据迁移。
增量抽取:
触发器:源表数据的 insert,update,delete动作触发写入一个临时表,只对临时表的数据进行抽取。缺点:会对业务数据库造成一定压力。
时间戳:通过时间字段锁定抽取范围,有的数据库支持时间自增字段,不支持的需要自己维护时间字段,对数据的侵入性较大。
全表比对:采用 MD5 校验码,MD5 临时表中存储与原表数据对应的主键,以及根据全表数据计算出来的MD5校验码。下次抽取时对源表中的数据根据主键从MD5 临时表中进行查询,未查询到则是新增,查询到则比对 MD5 校验码,相同则丢弃,不相同则更新。
日志比对:oracle 的ODC 就是典型的代表。
数据转换和加工:
ETL引擎转换和加工:组件化,可插拔
字段映射、数据过滤、数据清洗、数据替换、数据计算、数据验证、数据加解密、数据合并、数据拆分
数据库查询时转换和加工:通过 Sql 中的函数转换及重命名。
总的来说:一般直接通过sql去转换会比较方便,如果搞不定,则通过ETL转换。
常见的ETL工具: Datastage、PowerCenter、Automation、udis(睿智)ETL