Press "Enter" to skip to content

ETL相关技术介绍

ETL相关技术介绍

 

ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程

 

简介

 

ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据, ETL是BI(商业智能)项目重要的一个环节

 

数据中心整体架构

ODS——操作性数据
DW——Data warehouse 数据仓库
DM——Data Mart 数据集市

 

数据抽取

 

数据抽取指把ODS源数据抽取到DW中,然后处理成展示给相关人员查看的数据

 

源数据:

 

用户访问日志

 

自定义事件日志、操作日志

 

业务日志

 

各服务产生的日志

 

系统日志:操作系统日志,CDN日志等

 

监控日志

 

其它日志

 

抽取频次:

 

如果没有特殊要求可以一天一次,但是需要避开拉去日志的高峰期

 

对于有实时性要求的日志,可以一小时一次,或者直接使用kafka等相关工具收集,需要考虑到系统能否承受

 

1. 抽取策略:

 

由于数据量较大,一般都是采用增量抽取,但是对于一些特殊场景的数据,比如订单数据,由于订单的状态会发生变化,并且订单的量级是可预知和相对较少的,就需要采用全量拉取的策略

 

对于增量拉取的日志,如果是文件类型,可以在文件名称上追加日期,例如 server_log_2018082718.log,这样就可以满足按小时拉取的需求

 

对于源数据的保留,考虑到突发情况,服务器上的源数据至少要保证2天以上的时间

 

2. 数据转换、清洗

 

数据转换、清洗把不需要的和不符合规范的数据进行处理。数据清洗最好不要放在抽取的环节进行,考虑到有时可能会查原始数据。一般各公司都会有自己的规范,以下列出几点仅供参考

 

数据清洗主要包括以下几个方面:

 

 

    1. 空值处理;根据业务需要,可以将空值替换为特定的值或者直接过滤掉;

 

    1. 验证数据正确性;主要是把不符合业务含义的数据做一处理,比如,把一个表示数量的字段中的字符串替换为0,把一个日期字段的非日期字符串过滤掉等等;

 

    1. 规范数据格式;比如,把所有的日期都格式化成yyyy-MM-dd HH:mm:ss的格式等;

 

    1. 数据转码;把一个源数据中用编码表示的字段,通过关联编码表,转换成代表其真实意义的值等等;

 

    1. 数据标准,统一;比如在源数据中表示男女的方式有很多种,在抽取的时候,直接根据模型中定义的值做转化,统一表示男女;

 

 

3. 数据加载

 

数据拉取,清洗完之后,就需要展示了。一般是把清洗好的数据加载到mysql中,然后在各系统中使用,或者使用Tableau直接给相关人员展示

 

4. ETL相关工具

 

数据抽取工具:

 

kafka

 

flume

 

sync

 

数据清洗

 

hive/tez

 

pig/tez

 

storm

 

spark

 

其它工具

 

数据存储:hadoop、hbase,ES、redis

 

任务管理:azkaban、oozie

 

数据同步:datax、sqoop

 

5.ETL过程中的元数据

 

元数据管理系统对于数据仓库来说是必须的,并且相关人员必须定时维护,如果元数据和数据仓库中的变动不同步,那幺元数据系统就形同虚设。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注