ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:451.48KB ,
资源ID:7247593      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7247593.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(universe 联接问题.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

universe 联接问题.docx

1、universe 联接问题Universe 3大陷阱环路定义:环路指经过模式中一组表的闭合联接,联接形成维表之间多条路径时将出现环路结果:返回太少行例:如下图的universe中存在一个环路,环路中本应该包含两个上下文,需要描述的均是顾客与服务之间的关系,但是由于服务有已消费和已预约两种,所以两个上下文在业务上分别表示预约顾客和服务间的关系和已消费顾客和服务之间的关系。由于此universe未设置任何上下文,导致出现环路错误。在universe中创建3个对象,分别为:顾客姓名,服务,预约天数。以下为在webi报表开发时,将以上3个对象均放入query中时生成的SQL,由于没有未环路指定不同上下

2、文,整个环路被当做一个上下文,在SQL的where子句中会出现环路中所有表的关联限制。实际上我们只需要对SQL进行其中一个上下文的限制。联接应用了比预期更多的限制,导致返回的结果是既预约了又消费了的用户,导致返回的数据不正确。解决方法:1. 别名2. 定义上下文别名有时候并不能解决所有环路的问题,或者有些环路问题需要定义不止一个别名来解决,如下图:为customer表定义别名后,发现city表仍然造成环路。此时需要定义上下文解决环路。指定上下文后,query会自动按相关的上下文生成SQL,此时where子句中的关联限制来自同一上下文的表之间的联接。断层陷阱定义:断层陷阱是当两个“多对一”联接会

3、聚在一个表上时三个表之间的一种联接路径,并且没有适当地分隔会聚联接路径的上下文。需要注意的是:基于以下即将描述的原因,联接的基数必须是“多对一”是才会产生断层陷阱。结果:返回数据变大例:universe中两张事实表invoice_line和reservation_line分别描述消费信息和预订信息,均与service表多对一关联。此时Universe中未指定任何上下文。为universe创建如下五个对象:将所有对象放入query中,此时query生成的SQL如下图:在webi报表上将下图所示3个字段拖入报表中,显示的数据如下:通过在数据库端验证,此数据是错误数据。错误原因如下图所示:之前的qu

4、ery的SQL截图中where语句中内容决定了结果会产生笛卡尔积。由上图可知,为何必须是多对一关联才会出现断层陷阱问题。解决方法:指定上下文扇形陷进当“一对多”连接链接了依次由另一个“一对多”连接链接的表时,扇形陷阱是三个表之间的一种连接路径。当查询包括同时基于两个表的对象时,“一对多”连接的分散影响可能会导致返回不正确的结果。结果:返回的值变大。例:假设下图为以上涉及的3表中的相关数据:以下图为报表中含有的字段,分两种情况:1、query中不含SALE_MODEL中的字段model_id,此时结果是正确的:具体原因如下图:Query中不含model_id时,在query返回的结果集中,sal

5、e_QTY会根据sale_id自动汇总,汇总数据是正确的。2、query中含SALE_MODEL中的字段model_id,此时结果是不正确的:具体原因如下图:此时返回的结果集如上图所示,由于model_id各不相同,SALE表中的数据复制后与SALE_MODEL表数据关联,图中红线框内即为复制后重复的数据,所以导致salevalue的数据汇总后是错误的。解决方法: 定义别名并指定上下文合并维:结论:一个包含在合并维中的维度A,和同它不在同一query的度量处于同一报表块时,如果合并维中存在与此度量处于同一query的维度B,维度A会自动与此度量产生关联,效果等同于与此度量属于同一query。 Query1:Query2:场景一:不合并维结果:1、维度:Query 1.Lines,new measure2、维度:Query 2.Lines,new measure场景二:合并维结果:1、维度:Query 1.Lines,new measure2、维度:Query 2.Lines,new measure

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1