mysql构建数据立方体_数据立方体简介

假定我们有一个电商的销售数据集,其中包括时间、产品、地区、三个维度以及销售额这个度量数据。其中,各维度表构成如下:

时间维度:时间KEY(time_key)、日期(day)、月(month)、季度(quarter)、年(year)

产品维度:产品KEY(product_key)、产品名称(product_name)、品牌(brand)、产品类别(product_type)

地区维度:地区KEY(location_key)、城市(city)、省(province)、国家(sumry)

事实表构成如下:

事实表: 销售额(sales)、时间KEY(time_key)、产品KEY(product_key)、地区KEY(location_key)

人们很形象的将这种基于维度-事实建模方法得到的数据模型成为星型结构。基于这种结构,我们可以使用SQL分组从不同维度进行数据查询、分析,比如查询2017年每个月份的销售额:

select

t2.month,

sum(t1.sales)

from

sales_fact t1,

time_dim t2

where

t1.time_key = t2.time_key and t2.year = '2017'

group by t2.month

从这个例子中可以看到,在进行查询时需要进行表连接(join)、聚合等比较耗时的操作。为了解决表连接耗时的问题,工程上又提出宽表的方法,也就是接受数据冗余将维度表与事实表合并成一张表,以牺牲空间代价换取时间代价。但是,这仍然没有解决聚合耗时的问题,即使使用spark sql、persto这些新一代的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值