1. 业务过程
判断两个过程是不是同一个过程的两个指标: 是否同时发生,是否相同粒度。
贷款和还款计划: 同时,但是是1-n关系
还款计划和还款: 不同时, 也是1-n关系。
所以这是三业务过程
2. 粒度
为了适应更多的分析需求,最好尽可能从最细粒度建模。
贷款: 一个贷款单一行
还款计划:一个还款计划一行
还款: 一次还款一行。
3.维度
- 贷款业务过程:
贷款id :退化维度
客户:
贷款时间:
产品:
机构:
n个退化维度合并的杂项维度。
问题:产品和机构n-1 关系, 为什么拆成俩维度表?
原因:1 是为了方便 机构维度分析(可以假设产品100w,机构20个), 2 是防止产品和机构这俩完全不同的概念变化时导致生成缓慢变化维度,3. 后面会有单独机构维度的需求。
问题: 阿里巴巴大数据之路 建议退化维度, 为什么这里生成复杂的杂项维度?
原因: 退化维度在行存的数据库时,占据大量空间,不建议。 但是在hdfs等列存数据库时,基本不占空间,所以可以大规模使用,方便又没占空间,所以推荐。但是现在的结构里,后面的还款计划和还款需要继承贷款的所有维度,如果还是退化维度,会对下面的表造成严重污染, 而且贷款的退化维度可能会变。所以生成了一个抽象的杂项维度。
- 还款计