Server Administration Guide 文档建议逻辑模型中不要设置Driving选项_Server_Administration][6]。
对于逻辑事实表的度量字段,需要设定其默认的聚合方法。“Expense Fact”表的“Amount”字段为度量值,双击此字段,在“Logical Column”对话框的“Aggregation”页将其默认聚合方法设置为“SUM”。_Server_Administration][7]
再看逻辑模型,“Amount”字段的图标发生了变化。
为了实现钻取功能,需要在逻辑模型内创建维度。BIEE中的维度(Dimension)与Oracle数据库中的DIMENSION对象概念类似,其中包含层级(Level)以及由各层级构成的层次
结构(Hierarchy)。维度所包含的逻辑列必须来自同一个逻辑表_Server_Administration][8]。
我对示例数据的分析需求是:要按家庭成员维度汇总消费金额,还要从家庭成员下钻到消费明细描述。由于消费明细描述位于消费事实表(V_FINANCE_EXPENSE)中,因此我需要改造逻辑表Member Dim,在其中添加消费明细字段。
将物理模型V_FINANCE_EXPENSE表的CONSUME_ID和DESCR列拖到逻辑模型的Member Dim表下。
此时逻辑表Member Dim有两个逻辑表来源(Logical Table Source),Member Id 和Member Name来自V_FINANCE_EXPENSE,Consume Id 和Descr 来自 V_COMMON_MEMBER。双击逻辑表来源可以打开“Logical Table Source”对话框,在“Column Mapping”页可以查看逻辑列与物理表的映射关系。
从物理模型向逻辑模型拖放字段时,逻辑表来源是根据物理字段所在的物理表自动地建立的。按我的理解,Member Id/Member Name以及Consume Id/Descr来自同一物理数据源的两张物理表,可以使用同一个逻辑表来源。我需要在逻辑表来源中设定物理表间的关联关系,并重新映射逻辑字段。
删除逻辑表来源V_FINANCE_EXPENS,双击V_COMMON_MEMBER开始编辑Member Dim的逻辑表来源。
首先设定Member Dim内逻辑字段所需的物理表,以及表间的关联关系。(我不确定是否一定要这样做,物理表间的关联在物理模型中已经设置了,为什么这里还要做一遍?)
之后定义逻辑字段与物理字段间的映射关系。
由于将Consume Id加入了逻辑表Member Dim,因此Member Dim的逻辑主键不再是Member Id,应改为Consume Id。删除原来的逻辑主键,使用Consume Id创建新的逻辑主键。
经过重新整理的Member Dim是酱子的:
现在可以依据逻辑表Member Dim创建维度了。
首先定义Member维度的层次结构,由上至下依次为Member Total,Member,Detail。之后将逻辑字段放入相应的层次。与维度对应的逻辑表的主键必须放在最低层(Detail)_Server_Administration][9]; Grand Total层(Member Total)内不添加逻辑字段_Server_Administration][10]。Member维度的结构如下:
我还需要对每个层次进行设置,包括层次的元素数,以及层次的层键。
关于元素数的规则有:Grand Total层的元素数这只能为1;其他层次的元素数先设定一个大于1的数吧(具体规则还没搞清楚)。
层键为逻辑层元素的唯一组合,层键确定了钻取时的查询路径。层键的属性中可以设定此层键是否用于下钻,选择了“Use for drilldown”后此层键在Oracle Answer中才可用于下钻。_Server_Administration][11]
Member 层的层键设置如下: