0

NReco PivotData Cube 处理

这个组件对我来说是新的,我很好奇它是否支持对数据源的频繁更新?数据的正常大小为 1000 行,包含 60 个事实和 6 个维度。是否可以更新单行数据?这会触发全面再处理吗?需要多长时间?

4

1 回答 1

0

NReco.PivotData 库实现了内存中的多维数据结构,该结构包含您要在报告中使用的维度的预聚合指标。有两种不同的使用方式:

  • ROLAP 风格的方式(主要使用):PivotData 类实例是短暂的,它是在您需要渲染数据透视表或为图表准备 JSON 数据时“即时”创建和填充的。数据源无关紧要:这可以是使用 PivotData.ProcessData 方法处理的模型的内存列表,也可以在 GroupedSourceReader 类的帮助下加载数据库聚合查询结果
  • 对于仅附加数据集的实时报告,您可以在应用程序启动时加载一次 PivotData 类实例,然后使用新记录“更新”它。根据您的需要,PivotData 可以保留和预先计算总计/总计,或者仅在访问总计值时才执行“延迟”汇总(这由PivotData.LazyTotals标志控制)。

关于

数据的正常大小为 1000 行,包含 60 个事实和 6 个维度。

这是非常小的数据,ProcessData 方法非常快速地处理 1k 行(仅计算具体报告所需的维度/度量)。如果使用数据库作为数据源,它应该能够足够快地执行聚合(GROUP BY)查询;即使是数十亿行,专门的分析数据库也可以在几秒钟内完成。

于 2019-10-05T06:53:35.447 回答