日历

2008 9.7 Sun
 123456
78910111213
14151617181920
21222324252627
282930    
«» 2008 - 9 «»

日志分类

文章搜索

日志文章

2008年04月03日 14:25:10

数据分析讲堂

数据分析讲堂

第六课 TM1应用实例(2

第七讲 库存吞吐立方体(续)

6.系统性的年龄跟踪
很显然LuluThor需要找到一种更好的系统地跟踪鱼老化的方法,并且这种方法会包含FCI业务过程的改变和随之发生的多维模型的改变。如果运气好的话,Jane也会同意他们对需求的评估。再看一下库存立方体。你会如何系统地跟踪老化情况?FCI已经给每一批接收的鱼赋予了一个达到日期,但此信息只被包装工人用来进行FIFO的库存实践和丢弃过期的鱼。如何更好地利用这一信息呢?给库存立方体添加一个日期变量?考虑一下。
1) 改变立方体
Lulu指出,不管采用何种方法,手头数量变量都必须按照年龄加以区分。也就是说,FCI需要的不仅仅是知道库存中有多少鱼,更要知道每个年龄的鱼分别有多少库存。Thor建议,并且Lulu同意这个建议,他们需要定义一个老化年龄维,并将其添加到库存立方体内。添加和使用年龄维需要三个步骤:
<1> 定义维度并将其添加到现有的结构中,不考虑数据。
<2> 做一切需要的工作把老数据映射到新的结构中。
<3> 在新的年龄跟踪库存立方体中加入适当的公式。
他们认为年龄维本身是简单的,应该定义为基数类型,并且叶子等级实例数目与鱼老化直至腐烂前的最大天数相等。如图6.7.1所示。
在进行任何处理之前,Lulu想知道整个过程是怎样的。要得到新的年龄跟踪库存立方体,需要执行的步骤有哪些?实际上,Thor说,添加一个新维与添加一个新变量并不相似。由于数据的维度是其定义、物理存储结构及访问方法的中心,因此,如果要改变立方体的维度,几乎每种OLAP工具都要求你必须重新加载和计算数据,本质上即重建立方体。


因此,Thor继续说道,添加新维的过程包括定义这一新维并将其加入到老模式的新版本中。换句话说,就是定义一个新的空立方体。然后你需要重新定义老的库存公式使其在新维上起作用,并在新立方体内为公式仔细地关联正确的年龄维成员。新定义的立方体经过测试后,就可以把数据从老的库存立方体(或其数据源)映射到新库存立方体。这些都成功做完之后,你就可以把连接到老库存立方体的立方体连接到新的库存立方体上,这包括引用了老立方体的立方体和老立方体以前引用到的立方体。同样,所有的连接都需要反映新的维。当新库存立方体显示能正确地处理新的输入数据,包括接收到的新的鱼,报告中间损失,新的查询,送去生产的鱼,以及正确地计算所有派生变量和正确连接到所有适当的立方体,这时,也只有这时老库存立方体才能安全删除。

定义了新的年龄维之后,这时该重新定义给定新年龄维的库存变量了,这也可被用来测试年龄维定义的是否适当。让我们以接收数据开始,先回忆其在老库存立方体中的定义:
“Qty received”{Kg},
        L.leaf.<<Input
“Qty received”,
        L.leaf.above. =
                  Sum“Qty received”,L.leaf.
2) 重定义接收数量
Thor说,第一个问题是,把接收数量连接到年龄维的什么地方?你在哪创建这一连接?考虑一下。
这很容易,Lulu说,新接收鱼的年龄为一天,如下所示:
“Quantity received”,
    Time.day.,
    Geog.site.,
    Food_source.fish.leaf.,
    Age.1 << Input
新接收的数量和老数量的度量是一样的。但怎么处理聚合?接收数量在所有年龄维上汇总吗?你怎么认为?
LuluThor都觉得不应该这样。相反,在FCI目前每天24小时都接收鱼的业务模式下,变量接收数量只对年龄维数据是一天的成员有效。然而,Thor指出,添加了年龄维之后,将来FCI也能够在鱼运到时区分库存中不同年龄的鱼的数量。这指向的是鱼的采购日期标签,但只在鱼到达仓库时间超过24小时之后才有意义。那么,在这样的业务流程下,接收数量也可以在年龄维上聚合。

类别: 无分类 |  评论(0) |  浏览(1555) |  收藏
发表评论