数据仓库很难写清楚的,试试看能不能以乱弹的方式将它写的通俗易懂,老少咸宜。
数据仓库就是把不同数据库的数据收集到一起,加以整理,主要用于做长期趋势分析 。也就是说我们需要 从数据库中把数据取过来,加工下(规整下),存储起来,分析展现。下面就按这个过程乱弹下数据仓库。
首先要考虑我们需要什么数据,换句话说那些数据是值得集成的,那些数据是值得保留的。当然这些需要客户说了算,看他们关心那些数据,关心那些指标,关心数据的时间,希望以怎样的方式展现。比如需要按月统计各类型手机用户话费类型比率。可以知道客户需要有话费类型、用户类型、话费金额、时间这些数据及数据的关系。这样就有了简单的数据模型,知道我们需要什么数据,数据之间的简单关系了。当然也有人叫它企业数据模型,这个模型是有数据仓库特点的模型即面向主题的、与时间相关的。为了不落下不严密的口舌暂叫“简单企业模型”。
有了简单企业模型,我们就按图索骥从业务系统中获取数据了,可是你在A系统中叫张三、B系统中叫zhangsan、C系统中叫7。把这些数据整进数据仓库也没有办法利用,没有统一的标准,怎么查询分析呀。这下应该看出来了需要转换数据,按照统一的标准转换。说的通俗些需要统一的数据字典或编码标准,将各个业务系统的数据转换成为标准的数据。当然实际情况复杂的多,需要将生数据进行转码,转类型甚至合并,补缺等等最终整成能用的数据或者叫熟数据,加载入目的数据库。源数据可能是xml、平面文件,oracle,foxbase等,没有遇不到只有想不到。这个数据转换、清洗、加载、抽取的过程就叫ETL。
可是问题又出现了,在业务系统关心的是细节数据,如某人当月每次通话记录,在数据仓库关心的汇总数据,如某类人当月通话次数。不能按照正常的数据库设计进行数据仓库的设计,因为很多数据是决策层面的人不需要,而且数据量一大存储就大,存储大查询就慢,查询速度一慢数据仓库纵然有白好也一无是处了。于是就演变出来雪花模型和星型模型。星型模型是目前采用较多的模型。可以这样理解星型模型的角就是group by的条件,中心的数据就是聚合的结果。将数据按照星型模型存储起来,作为数据仓库的数据。
现在就差数据展现分析部分了,只要数据对客户来说没有什么用。数据仓库有多种应用如静态报表、多维查询、即席查询、数据挖掘等等。可以简单的认为我把多个维度一拼就是一个分析,比如我把联通、北京、用户数一组合就认为联通北京的用户数是多少?当然也可以一拆开联通、用户数认为联通的用户数是多少?当然你也许已经知道了这就是数据立方,我只是从不同的角度看这个世界,看到的层面不一样。
为了文章通俗,减少了数据仓库一些核心方面,比如数据质量、元数据管理、数据安全、ODS、数据集市等介绍。 希望对大家有用。