作为非科班出身的产品,对于数据产品还有很多基础概念还不是很了解,因此最开始,我们先一起来理清概念。
ETL
常说的ETL是个缩写,就是extract-transform-load的缩写 ,即抽取-转换-加载。该过程会对不同来源(或系统)的大量原始数据进行提取、转换、并且按照一定的格式存储在数据平台的贴原层(ODS)中。
ETL的第一步是数据提取,解决数据来源问题
数据来源分为以下三类:
? ? a.业务系统数据库,通常是关系型数据库,类似mysql\sqlserver之类
? ? b.文件数据,例如服务器运行的log或者埋点收集的日志文件
? ? c.购买的第三方数据
其中又以ab两种数据来源最为常见。
数据提取一般会将数据存到缓存区,例如load层,数据下一步的转换操作。
ETL的第二步是数据转换,解决数据质量问题
这一步也就是常说的数据清洗。
数据清洗包括下面内容:
1.筛选? 筛选即去掉没有分析价值的字段,保留有用的数据
2.清理? ?例如缺失值的填充、枚举值的映射、编码转化为可识别符号等。一般来说,原则上不会去改源数据,所以这一步的操作需要谨慎
3.合并? 将多个属性进行合并
4.格式转换? ?例如,时间戳转为时间格式,增加时区,便于分析;
5.拆分? 将单属性拆分为多属性,例如详细地址,拆出省、市
6.计算? 进行简单的计算,例如出生日期计算出年龄
数据清洗一定不能改变源数据的含义,此步的原则就是对尽量保留源数据,尽量满足更多分析需求
ETL的第三步是数据加载,解决数据更新问题
数据加载分为全量加载和增量加载。
具体选择哪种方式需要看两点:1.源系统数据更新频次? 2.源系统数据量大小
如果更新频次低且数据量小,往往采用全量加载,全量加载的优点是简单,数据基本和源数据一致。但当源数据数据量较大时,就会出现单次加载时间过长的问题,此时就应该开始考虑使用增加加载
至此,ETL的概念进行了简单的梳理,其实在进行深挖还有很多内容,比如具体怎么进行增量抽取等,这些后面慢慢更新~