数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合,用来支持管理人员的决策。这是数据仓库的定义。我们分别对其特点进行说明。
面向主题
操作型系统是围绕应用进行组织,比如对于电商系统,应用服务包括下单/支付/评价等业务过程,但是从主题的角度来看,就是商品,用户与商家。集成
还记得我们之前说的"蛛网"结构么?结合上面说的"操作型系统是围绕应用组织的",我们很容易发现,从不同的服务获取的数据中,相同的定义,由于不同的团队规则不同(可能是规范不同,甚至是程序员自己的习惯差异),导致数据也会不同。比如"性别"这个数据,就会有很多种方法来表示男与女,比如: 0/1,x/y,m/f等等,在团队内部,这样的记录方式没有问题,但是在整体使用时,这样的数据给使用带来一些麻烦。除了性别这个例子,其它的比如各种单位:金额,距离,都很可能发生这种情况。
把各个数据源不同规则的数据整合成一致,就是数据仓库的"集成"的意义。非易失
操作型数据随时可能会更新,更新之后只能访问到最新的状态,过去的数据不得而知。而数据仓库的数据则是保持载入时的状态,不会进行一般意义上的更新。(除非回溯数据)随时间变化
数据仓库中的数据生命周期要远远长于操作数据,操作型数据往往存一段时间,但是数据仓库中的数据现在一般不删除(当然也有生命周期的设计,但是得利于存储介质的越来越廉价,一般不删数据了)
操作型数据是"当前"的数据,往往不会有日期数据。而数据仓库是历史上一系列不同时间的数据快照,必然需要包含额外的时间元素,比如年/月/日。
数据仓库结构
面向主题
顾客
商品
内容
广告
以顾客为例,进行一下说明。
在电商产品中,顾客的行为包括:浏览,点击,推荐,下单,评价,支付等。每个行为分别记录在不同数据中,这些数据,可以通过唯一key:顾客id关联起来,这些数据就组成了顾客主题的基础内容。通过这些行为来建设顾客主题。
第一天到第N天
第一天:完成一个需求。
第二天:完成一系列相似需求,抽取一个主题。
第三天:加载更多数据,抽取多个主题。
第四天:完成更多需求。
第五天:数据集市的推出,提供需求部门使用。
……
重复进行。
待续……