SSAS环境或CUBE创建方法

时间:2014-09-08 10:07:57

标签: sql sql-server reporting-services ssas olap-cube

虽然我在SQL Server中有相对较好的曝光器,但我仍然是SSAS的新手。

我们将在SSRS中创建一组报告,并将数据源设置为SSAS CUBE。

有些报告涉及来自至少3或4个表的数据,还涉及从SQL环境中分组和所有可能的事情(比如查找一天的最大记录并加入另外4个表并在顶部应用过滤逻辑)它)

所以实际的问题是我应该在Cubes中实现这些逻辑还是在SQL数据库中处理它们(使用SSAS中的命名查询)并将结果存储在Cube中,这将显示在报告中?据我所知,后一个选项将涉及根据正在开发的每个报告创建更多Cubes。

我被告知使用事务表中的数据创建Cubes,并使用MDX查询(作为SSRS中的源)创建整个逻辑。我不确定这是否是一个可行的解决方案。

非常感谢任何帮助;感谢您阅读我的笔记。

阿鲁

编辑:我们正在使用SQL Server 2012版本进行开发。

3 个答案:

答案 0 :(得分:0)

如果您的模型并不复杂,我会看BISM表格。它将数据压缩并存储在内存中。至于数据处理,我建议将所有计算和分组保存在数据库层(创建视图)。

答案 1 :(得分:0)

所有计算和分组应至少以视图的形式在数据库级别完成。 存储数据主要有两种方式(MOLAP和ROLAP)。使用MOLAP存储模型处理存储事务类型数据的表。 客户对交易数据的期望(根据我的经验)是基于时间维度来理解销售。像上周或上个季度获得总销售额的东西。等等 MDX脚本基本上是Cube可以理解的一种SQL脚本。应该没有逻辑。根据SSRS报告中选择的参数,应准备MDX查询。小的分析函数,如小计,平均值可以通过MDX进行圆顶但不是复杂的计算。

答案 2 :(得分:0)

OLAP多维数据集非常适合执行数据聚合,可以同时对大多数列进行有效分组。您不应该努力在名称查询或关系视图级别实现所有分组,因为这将阻止您深入查看多维数据集中的数据,并在处理多维数据集时导致关系数据库上的不必要开销。

我首先计划从关系数据库中将最细粒度的数据提取到您的多维数据集中,并且只在数据量或处理时间受到关注时,才在命名的视图查询中执行过滤或分组。 SSAS将执行数据的一些默认聚合,以允许在最多分组级别进行快速查询。

通过使用不同的聚合,仍然可以在多维数据集中实现更复杂的关注点(例如max(someColumn)),但是如果您希望仅将一个函数(MAX)聚合到当天,则会遇到复杂的情况等级,然后通过其他维度的另一个函数(例如,将每个国家/地区的每日最大值相加)。在这种情况下,可能值得在命名查询或视图中执行每日最大计算,并将其加载到自己的度量值组中,然后由SUM聚合。

听起来你似乎是OLAP学习之路的开端,所以我鼓励你查看Kimball Group(没有从属关系)的资源,包括,如果你有时间,优秀的书"数据仓库工具包"。至少,请查看维度建模技术,因为如果在视图或命名查询中生成维度模型(可能是星型模式),您的多维数据集设计将更容易。