Kimball建模方法的精髓,就是简单、使用,建模这四步骤是它的核心部分。用术语表达是:始终一致的四步设计维度模型,分别以下:性能
业务过程是由组织完成的一系列微观活动,例如:完成下单、完成支付、发放代金券、上线产品等等。充分理解它们,有助于辨别组织中的不一样业务过程,它通常具备这些特性:操作系统
数据仓库人员不只要详细了解业务过程,还要充分理解用户需求(特别是他们的KPI),由于用户通常很难回答:“你对哪些业务过程感兴趣”,而是使用BI分析来自业务过程的性能度量设计
咱们即须要理解上面的什么是业务过程,也须要理解以下的什么不是业务过程,这样才能取舍。好比不一样部门的功能划分就不是业务过程,咱们应该将注意力放在业务过程而不是不一样的部门,这样才能避免重复的获取数据。blog
粒度是说明事实表的每一行表示什么。好比:用户下单的内容放倒订单事实表的每一行中。这里的关键是粒度的描述,不能讲维度列出来,而代替粒度声明。这一步特别容易被忽略,粒度声明须要达成共识,不然极有可能到下面三四步以后返工重来事件
若是粒度合适,维度很容易肯定,由于维度是用来描述:“谁、什么时候何地、为什么、如何”。好比订单经常使用的维度是:日期、产品、供应商、订单状态、退款状态等产品
用“业务的度量是什么”来思考事实。属于不一样粒度的事实要放在不一样的事实表中。效率
有人可能疑惑粒度和事实的区别是啥,粒度说明了事实的每一行表明什么意思,而事实是里面包含哪些列,好比成交金额、退款金额、购买份数等等方法
强烈抵制仅仅考虑数据来源作为建模的方案,好比订单类数据,是从交易系统获取的,那么就将这些数据放在一块儿。这样虽然比了解业务过程方便不少,但数据不能代替用户的输入,这样作基本注定会失败!im
须要综合考虑业务用户需求和数据来源的实际状况,并与上面四步联系起来,以下图所示的建模方案:支付
在现实应用中,事实表是须要作适度冗余的,kimball之因此减小冗余,目的是减小存储消耗。而在实际中,须要考虑下游用户的使用效率,下降获取数据的复杂性,减小关联表的数量,因此冗余好比产品名称、品类名称等,这样就提高过滤查询、统计聚合的效率