Nreco立方体加工

Nreco cube cahnge processing

NReco PivotData 立方体处理

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

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

  • ROLAP-style 方式(最常使用):PivotData class 实例是短暂的,它是在你需要渲染 pivot table 的时候创建和填充的 'on-the-fly'或为图表准备 JSON 数据。数据源无关紧要:这可以是内存中的模型列表,即 processed with PivotData.ProcessData method or DB aggregation query results may be loaded with help of GroupedSourceReader class.
  • 对于仅附加数据集的实时报告,您可以在应用程序启动时加载一次 PivotData class 实例,然后 'update' 使用新记录加载它。根据您的需要,PivotData 可能会保留并预先计算 totals/totals,或者 'lazy' 汇总可能仅在访问总值时执行(这由 PivotData.LazyTotals 标志控制)。

关于

Normal size of data will be 1000 rows containing 60 facts and 6 dimensions.

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