关于ALL表和SUM表之间的聚合关系与BIEE出数据方式
2010-03-30 21:38
323 查看
关于ALL表和SUM表之间的聚合关系与BIEE出数据方式
SUM表是ALL表关于某一个字段或者多个字段的聚合,SUM表中的数据颗粒度更大,检索速度更加的快。
在BIEE中经常地使用到ALL表和SUM表。最近在佳通项目中遇到一个问题:在一个逻辑表中有6个源表来自物理层,如下表:
理想的出数据的方式为:
如果仅需要ITEM_TYPE级别的实际数据,则BIEE从ACTUAL_SUM出数据;
如果仅需要ITEM_TYPE级别的预算数据,则BIEE从BUDGET_SUM出数据;
如果需要ITEM_TYPE级别的实际数据+预算数据,则BIEE从SUM_ALL出数据。
但是,结果却是不管是需要ITEM_TYPE级别的实际数据还是预算数据,BIEE都从ALL_ALL出数据。百思不得其解啊!
但是,经过反复的比较,我发现以上六张表中的字段存在差异,如下表:
我们对比三张ALL表ALL_ALL、BUDGET_ALL、ACTUAL_ALL发现ALL_ALL中不存在ITEM_TYPE字段,然后,我在ALL_ALL的物理层中添加ITEM_TYPE字段(首先,我修改数据库中的ALL_ALL表,后来我把数据库中的ALL_ALL表中的ITEM_TYPE删除,结果依然正确!爽),并在逻辑表中完成映射。从新查询问题解决了!!
经过反复的试验以及和同事之间讨论,我得出SUM表在做聚合的时候,SUM表中的字段只能是ALL中字段的真子集,也就是说SUM表中不能存在ALL中没有的字段。
同时,我也推断,BIEE是按照由ALL到SUM的顺序进行出数据的。具体的说来,BIEE首先查看ALL表中的字段,然后检查SUM中的字段,如果SUM表中的字段为ALL表中字段的真子集,那么,从SUM表出数据,否则从ALL表出数据。
SUM表是ALL表关于某一个字段或者多个字段的聚合,SUM表中的数据颗粒度更大,检索速度更加的快。
在BIEE中经常地使用到ALL表和SUM表。最近在佳通项目中遇到一个问题:在一个逻辑表中有6个源表来自物理层,如下表:
说明 | Sources tables | 备注 |
预算数据+实际数据 | ALL_ALL | |
SUM_ALL | 关于ALL_ALL的ITEM_TYPE的聚合 | |
预算数据 | BUDGET_ALL | |
BUDGET_SUM | 关于BUDGET_ALL的ITEM_TYPE的聚合 | |
实际数据 | ACTUAL_ALL | |
ACTUAL_SUM | 关于ACTUAL_ALL的ITEM_TYPE的聚合 |
如果仅需要ITEM_TYPE级别的实际数据,则BIEE从ACTUAL_SUM出数据;
如果仅需要ITEM_TYPE级别的预算数据,则BIEE从BUDGET_SUM出数据;
如果需要ITEM_TYPE级别的实际数据+预算数据,则BIEE从SUM_ALL出数据。
但是,结果却是不管是需要ITEM_TYPE级别的实际数据还是预算数据,BIEE都从ALL_ALL出数据。百思不得其解啊!
但是,经过反复的比较,我发现以上六张表中的字段存在差异,如下表:
ALL_ALL | SUM_ALL | BUDGET_ALL | BUDGET_SUM | ACTUAL_ALL | ACTUAL_SUM |
ITEM_NUMBER | ITEM_TYPE | ITEM_NUMBER | ITEM_TYPE | ITEM_NUMBER | ITEM_TYPE |
ITEM_TYPE | ITEM_TYPE |
经过反复的试验以及和同事之间讨论,我得出SUM表在做聚合的时候,SUM表中的字段只能是ALL中字段的真子集,也就是说SUM表中不能存在ALL中没有的字段。
同时,我也推断,BIEE是按照由ALL到SUM的顺序进行出数据的。具体的说来,BIEE首先查看ALL表中的字段,然后检查SUM中的字段,如果SUM表中的字段为ALL表中字段的真子集,那么,从SUM表出数据,否则从ALL表出数据。
相关文章推荐
- android关于activity之间常用的数据传递方式
- 关于Android Activity之间传递数据的6种方式
- 一步一步学EF系列1【Fluent API的方式来处理实体与数据表之间的映射关系】
- 关于Android Activity之间传递数据的6种方式
- 一步一步学EF系列二【Fluent API的方式来处理实体与数据表之间的映射关系】
- 关于类里面依赖,聚合,继承之间的关系
- 关于Activity之间传递数据的6种方式
- ios应用view之间数据传递的方式
- 关于Webdriver自动化测试时,页面数据与数据库id不一致的处理方式,需要使用鼠标事件
- UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
- 关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
- 时钟频率和数据频率之间的关系搞清楚
- 关于AngularJS controller之间的数据通信
- 面试之路(13)-android apk之间共享数据的方式以及shareUserId详解
- UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
- AR模型与数据平稳性之间的关系
- 关于将post方式提交的数据转换成javabean来拿取数据
- Android-Activity之间数据传递的多种方式
- 关于WPF的两个窗口之间简单的数据传递【附源代码】
- 关于TCP超时重传、快速重传、慢启动、拥塞避免、拥塞发生、快速恢复、滑动窗口之间的关系概括