如何表示OLAP 4D长方体?

时间:2016-01-15 14:35:37

标签: data-warehouse olap cube olap-cube

我正在进行下面发布的练习。我不太明白如何在纸上代表第四个维度。如果只是客户,日期,产品将是直截了当的。为了获得第四个维度,我是否需要汇总某些内容?

我打算深入研究产品化妆品,按时骰子(在2010年1月之后获得所有产品)并切片化妆品。

  

假设市场购物数据仓库包含四个维度:   客户,日期,产品和商店,以及两种措施:计数和平均值   销售额,其中平均销售额将实际销售额以磅为单位存储在最低点   等级,但其他级别的相应平均销售额。

     

从基本长方体[客户,日期,产品,商店]开始,什么   特定的OLAP操作(例如,汇总学生到部门(级别))   应该执行以列出每个的平均销售额   化妆品自2010年1月起?解释你的答案。

1 个答案:

答案 0 :(得分:1)

不要将星型模式中的维度与空间和时间的维度混淆。像时钟一样在视觉上放置这个,你的事实表是表盘的中心,你的尺寸是12,3,6和9点钟。

明星模式大概有一个事实(销售),其粒度未定义,但可以合理地假设为白天。

问题是不精确的,因为它没有定义平均值"是要计算的。我们可以计算每天的平均销售额,但是由于已经提到了卷起,并且我们已经给出了一个月/年的起点,我们假设它是平均每月销售额。

我们也假设"化妆品"代表一组产品,我们已经在产品维度中定义了这些产品。

我们的日期维度可合理地带有年月属性。通常会看到这一点。

SQL查询可能如下所示:

select    product.name,calendar.year_month,avg(sales.amount)
from      sales
          left join product 
              on product.id = sales.product_id
          left join calendar 
              on calendar.id = sales.calendar_id
where     calendar.year_month > '2010-01'
          and product.category = 'cosmetics'
group by  product.name,calendar.year_month

由于您已被要求进行OLAP操作,因此语法会因产品而异。从概念上讲,您的想法是正确的,准时(年 - 月)和产品(类别)和平均销售。您可以忽略此查询的客户和商店维度。

这有意义吗?