sql查询聚合和aggegration之间的区别以及查询OLAP多维数据集

时间:2015-05-25 14:18:17

标签: analytics data-warehouse olap olap-cube star-schema

我有一个查询,关于构建OLAP多维数据集与聚合数据库表中的数据进行查询的优势,比如6个月的数据,然后将sql表归档以用于分析目的。

哪一个更好,表格还是OLAP立方体?以及为什么我可以在我的表中聚合和保存数据,并在需要时查询汇总数据。

3 个答案:

答案 0 :(得分:2)

简短版本:与许多开发决策一样,取决于此。

长版本:我不会说一个人更好"而另一方面 - 只是两者有不同的用途,而另一种可能是更好的解决方案,具体取决于要求。

如果您有一些需要特定聚合的特定报告,那么所有参与者只需在表格或视图中汇总该信息并将报告指向该报告就可能更简单,更容易。

例如,如果您知道您的用户只想要针对特定​​参数集的月度报告 - 例如,您的销售部门可能想要每个销售人员的销售额的月度价值 - 那么您最好的选择可能是聚合它并将其弹出到报告中,他们可以选择月份和销售人员,并获得他们想要的数字。

这样做的好处可能是它可以快速开发并提供给您的用户,测试时间不会太多,因为只有少数数字需要检查,等等。您的用户也不会# 39;需要花时间训练/学习使用立方体 - 报告通常很容易让人们拿起和使用。

但是,如果您的用户希望能够以他们自己的条件进行更多开放式分析,那么如果您需要在每次有新要求时离开并制定报告,那么它并没有多大用处。您的数据库可能会开始充满类似但不同的表,其中包含汇总数量。您可能会遇到一个问题,其中一个报告由于某种原因而不同意另一个报告 - 您可能会发现您在每个报告中一遍又一遍地处理相同的数据质量问题。

在这种情况下,在用户想要分析的最低粒度的数据顶部开发一个多维数据集可能更有意义。通过这种方式,他们可以基本上自助服务,而不是每次需要一组新的聚合数据时都与您取得联系。他们可以使用多个不同的"参数对数据进行切片和切块。 (OLAP世界中的维度),而不是受报告性质的限制。

但是,即使您有一个多维数据集,聚合数据仍然有时会发挥作用。有时,通过将数据聚合到某个级别并将其保存在物理表中,并使OLAP工具使用该级别的物理聚合数据而不是使用自己的聚合,可以找到性能提升 - 但这是一个优化步骤,需要仔细考虑,看看它在性能方面是否有益,空间与性能的回报是否值得等等。如果你刚刚开始关注,我不会担心这方面的问题。 OLAP,但为了完整起见,我想注意它。

答案 1 :(得分:1)

为了增加Jo的好答案,请考虑需要汇总和比较的事实。如果您按产品进行每日销售,但按月和产品类别进行预算,则您需要基于销售额的汇总事实表才能比较预算。这将进一步表示为OLAP数据库中的两个多维数据集 - Sales cube和Budget cube。

答案 2 :(得分:0)

如果有非常常规的用例涉及特定的聚合数据,并且这些聚合数据需要一段时间才能从sql数据库表返回,那么多维数据集可能会有所帮助。

如果有很多可能的方法需要将您的数据库表数据切片并在聚合级别切割,那么开始使用olap肯定是一个很好的理由。立方体。

sums数据而言,olap是一个很好的聚合工具。我不相信它是不同计数的最佳工具,所以如果你的要求包含许多不同的数量,那么可能会寻找其他地方。你有Tabular/PowerPivot/DAX选项吗?