什么网站做的很好百度关键词屏蔽
与其他BI产品对比,TM1的快速运算能力一骑绝尘。
但是在多维度的数据组合下,TM1是依据什么进行运算的呢?
今天将和大家一同了解TM1快速运算的秘密武器-Feeder。
上期我们提到通过配置维度中的元素权重,可以在合并层级加总计算。除此之外,还可以在Rule中通过业务逻辑运算。但上述两种方法中,TM1都是实时处理,并不会储存计算结果。
正因为该实时运算特点,当在合并层级计算时,如果下层节点有单元格包含Rule,TM1需要先将所有Rule单元格算出结果后才能向上加总,导致在多维度中,运算的数据量将以倍数增加。
首先为了提高运算效率,在Rule开头指定Skipcheck,将迫使TM1只对有储存值的单元格计算,而跳过空值的单元格。 其次,再使用Feeder,在那些需要计算的单元格打上TM1可以识别的标签, 最终合并计算将只处理非空值以及有Feeder标签的单元格,从而最大化运算效率。
Underfeeding 是标注了太少Feeder,将会使计算不完整导致错误,因此必须避免。例如,A通过Rule计算B和C的加总,当Feeder来源只有B时,”6”的数字上将不会有Feeder标签,因此即使A的上层合并结果应为5+6+4为15,但最终结果只为9。
Overfeeding 则是标注过多Feeder,将会导致效率变慢,例如:
下图中,每个产品都有对应的销售价格,但不一定每期或每个客户都有销售数量。因此如果用销售价格作为 Feeder 来源就会发生overfeeding。
在复杂的商业逻辑中如何选好 Feeder是门艺术,但如果不得不面临 Underfeeding 和 Overfeeding 作选择时,我们宁可 Overfeeding 牺牲一些性能,也务必要追求结果的准确性。
最后,以下为Feeder的两条经验法则,供大家参考:
TM1不藏私系列——#10. TM1快速运算的秘密武器-Feeder