...
首先,建立数据仓库,在数据引擎下新建BIDemo库。
接下来建立用户表,结构如下:
此外还有产品表:
以及历史订单表和建立增量订单表,它们的结构是一样的:
为了测试方便,我们在用户表中加入一些测试数据:
然后在产品表中加入一些测试数据
至于事实表,手动加入测试数据就不现实了,所以这里写了一个程序利用随机数来灌测试数据:
这个程序的代码可以在本文中找到。生成后的数据基本如下所示:
到此,测试的数据结构以及数据就已经准备好了,相当于有了一个小型的数据仓库。
...
首先建立数据源,连接刚才建立的数据库,并且在数据源视图里定义好关系,如下图:
然后,根据此数据源视图建立多维数据集,需要注意的是,度量选择历史表,维度选择用户和产品两个表。
...
下面来看SSIS项目。在SSIS包里建立四个任务模块,类型分别如下:
前两个多维数据集处理模块是用来处理多维数据集的,数据流负责把增量事实表的数据导到历史事实表中,最后执行一个SQL任务把增量表中的数据删除。
...
(题外话:对于这个地方笔者一直也不是很理解,按理说既然是全部处理那么怎么连维度都不处理呢,还需要单拿出来)
以下是设置维度处理模块,在界面中选择维度即可。
然后是cube处理模块,如下图。
然后指定增量更新,并且配置增量更新的数据表,这里指定增量表。
多维数据集处理完成之后就可以把增量表的数据放到历史表中了,以保证第二天加入的数据都是增量数据。
...
然后是第三步的数据流模块,此部分的主要任务是将增量表的数据转移到历史表中。
最后的一个SQL任务是一个Delete或者Truncate table任务,把增量表里的数据清空。
最终的任务流程如下图:
执行包,全部成功之后应该如下图所示:
执行成功后,打开历史表,可以发现数据已经在里面了,而且增量表中的数据已经不存在了。
查询多维数据集,可以看到新的数据被聚合到其中。
通过以上透视表可以清晰的看到谁买了什么样的产品。
...