各位数据的朋友,大家好,我是老周道数据,和你一起,用常人思维+数据分析,通过数据讲故事。
前段时间和大家聊了一个话题,就是为什么要用构建数据仓库,而不是直连数据源的方式开发报表?通过这次的话题,大家知道了构建数据仓库就等于是打好坚实的地基,而BI大厦也才能越建越高!在构建数据仓库的过程需要用到一个工具,也就是ETL。今天就和大家聊一下,ETL到底是什么?
ETL到底是什么?
ETL是Extraction-Transformation-Loading的缩写,中文名称为数据提取、转换和加载。看字面意思不是很好理解,那ETL到底是什么?先讲一个故事吧。
小强和小丽结婚一年了,事业家庭都稳定了下来,准备要生BB了,父母听到这个消息,非常高兴,坚持要从另一个城市搬过来帮忙。但是,小强现在住的地方是一个一房一厅,有点小,所以,得搬一个大点的房子。于是,小强找到了一间新房子:三房两厅两卫,还有一个大阳台。
终于落实好,就要准备搬家了。一个周末,小夫妻两个人将旧住所中需要的东西打好包,而一些不再需要的东西就只有丢掉了,忙碌了整整一个上午。中午,搬家公司来了,将打包的东西运到新住所,接下来,两个人又开始忙碌,将打包的东西解开,重新整理,摆放。原来的洗衣机是挤在卫生间的,现在终于可以放到阳台上了…。
下午,父母的东西也运过来了。要将他们个人的东西放到另一个卧室,对了,他们还带了一个电饭煲,小强原来也有一个的,这个还得想办法处理一下…好了,好像还缺点什么,需要再去采购些物品…
经过周末两天的忙碌,终于,按照自己和父母的喜好,重新摆放好了,真舒适啊:一进客厅,黑白色调的沙发、茶几和电视显的素雅而高贵,特别是墙上的照片,从两个人认识、恋爱到结婚,讲述着一个迷人的爱情故事。餐桌上摆着父母带来的青花瓷茶具,泡出来的茶中溢着岁月的沉香;进到主卧,大大的梳妆台和衣柜是女主人的最爱,而床头的书架,则是男主人的地盘…进到客卧,深色的衣柜和床,有些复古的感觉,窗台上的白玉兰花沐浴着阳光,这是父母共同的爱好…
小强和小丽牵着手,看着这个温馨的家,脸上洋溢着幸福,窗外的阳光洒落进来,镜头拉远,定格,The End,故事讲完了。这个故事是在讲都市爱情故事呢?还是房地产公司精心策划的广告?
都不是,我们想用它来说说ETL是什么的。好吧,言归正传,我们重新来讲一遍故事。
小强(即已经使用的ERP)因为要生BB(即正要实施的MES)加上父母(即已经使用的HR)要过来,所以,需要换一套大的房子(即DW数据仓库)。大房子会根据实际的需求进行规划(三房两厅两卫,还有一个大阳台)。捋一下,就是将ERP/HR/MES的数据整合到数据仓库中去。
ETL其实就是数据搬家的过程。
搬家第一步,我们要将旧住所的东西打包;第二步,我们叫来搬家公司将打包的东西运输到新住所;第三步,我们在新住所将打包的东西解开,重新整理,摆放。
ETL就是数据搬家的过程,第一步,将有用的表和字段整理出来;第二步,将这些字段搬到另外一个数据库中,实现物理上的转移;第三步,再按新的分析需求,重新清洗整理这些数据。听到现在,你可能觉得好像是有些理解了。但具体是怎么实现ETL的过程呢,且听我慢慢道来。
第一步打包,到底怎么将有用的表和字段打包呢?
生活中的搬家,我们在打包的时候,大家通常是整理每个房间,看哪些物品是有用的,就放在一个箱子里,整理的时候,只会考虑这个物品是不是有用,至于这个物品搬到新家后放在哪里,是不会去过多的思考的。如果我们先想着哪些东西都是要放到新房子主卧的,再将这些东西全部放在一起打包。那一定是有强迫症了。
ETL过程中,有些朋友就会这样,习惯了原来写SQL或存贮过程开发报表的方式,在搬数据时,也是写视图或存贮过程,将结果搬到数据仓库中去。这种方式非常不好,为什么呢?首先,它仍然是老思路,只是原来是存贮在临时表中,现在改为存贮在物理表中。技术或工具的升级,其实首先是要升级思维方式;其次,一旦需求发生变化,就需要频繁修改视图或存贮过程,后端开发的工作量很大。
正确的做法是,只考虑分析需求中的数据,来自哪些表或字段,就把涉及到的表与字段原封不动的搬过去,至于搬过去后怎么用,等搬过去再说,先不着急。
不同的业务系统,会有许多相同的基础资料,如都有部门这个基础资料,但大家的编码或名称可能不一样,这就需要额外处理一下,就好像父母也带了一个电饭煲需要想办法处理一样。
构建数据仓库时,总会有一些数据可能并不存在于某个业务系统中,如电商平台的数据,或者手工维护的预算数据。要使用这些数据,就需要额外导进去,就好像还缺点什么,需要再去采购些物品一样。
小强小两口周末两天的忙碌是辛苦的,但也是值得的。ETL的意义或价值,就好像小强小两口的忙碌一样,是为了最后有一个舒适的新家。
数据仓库构建好后,才有可能基于数据仓库来构建分析模型并根据自己的喜好展现最终的结果。客厅里一目了然的就是管理驾驶舱,既有ERP的信息(小强的电视),也有HR的信息(父母的茶具),而进到主卧,则好像进入到某个具体的分析主题一样;而进到客卧,则相当于切换到另外一个分析主题。
ETL的质量决定了BI是否成功(小强从此过上了幸福的生活。)
总结
ETL就是数据搬家的过程,第一步,将有用的表和字段打包;第二步,将这些字段搬到数据仓库中,实现物理上的转移;第三步,再按新的分析需求,重新清洗整理这些数据。
老周道数据,和你一起,用常人思维+数据分析,通过数据讲故事,我们下一讲再见!