【原创】SSAS-引用维度与多数据源、多数据源视图引起分区错误

背景:

  最近有个项目,有32家分公司,集团总部须要取这个32家分公司数据作分析,因为每一个分公司的数据都比较庞大,因此最终方案是每一个分公司一个DW,在cube搭建过程当中将每一个公司数据做为一个分区数据的来源,这样子便可分区又易于维护每一个分公司的数据,并且还不会容易引起一个DW而数据爆炸、效率等问题。测试

 

问题:

  在建立cube时候,因为先前搭建先用一个分公司搭建了一个模型,因此后面想着将其它的分公司事实表添加到这个数据源视图里面便可,因而兴奋的建立了好多数据源,而后在原有的数据源视图里面添加了其它分公司的事实表,也添加修改了分区等内容,十分顺利,后面处理也是成功。spa

      可是后面,由于店铺和经销商两个维度刚开始是分开2个单独维度,但后面须要分析各经销商经营状况,因此必须将经销商和店铺链接起来,因而就作了经销商和店铺之间的引用关系,cube因而就建立了销售度量值维度和经销商维度经过店铺的引用维度关系,可是再次处理,就处理失败,老是报错:数据源视图未包含“dbo_Dim_Store”表或视图的定义blog

      1

 

测试:

测试一:

  猜测是不是数据源视图引起的,因而删除了刚才的引用关系,创建普通的关系,分区也没有改变任何设置,从新处理经过get

     

测试二:

  看到错误提示,想来想去仍是以为是分区的问题,因而查看了错误时候报错的分区,查看其建立分区时候使用的查询SQL,发现一个重大问题:建立了引用维度的度量值组,查询的SQL回去关联相应的维度表查询,就如咱们平时写JOIN查询同样,那在咱们后面添加的的其它公司的数据源视图里面并无这两个须要创建引用关系的维度表,只有事实表,因此在查询时候就致使了这个找不到xxx表的缘由呢?因而将这两个引用的维度表也添加到了对应数据源视图中,再处理,就能够了。it

 

总结:

  咱们在建立引用维度的时候,其实cube底层也是经过SQL查询数据的,因此它依然会链接咱们这些表进行查询,所以在咱们的数据源视图中若是没有这些表,则查询就会失败,找不到表,所以咱们在建立引用维度时候必定要注意:若是分区用到了不一样数据源视图,则须要在相应视图中添加这个分区中使用的维度表方可。若是没有使用维度引用,则咱们就不须要添加这些表,每一个数据源视图就是一个单独的分公司便可。效率

相关文章
相关标签/搜索