从SSAS / SSRS中的平面表创建OLAP多维数据集

时间:2015-08-06 12:53:13

标签: sql reporting-services ssas cube flat

我是那个话题的新手。我有一个包含统一事实表的数据库,其中包含日期,product groupproduct subgroupproduct actual name和一些calculations/statistics等数据。我需要做的就是使用olap cube创建一个报告。我有两个想法如何创建,但不知道哪个草稿更好(如果更正确)。原始的DAILY_REPORT ...表没有主键。它只是一个数据表。在第一个概念中,我使用ID创建了每个表(将作为维度),并在层次结构中连接product->family of product->project->building。另一个概念是没有所有ID和层次结构。根据名称自动创建关系。有人可以解释我应该向哪个方向倾斜......?

第一个想法: http://imgur.com/iKNfAXF 第二: http://imgur.com/IZjW1W6

提前致谢!

2 个答案:

答案 0 :(得分:1)

您可以按照以下步骤创建多维数据集:

  1. 为您想要拥有的每个维度创建单独的视图。在一个视图中对相似类型的数据进行分组,例如产品名称,产品组,产品分组等
  2. 将维度视图中的数据保留为DISTINCT数据。例如SELECT DISTINCT [Product Name], [Product Group], [Product Sub-Group] FROM TABLE
  3. 在每个维度视图中保留一个“ID”列,例如产品视图中的产品ID
  4. 为您的事实创建一个视图。在“事实”视图中包含每个维度的“ID”列。这将有助于您在“ID”列上创建关系,这将比在名称上创建的关系快得多。
  5. 为了在维度属性中创建层次结构,SSAS提供了拖放功能。
  6. 如果您需要更多详情,请与我们联系。

答案 1 :(得分:0)

您可以根据源数据中基于不同查询(即SELECT DISTINCT)的视图构建所需的维度。这些可用于填充尺寸。 您可以非常轻松地创建合成日期维度。

然后,您可以创建一个DSV,将DSV连接到事实表,以填充度量值组。

如果您需要伪造一个主键,那么您可以使用一个视图,该视图使用从row_number()或类似方法生成的列来注释事实表。请注意,这在运行期间不一定是稳定的,因此您不能依赖它来进行增量加载。但是,它可以很好地完成刷新。