ITPub博客

首页 > Linux操作系统 > Linux操作系统 > BO中深坑陷阱的处理

BO中深坑陷阱的处理

原创 Linux操作系统 作者:oracle_db 时间:2010-11-12 10:25:34 0 删除 编辑
目的:处理UNIVERSE中深坑陷阱
问题:深坑陷进是一个常见问题在关系数据库中,链接数据返回比预期更多的数据。UNIVERSE中以下连接会导致,典型的深坑陷阱。

当以下3个条件同时出现时,你将不会得到正确的结果
1.many to one to many的关系出现在UNIVERSE结构中(3个表之间)
2.构建的查询基于两个many 方的表
3.对于一个单独的维度数据值,有多行数据被返回
深坑陷阱都做了些什么事呢?
假设有下面3张表:

有以下一些相关对象:

此时UNIVERSE参数选项设置:

测试报表生成数据的结果:

为什么第3个查询就出错了呢?


这就是深坑陷阱。。。

处理办法:
1.可用的办法有:修改UNIVERSE参数,让你能够生成独立的查询对每一个度量,(这个方法不推荐),更改方式如下图:


2.为每个事实表建立上下文,以下的例子中就需要为sale,rental表分别建立上下文。

使用上下文处理深坑陷阱的一般步骤为:
1.识别潜在深坑陷阱,通过分析schema中many-to-one-to-many的链接关系
2.在universe窗口中选择:tools---automated detection---detect contexts
3.在弹出对话窗口中选择add---ok
4.选择file---parameters,在弹出框中选择sql tab,不选中multiple sql for each context选项--ok

深坑.jpg

深坑2.jpg

深坑3.jpg

深坑4.jpg

深坑5.jpg

深坑6.jpg

深坑7.jpg

深坑8.jpg

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15720542/viewspace-677980/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-11-13

  • 博文量
    158
  • 访问量
    354236