目的:处理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
问题:深坑陷进是一个常见问题在关系数据库中,链接数据返回比预期更多的数据。UNIVERSE中以下连接会导致,典型的深坑陷阱。
![bb](http://img.blog.itpub.net/blog/attachments/2010/11/15720542_201011121040401.jpg?x-oss-process=style/bb)
当以下3个条件同时出现时,你将不会得到正确的结果
1.many to one to many的关系出现在UNIVERSE结构中(3个表之间)
2.构建的查询基于两个many 方的表
3.对于一个单独的维度数据值,有多行数据被返回
深坑陷阱都做了些什么事呢?
假设有下面3张表:
![bb](http://img.blog.itpub.net/blog/attachments/2010/11/15720542_201011121058341.jpg?x-oss-process=style/bb)
有以下一些相关对象:
![bb](http://img.blog.itpub.net/blog/attachments/2010/11/15720542_201011121100261.jpg?x-oss-process=style/bb)
此时UNIVERSE参数选项设置:
![bb](http://img.blog.itpub.net/blog/attachments/2010/11/15720542_201011121101341.jpg?x-oss-process=style/bb)
测试报表生成数据的结果:
![bb](http://img.blog.itpub.net/blog/attachments/2010/11/15720542_201011121102311.jpg?x-oss-process=style/bb)
为什么第3个查询就出错了呢?
![bb](http://img.blog.itpub.net/blog/attachments/2010/11/15720542_201011121103491.jpg?x-oss-process=style/bb)
这就是深坑陷阱。。。
处理办法:
1.可用的办法有:修改UNIVERSE参数,让你能够生成独立的查询对每一个度量,(这个方法不推荐),更改方式如下图:
![bb](http://img.blog.itpub.net/blog/attachments/2010/11/15720542_201011121109231.jpg?x-oss-process=style/bb)
2.为每个事实表建立上下文,以下的例子中就需要为sale,rental表分别建立上下文。
![bb](http://img.blog.itpub.net/blog/attachments/2010/11/15720542_201011121120251.jpg?x-oss-process=style/bb)
使用上下文处理深坑陷阱的一般步骤为:
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
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15720542/viewspace-677980/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15720542/viewspace-677980/