什么是ETL?



  下午开了部门会议,ETL组和前端组都有参加。ETL组的一个学姐和大家分享了,ETL工具informatic和kettle的简单介绍和使用。最主要的收获是kettle工具开源,学习成本低,面向用户友好。
  作为前端组的我,暂时知道这么多就够了,但是我是真不明白ETL到底是什么意思,只知道这是英文字母首写,Extract(抽取),transform(转换)和load(加载)这些单词的字面意思。对于单词后面的意思没做过多深入。正好朋友那有本《数据仓库设计:现代原理与方法》,反正闲来无事,拿来读读也未尝不可。
  下面我将记录我认为比较重要的几句话。
提取:

1. 提取阶段从数据源中获取相关数据,第一次填充数据仓库时可以静态提取。
2. 增量提取用于定时更新数据仓库,基于操作型DBMS维护的日志,时间戳会让提取更顺畅。
3. 提取过程也可以基于数据源驱动的,类似QlikSense中的ODBC和OLEDB。
4. 提取数据时要注意数据的质量,主要体现在数据准确,数据格式,数据清晰程度三个方面。

清洗:

1. 清洗的目的是提高数据质量
2. 哪些情况会使数据变脏:
    数据重复,例如快递系统多次记录一个用户。
    关联错误,比如地址和邮编。
    缺少数据,比如性别。
    意外字段,比如使用socialSecurityNumber字段存储用户的电话号码。
    不可能值,比如邮寄时间为2017-22-5
    命名差异,比如杭州市拱墅区和杭州拱墅的不一致。
    输入错误,比如错误输入电话号码。
3. ETL工具的清洗功能主要是:纠正,均质化。使用特殊字典纠正错误或同义词,基于规则强制实现域的规则,定义值间关联。

转换:

1. 自由文本可能含有隐藏价值信息。例如JS缩写,没有标明这是一种大前端领域语言。
2. 为个体数据可以使用不同格式。例如日期可以存储为2017/5/22或者2017-5-22。
3. 转换 过程,存储格式和度量单位
4. 匹配 过程,不同数据源相同名字字段匹配,QlikSense可以自动匹配,除非加qualify,为字段添加表名。
5. 选择 过程,减少数据字段和记录数量。


加载:

1. 刷新。
  彻底重写数据仓库数据,这意味着替换旧数据。刷新通常与静态提取一起使用,以第一次填充数据仓库。
2. 更新。
  只将对数据源数据的改动添加到数据仓库中。执行更新时,通常不会删除或者更改现有的数据。这种技术与增量提取一起使用来定期更新数据仓库。
趁你还年轻 wechat
欢迎扫码关注我的微信公众号!