数据仓库工具箱——维度建模(Dimensional Modeling)摘要(三)

      我们将从3个互补的库存模型开始。

 

      库存周期快照。每天(或者其他固定周期)记录每个商场里每个商品的库存量。假设我们有100家商店,每家有6万个商品,那么我们每天会生成大约6百万条数据。如果每条数据仅14字节,那每天就会增加84M的空间存储,一年就超过30G。一种折衷的办法是,保存近60天每天的库存快照和60天之前每周的库存快照。这样3年下来原本每个商品1095条记录就能缩减到208条,只占了不到原来的五分之一。

      半可加型事实(semiadditive facts) 库存周期快照中的事实在大部分维度上都是可加的,但在时间维度上是不可加的。因此该事实表具有半可加性。

      类似这样在静态水平上进行的度量值(又如账户结余),在时间维度上不可加。但是在时间维度上的聚合可以考虑用平均值。请注意这种均值计算,其分母是基于需求相关的时间粒度进行的。一般情况下,该分母要单独进行计算,而不能使用sql内置函数。

      改进一下库存快照,将该仓库的消耗量(quantity sold)、成本和售价添加进去,则可以引进下面几个公式:周转数(the number of turns)=当日销售量(或某时间跨度内销售总量)/当日库存量(该时间跨度内平均日库存量);日供应数=最后库存量/日平均销售量;库存毛利润GMROI(Gross Margin Return On Inventory)=(销售总量*(售价-成本))/(日平均库存*售价)=周转数*毛利润率。GMROI是分析师判断公司库存投资质量的标准指标。GMROI是不可加的,并且可以跨各种粒度进行计算。因此该值总是根据需要随时计算,而不存储在表中。

      突然间有个奇怪的想法,对银行来说,存款算不算是库存呢?

 

      库存事务。记录影响库存的每个事务。这些事务通常包括:收货、送检、过检产品分发、不合格产品退回厂商、产品入柜、产品销售审批、产品出柜、打包、发货、退货、退回到库、库存删除。每个库存事务都标识日期、产品、仓库、厂家、库存事务类型和总量(表明该事务对库存的影响)。

      库存事务可以回答很多与时间相关的问题。诸如:入柜当天又出柜的产品,我们在那天入柜了几次?我们从某一厂商那收货几次,什么时候收货的?哪个产品因检验不合格退给厂商超过一次?

      库存事务通常不会单独使用。一般会和某种形式的快照配合使用。

 

      库存累积快照。用一行记录产品在库存期间的每一个阶段(每个阶段作为列,引用日期维度的不同视图)。那么每个阶段(例如收货、检验、打包等)都必须是事先定义好的,然后我们在产品提供状态。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值