我有一个关于构建OLAP多维数据集与在数据库表中聚合数据以进行查询的优点的查询,比如6个月的数据,然后为了分析目的将sql表归档。
哪一个更好,桌子还是OLAP立方体?以及为什么我可以在表中聚合和保存数据,并在需要时查询聚合数据。
发布于 2015-05-25 16:00:20
短版本:和许多开发决策一样,它取决于。
长版本:--我不会说其中一种比另一种好--只是两者有不同的用途,而其中一种可能是更好的解决方案,这取决于需求是什么。
如果您有几个需要特定聚合的特定报告,那么对于每个参与其中的人来说,仅仅将这些信息聚合到一个表或视图中,并将您的报告指向该表或视图,可能会更简单、更容易。
例如,如果您知道您的用户只想要一组特定参数的月报--例如,您的销售部可能想要每个销售人员每月的销售额--那么最好的办法是将其汇总到一个报表中,在报告中他们可以选择月份和销售人员,并得到他们想要的号码。
这样做的好处可能是开发和提供给用户的速度很快,测试时间也不长,因为只有几个数字需要检查,等等。您的用户也不需要花时间接受培训/学习使用多维数据集--人们通常很容易获取和使用报表。
但是如果您的用户希望能够按照他们自己的方式进行更开放的分析,那么如果您每次有新的需求时都需要离开并编写一份报告,那就没有多大用处了。您的数据库可能会开始充满类似但不同的表,这些表都是聚集的金额。您可能会遇到这样的问题:一份报告由于某些原因而与另一份报告不一致--您可能会发现在每个报表中都一次又一次地处理相同的数据质量问题。
在这种情况下,在您的用户希望分析的最低粒度数据的顶部开发一个多维数据集可能更有意义。通过这种方式,他们基本上可以自我服务,而不是每次他们需要一组新的聚合数据时都与你保持联系。它们可以使用多个不同的“参数”( OLAP世界中的维度)对数据进行切片和剪裁,而不是受报告性质的限制。
尽管如此,聚合数据有时仍然扮演一个角色,即使您有一个多维数据集。有时候,通过将数据聚合到某个级别并将其保存在一个物理表中,并让您的OLAP工具在该级别使用物理聚合数据而不是使用它自己的聚合,可以获得性能上的提升--但这是一个优化步骤,需要仔细考虑,看看它在性能方面是否有益,空间与性能的回报是否值得等等。如果您刚刚开始研究OLAP,我不会担心这个方面,但是为了完整性,我想注意它。
发布于 2015-05-26 03:04:03
为了补充乔的伟大答案,请考虑一下需要汇总和比较的事实。如果您有按产品分类的日销售额,但按月和产品类别列出预算,则需要一个基于销售的汇总事实表,以便比较预算。这将进一步表示为OLAP数据库中的两个多维数据集-- Sales多维数据集和预算多维数据集。
发布于 2015-06-02 23:49:38
如果有非常常规的用例涉及特定的聚合数据,并且这些聚合数据需要一段时间才能从sql数据库表返回,那么多维数据集可能会有所帮助。
如果您的db表数据需要在聚合级别上进行切片和切分的潜在方式很多,那么肯定有一个很好的理由可以开始使用olap多维数据集。
在数据的sums方面,olap是一个很好的聚合工具。不过,我不认为它是用于不同计数的最佳工具,所以如果您的需求包含了很多不同的计数,那么可能会在其他地方查找。你可以选择Tabular/PowerPivot/DAX吗?
https://stackoverflow.com/questions/30440433
复制相似问题