根据《维度建模的完全指南》中的说明,维度应当避免使用组合或复合关键字,因为这样会严重影响效率;而应当使用单一的代理关键字;
最近笔者在实现一个分析模型时,由于形成伪“双桶”连接而引起结果不正确!
客户维度:客户号、客户资产属性...,客户资产属性实际上是每日计算的动态属性,为了公用和计算方便,在客户维度中放了该字段;
交易事实表:客户号、客户资产属性、交易量...等字段;
客户资产属性作为微型维度,存在于事实表中;微型维度既是为了更方便查询,同时也是为了很好记录历史(因为客户资产属性在动态变化)。
缺省状态下,在SQL ANALYSIS的多维数据集建立过程中,维表和事实表会自动根据字段和类型自动连接;这样就形成了伪“双桶”连接而引起结果不正确!
建议:1:在多维数据集编辑器中,一定要检查维和事实的连接管理;
2:象客户资产属性应该放在临时表中;
3:如果放在客户维度中,应该使用当前资产属性,这样就避免了自动连接引起的错误。