零售销售数据处理:事实表与维度表的关键要点
1. 新增测量事实的处理
在数据处理中,当有新的测量事实出现时,我们需要将其合理地添加到事实表中。最简单的情况是,新事实与现有事实处于相同的测量事件且粒度一致。此时,我们可以直接修改事实表,添加新的列,并将对应的值填充进去。若新事实只能从某个时间点开始获取,那么在旧的事实行中需要填入空值。
而当新测量事实的粒度与原事实表不同时,情况会变得复杂。若新事实无法分配到原事实表的粒度上,就应该为其创建独立的事实表,因为在同一事实表中混合不同粒度的数据是错误的做法。
2. 无事实事实表的作用
传统的零售销售模式无法回答“哪些促销产品未售出”这一重要问题。销售事实表仅记录实际售出的商品,对于未售出的商品,不会在表中添加零事实行,因为这会极大地扩大事实表的规模。
为了解决这个问题,我们需要引入促销覆盖或事件事实表,即无事实事实表。在这个案例中,该表的键包括日期、产品、商店和促销。它与销售事实表看似相似,但粒度有显著差异。对于促销覆盖事实表,无论产品是否售出,每天(或每周,如果零售促销周期为一周)都会为每个商店中参与促销的产品加载一行数据。
这个事实表能让我们看到由促销定义的键之间的关系,而不受实际产品销售等其他事件的影响。为了便于计数,我们可以添加一个虚拟事实,如促销计数,其值始终为 1,这样可以让商业智能(BI)应用避免对某个外键进行计数。
要确定哪些促销产品未售出,需要分两步进行:
1. 查询促销无事实事实表,确定某一天参与促销的产品范围。
2. 从销售点(POS)销售事实表中确定实际售出的产品。
最终答案就是这两个产品列表的差集。如
超级会员免费看
订阅专栏 解锁全文
1140

被折叠的 条评论
为什么被折叠?



