第一,没有工作经验,这个代表着我不知道怎么去进行工作,但是这个问题的根本就是我不一定不知道怎么去做,我如果能够展示出来我能够做好这个工作,那么应该是可以的,首先这个ETL代表着对数据的处理,处理涉及到数据,数据存放在数据库中,数据库分为事务型和分析性两种方向,两个数据库中存放数据会有不同的方式与架构,事务型中的数据存放架构为实体关系型,而分析型中的数据架构为事实维度型。在对数据进行处理前还要进行一定的处理,使得数据源拥有一定的格式,至少能够符合传入的接口,是格式化后的数据。所以这个源库中的数据本身就是拥有一定数据质量的,但是还是需要进行ETL处理,因为就算源库中的数据是完全无误的,但是因为一个集团内部会有很多个事务型数据库,分别处理着不同部门的数据,所以会有信息孤岛的情形出现,将这些数据库中的信息整合起来也是建立数据仓库的一个重要目的,所以即使源库中的数据内容都是对的,但是可能不同的库中有着不一样的格式,所以对数据格式的把控也是ETL过程的一部分。还有就是事务型库中存的数据基本是实时的,在时间维度上是做不了分析的,所以在源库数据都对的情况下,依然要对这些数据进行处理,加上时间戳,这就引出了缓慢变化维这个东西,其实这个很容易理解,就是某类东西因为自身会随着时间发生变化,而我们又想知道这个变化的样子,就需要将这些变化全部记录下来,也就有了对相同/不同记录的插入、删除、更新这些操作,但是给这加上一个缓慢变化维的称呼就显得挺高深了。
现在我对为什么做ETL解释了一部分,就是在一定要做ETL的基础之上,说出了要做ETL的一些原因和考虑,但是呢为什么一定就要做ETL呢?ETL处理数据之后,将多个源库中的数据集成到了数据仓库中了,格式相同了,数据质量相对更高了(我还真不知道数据质量到底是由谁来定的,什么标准定的),但是这个的用处是进行分析,所以公司如果数据量不大,也就无所谓要不要集成了,比如只有一两个库,那还不如不搞数据仓库,弄这么多过程不是浪费时间嘛。还有就是如果公司就没有对数据的分析需求,那么也没必要搞数据仓库,因为数据仓库是为了提供一个分析结果给人看的,如果没有意义的数据,那么分析也没有什么用。所以只是在大量数据上会有用处。
然后现在我对各个ETL的开发工具和流程都不懂,比如Datastage、PowerCenter、Kettle以及手工plsql,这些都是听说而已,平常拿来练练手,没有接触过项目,但是为什么接触过了项目就一定会强于没有接触过项目的呢?讲得不好听的,做过一两次爱的人就比没有做过爱的人强了?要是经验这么有用的话,那年龄越大的人就越能办好事,越能做出东西来了?很显然这个是不对的,首先就是这个人要负责,然后不能蠢,学东西快就行,很多事就是只要用过一次就知道怎么用了,甚至可以达到能够灵活运用,不是这个东西难,而是这个东西里面承载了设计者的思想与逻辑,世界上是没有人能够在不接触别人的情况下就能了解别人的思想的,直接接触这个设计者,问他设计的思路是什么,那是最快的理解他所设计的产品的途径,正如现在的原厂帮助是最大最快的,但如果不能接触这个产品的设计者,那么就需要一些别的途径来了解设计者的思想,比如设计者自己写的书,做的视频,接触别的已经接触过设计者的人,也就相当于我不能接触原厂的人,因为我没有那么多钱去拿这个资源,所以我就通过看书看视频、参加培训班、上学、参加相对应的公司来找接触过这个产品的人来学习等途径获得对产品的了解,说实话,也就这些途径了,你说哪个快呢?肯定是人直接教人最快了,因为这个方式对人的影响是五官都能感受的,能听觉、视觉、触觉、味觉、嗅觉这些全部用上了,看视频就减少了味觉、嗅觉,看书就更少了一个听觉