上篇文章,我们一起学习了数据产品经理日常中接触最多的“数据仓库”的一些基本概念和常见的一些专用名词,他们都是数据产品经理成长,学习和实操中不可或缺的重要一环。
在数据仓库中,我们第一步要面临并且要完成的就是数据“处理”。这里的处理是个广义的词,包含所有和数据相关的一系列操作,专业名词就是 ETL。
本文的结构如下
- 什么是 ETL
- ETL 中的实际应用
- ETL 的常见工具
- 总结
什么是 ETL
首先我们看一下ETL的英文全称,ETL(Extract-Transform-Load),很明显哈,这是一个流程:抽取(Extract)-转换(Transfrom)-储存(Load)。所以数据的一切有关抽取、转换、储存的任务都属于 ETL,这就类似产品经理常做的一件事:需求调研。客户调研、用户画像、竞品分析、市场数据收集等等任务都属于需求调研,这是做产品的第一步也是最重要的一步,如果把产品和技术明确的划分开来,这里的技术大佬做得 ETL 就相当于产品经理做的需求调研。(其实岗位本没有界限,这只是为了方便理解概念的一个比喻)
这是*勾de ETL 工程师的 BD
ETL 的实际应用
上篇文章我们已经有一个明确的思维,所有的数据分析都是建立在业务之上,旨在为企业的业务提供管理决策上的依据、运维的数据可视化、产品迭代更新的方向指引等等,既然数据最后的服务回归到业务和产品,那么在 ETL 阶段,所有的流程、设计、细节都应该为后面的工作做好铺垫,这样会让后面的工作进行得更顺利、产出更符合老板“口味”、数据视角更加尖锐等等。
ETL 的设计,大概可以分为5个步骤进行,当然不同的公司可能不同。
1.确定目标。
2.确定度量。
3.确定数据颗粒度。
4.确定维度。
5.创建事实表。
接下来,我们把这5个流程分别介绍一下,你可以对照我举的例子,一起来联想思考自己的业务,这样就能达到即学即用。
确定目标。
这个非常重要,就是你要明确自己的目标,当前你所做的事,你希望解决什么?带来哪些价值?呈现哪些内容?以及后面的衍生扩展等等。这个和做产品一样,从最基本的需求出发,任何一个产品的面世,总是:解决了什么,提供了什么,创造了哪些价值。还是拿我上篇文章的例子,我的目标很明确,就是找出“开年后还没有进入工作状态的有哪些人”。目标不分大小,如找出沉睡用户、确定双十一爆款商品、挖掘用户的听歌习惯、算出用户最感兴趣的媒体内容等等,都算是确定目标,如果你们企业或者公司只是因为“大数据”很火,然后去走这个形式,很肤浅也很危险。确定度量。
主题确定之后,我们就要考虑要达到这个目标,我们需要分析什么。如:找出利润增长缓慢的原因。可以从以下几个度量入手找数据:客户变少?产品和服务质量下降?材料成本变高?竞品的的市场排挤?等。这个度量就是要分析的数据,也就是直接导致问题发生的原因,我觉得有些话从富有经验的人并且在恰到好处的时候说出来感触很深,“没有包治百病的药,所有解决方法都应该是对症下药”。所以在确定度量的时候,除了丰富的业务能力外,需要有一定的逻辑洞察力,你知道增长利润缓慢上面几条原因都有可能,但是抛给你那个问题,你能把数据抽出来和幼儿园的孩子排队一样,一个个的罗列分析吗?这个需要天赋更多的是需要学习,不断的更新自己的思维模式,看得多了,自然懂的就多。-
确定数据的颗粒度
这是基于上个度量展开的,确定度量之后,我们拥有的数据不可能这么全面,所以数据的颗粒度是需要前期明确的。如材料成本变高,是因为材料本身的成本?还是人工成本?或者广告成本?以及促销成本?等等。这就是数据颗粒度的确定,分析可以无休止的下钻,但是对于不同的模型,好的数据结构应该是恰到好处,起到画龙点睛的作用,不冗杂,不多余的。
确定维度
首先我们不要混淆“确定度量”和“确定维度”这两个概念,维度是一个空间概念,有一定的“方向”含义,比喻:按照时间、按照地区、按照产品;这里的时间、地区、产品就是我们分析的不同维度,他们从不同的方向上提供具有代表性的数据。时间,可得到爆发式、周期式、“日出而坐日落而息”的习惯式的数据;地区,可得到区域性、分布性、文化特色等数据;产品,可得到用户的操作流程、使用习惯、寻求客服等数据。-
创建事实表
如果对事实表不清楚的同学,可以看看上篇文章。当所有的数据分析准备工作做妥当了,展现在你面前的就是海量的数据,你需要加载一张最后最希望看到的数据表。
比喻以下笔者的几张截图,图中展现的数据内容,就是你在事实表中应该储存的内容
ETL 常见的工具
抽取:Sqoop、Kettle、Flume等
储存:Hive、HDFS、Hbase等
转换其实每个过程都会涉及一些,每个步骤根据不同的要求,都会调整一些参数或者执行一段 SQL。
这是一个工具在实际案例中使用时的截图
总结
任何一个方法论都不是万能的,也没有一个企业可以开源一套“包治百病”的工具出来,工具没有好坏之分,只有在特定的业务场景下,谁能发挥更大的作用之别。掌握这些方法就是让你在使用过程中有一个参考标准和约束条件,ETL 是建立数据仓库的重要一环,无论是产品还是技术,这个过程都应该下工夫,磨刀不误砍柴工就是这个道理,当一切准备就绪,接下来就是见证奇迹的时刻。