Oracle BIEE 时间函数(ago,todate)(2)

2019-08-29 20:05

创建时间维

与创建普通维度对象一样,以逻辑表“Date Dim”为基础创建维度对象“Date”;依次定义层级:“Total Level”、“Year Level”、“Month Level”、“Day Level”,并设定层级的元素数;将逻辑表“Date Dim”的各列拖放当相应的层级;定义各层级的层键,并设定主层键,以及用于下钻的层键。

层级 Level Total Level Year Level Month Level Day Level 元素数 Number of elements 1 3 36 1000 层键 Key N/A Year Id Year Name Month Id Month Name Day Id Day Name 主层键 Primary N/A Yes No Yes No Yes No 用于下钻 Use for drilldown) N/A No Yes No Yes No Yes 时间维与普通维度有两处不同。首先,双击维度“Date”节点,在“Dimension”对话框中需要选中“Time Dimension”选项,以表明此维度对象为时间维度。

其次,时间维度中需要定义时间序列键(Chronological Key)。时间序列键的作用是表明时间维中具有一组单调增加的时间序列值[1]。定义时间序列 时存在以下原则:

[2]? 时间维中,至少一个层级上应定义有时间序列键。

?

物理存储的最细时间粒度上必须定义时间序列键。在例子中,物理表“V_FINANCE_EXPENSEE”的日期字段“CONSUME_DATE”为日期,即 物理存储的最细时间粒度为日期,因此时间维“Date”的“Day Level”上应该定义时间序列键。 除了必要的时间序列键,时间维的各个层级上均可建立额外的时间序列键,这主要是

[4]

为提高查询性能服务。

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

[3]?

?

在这个简单的例子中,我只把层级“Day Level”的逻辑层键“Day Id”定义为时间序列键。

使用时间轴函数定义度量值

定义好时间维后,就可以在逻辑事实表中定义使用时间轴函数的逻辑列了。在逻辑表“Expense Fact”上单击右键,选择“New Object\\Logical Column”创建逻辑列。在“Logical Column”对话框中选择“Use existing logical columns as source”再按右侧的按钮,可以打开“Expression Builder”编辑逻辑列的公式。最后不要忘记将逻辑列添加到展现模型中。 例如,使用 Ago 函数定义“去年同期值”。

AGO(Finance.\

第一个参数是逻辑字段 Finance.\,是用于时间轴运算的度量值;第二个参数是逻辑模型时间维的层级 Finance.\,表明回溯的时间单位为年;第三个参数表示回溯的时间周期,1 则为回溯一年,即去年。

再例如,使用 ToDate 函数定义“本年累计值”。

TODATE(Finance.\

第一个参数是逻辑字段 Finance.\,是用于时间轴运算的度量值;第二个参数是逻辑模型时间维的层级 Finance.\,表明累计计算开始自年时间的起点,终止到当前时间。

在进行时间查询时应注意几个重要的粒度[7],以查询 select \\为例:

? \为查询粒度。

? ? ? ?

\逻辑列对应的时间维层级为时间序列粒度。 在包含时间序列函数的查询中,时间序列粒度必须大于等于查询粒度。

\逻辑列对应的物理表的时间粒度被称为存储粒度。 与存储粒度对应的时间维层级上必须定义时间序列键。

Ago 与 ToDate 函数可以嵌套调用,但需要遵守一定规则[8]。 在使用时间序列函数时也有一定限制,具体请参考 BIEE 文档[9]。

查询

定义如下查询,其中“消费金额(同期)”与“消费金额(年累计)”分别为使用 Ago 和 ToDate 函数创建的逻辑列:


Oracle BIEE 时间函数(ago,todate)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年中考物理试题分类解析汇编《光现象》(精编版) - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: