ActivePivot 使用分区来提高并行性并加速查询执行。但是,在执行涉及后处理度量的查询时,我注意到后处理器的评估并没有从分区中受益:并行度没有增加。
是否可以让后处理器评估分区知道以使我的查询更快?
ActivePivot 使用分区来提高并行性并加速查询执行。但是,在执行涉及后处理度量的查询时,我注意到后处理器的评估并没有从分区中受益:并行度没有增加。
是否可以让后处理器评估分区知道以使我的查询更快?
事实上,ActivePivot 确实利用了分区优势来实现多核可扩展性、加速查询和数据管理,并使 NUMA(非统一内存访问)优化成为可能。
要并行进行后处理器评估,您需要在AMapReducePostProcessor
后处理器之上创建一个。它存在于核心产品中,这个 map-reduce 后处理器的简单实现:SimpleDistributedPostProcessor
.
假设您的后处理器定义如下:
<measures>
<postProcessor name="PnL.MyPP" pluginKey="XXX" [...] />
</measures>
只需添加这个新的后处理器:
<postProcessor name="PnL.MyDistributedPP" pluginKey="SIMPLE_DISTRIBUTED" underlyingMeasures="PnL.MyPP.DIST"/>
请注意,underlyingMeasures 属性等于PnL.MyPP.DIST
; 后缀.DIST是强制性的。
后处理器的评估PnL.MyDistributedPP
将以分布式方式在每个分区上执行,并以SUM
聚合函数结束聚合。如果要使用其他聚合函数,只需在 xml 后处理器声明中更改它即可。