上一篇介绍了数据产品开发过程中的数据采集部分,本篇主要讲述数据ETL的部分。

数据ETL概述

ETL:是Extract-Transform-Load的缩写,即从来源端的数据抽取(Extract)、转换(Transform)、加载(Load)到目的端的过程。

从数据采集到数据ETL的目的是将数据处理成可用数据,将不规范的,仍有其他释义的转化为可用的,统一的规范的数据,用于数据仓库的建设。

经验和教训

1.ETL转换过程中的几点经验:

a.空值处理:捕获字段空值,将其进行加载或条换为其他含义的数据,并可以根据字段空值实现分流加载到其他部门的数据库中,方便该业务团队进行分析;

b.规范化数据格式:对于数据中时间、数值、字符等数据,进行规范化处理,变成统一的格式;

c.拆分数据:根据业务需求对字段进行分解。如:2015-06-07 11:11:11 分为2015年,6月,7日,方便后续数据组织;

d.验证数据的正确性:ETL的数据需要保证可被数据进行验证,保证数据的准确性;

e.数据替换:对于因业务因素,完成无效数据、缺失数据的替换;

2.ETL的几点注意事项:

a.ETL的数据过程为主动"拉取",而不是业务数据定时数据推送,提高对ETL的可控性;

b.关键数据标准至关重要。ETL面临的最大挑战是各数据源的结构不同。

网上找了个例子进行说明:

以电信为例,A系统按照统计代码管理数据,B系统按照账目数字管理,C系统按照语音ID管理。当ETL需要对这三个系统进行集成以获得对客户的全面视角时,这一过程需要复杂的匹配规则、名称/地址正常化与标准化。而ETL在处理过程中会定义一个关键数据标准,并在此基础上,制定相应的数据接口标准。   

我们在做的

1.从多业务数据库Mysql采集数据进行ETL,会产生多个JOB;

2.从MongoDB数据采集数据进行ETL,会产生多个JOB;

3.对于JOB的任务调度管理