OBIEE中“时间序列函数”的运用技巧

很多初学者在运用时间序列函数时,如果不了解内部机制,很有可能实现不了自己想要的效果。

下面将以一个实际例子来展开论述:

(1)

首先,要在前端界面中点击“年”自动下钻至“月”。可别小看这个功能,如果在逻辑维上设置不准确的话,前端不显示下钻功能的。将前端要显示的年、月、日一定要提前放在逻辑维对应的层次上,如下图:

红色框内容的字段是有可能在前端触发下钻功能的逻辑字段,如果不放入逻辑维相应层次中的话,下钻不会按照我们设计的层次路径来钻取(谨记)。还有在每层上一定要新建一个“逻辑级别关键字”,应该是根据这个关键字去寻找钻取路径的(待验证):

还可以在层次中放置其他的列,例如描述字段,将想要在前端显示的字段设置为“用于显示”,不想显示的字段“对号”去掉(总之,前端展现的字段和用于钻取的逻辑字段是两码事):

(2)

其次,时间序列函数相应逻辑维的特殊设置。

要想运用时间序列函数,需要对时间逻辑维进行特殊处理。首先将逻辑维的结构选为“时间”:

为每层的钻取逻辑字段设置“序时关键字”:

时间序列键的作用是表明时间维中具有一组单调增加的时间序列值(每一层上面设置序时关键字的字段一定在时间维表字段中能够有效排序,不要有重复,否则时间序列函数计算有误)。

定义时间序列时存在以下原则:

时间维中,至少一个层级上应定义有时间序列键

物理存储的最细时间粒度上必须定义时间序列键

除了必要的时间序列键,时间维的各个层级上均可建立额外的时间序列键,这主要是为提高查询性能服务

时间维的同一层级上可以建立多个时间序列键,但只有第一个时间序列键有效

典型反例:

    我在逻辑维的月层次上,设置的序列关键字是月字段,但是月字段在物理表中对应的值是“01、02、03、04……”,这样计算出来的时间序列函数是不准确的,应该将该序时关键字改为:“201201、201202、201203……”,这样才不会有重复的值。解决方式如下(年和月两个字段进行组合):

(3)

最后,上面逻辑维创建好之后,直接使用时间序列函数即可。

posted @ 2013-04-18 17:56  jerry_xing8  阅读(429)  评论(0编辑  收藏  举报