首先我们说说什么是ETL,英文Extract-Transform-Load,用来描述将数据从源端经过抽取,转换,加载至目的端得过程,ETL常用于再数据仓库,但其对象并不限于数据仓库。
ETL主要得环节为数据抽取,数据转换,数据加载,在抽取过程中有几种方式:全量抽取和增量抽取。ETL
全量抽取:将数据表或视图完全从源库抽取出来,转换成ETL工具可识别的格式。
增量抽取:抽取自上次抽取结果变化得数据,包括增加或修改,因此捕获数据变化尤为关键,要准确性和高效性,一般捕获数据变化有几种方式:
1) 触发器:一般建立新增,修改,删除三个触发器,当触发器检测到对应的库表操作时,抽取线程从临时表抽取数据。
2)时间戳:一种基于快照比较得变化数据捕捉方式,源表增加一个时间字段,更新数据时同时更新时间戳,这样在统计数据做对比时,可以根据系统时间与时间戳字段抽取数据做对比。
ETL工具:Powercenter,Apache Camel,Apache Kafka,Heka,Kettle
数据仓库更多的是对管理决策过程的支持,主要表现为四个特点:
1.面向主题:更多的是针对一个明确定义主题,保留与其相关的数据,摒弃掉不相关得数据。
2.集成的:将不同的数据源集成到一个数据源,做统一的ETL处理。
3.不可修改的:数据装载以后