文章目录
- 数据仓库工具箱
- 第10节 金融服务
- 银行案列研究与总线矩阵
- 对维度进行分类以避免维度太少的陷阱
- 家庭维度
- 多值维度与权重因子
- 报表的动态范围值实时
数据仓库工具箱
第10节 金融服务
金融服务涉及各行业,如信用卡公司,抵押贷款提供商等,日常接触的零售银行。一家银行提供广泛的产品,包括活期存款,储蓄账户,按揭贷款,个人贷款,信用卡以及银行贵重物品保险箱等。
主要讨论如下概念:
银行总线矩阵片段
对维度进行分类以避免维度太少的陷阱
家庭维度
用一个账户关联多个客户的桥接表,以及权重因子。
报表的动态范围值实时
银行案列研究与总线矩阵
业务用户希望看到每个账户5年的,以月为单位的历史快照数据。
每个账户有一个基本的余额。业务上希望用同一个分析来分组不同类型的账户并比较余额
每个类型的账户(银行的产品)有一系列自定义维度属性和数值事实,其内容不同的产品差异大
每个账户认为属于某一家庭。因为婚姻状况变化和其他不同生命阶段因素,导致账户家庭关系产生大量变化(每天都有人死亡,结婚,离婚)
除了家庭之外,对人口统计信息关注,以个人或家庭为单位。此外,关注每个账户和家庭的行为积分,如存储行为等特征
对维度进行分类以避免维度太少的陷阱
对于用户月快照事实表这个需求,一般需要在dwd层建立一个周期型快照事实表,ods使用全量数据同步。dwd层再去关联其他事实表的维度,例如家庭维度,账户维度,产品维度,账户状态维度。这里的维度数量很多,将他们放在一起是不行的,因为会造成单个表数据量过大,而且在业务场景中家庭,产品这些都是分块的功能。我们可以按照家庭,产品,账户等建立多个表,然后关联到月份周期型快照事实表,这和一个星型模型建模类似,一个事实表关联多个表。
家庭维度
从银行角度,家庭可能由几个账户和独立的账户拥有人构成。构建商业上的家庭需要设计业务规则和算法以将账户分配到家庭中。
之所以将家庭和账户维度分开是因为,账户维度的大小和家庭维度不一致,如1000万条账户可能只有300万条家庭数据,导致重复存储家庭数据。而且家庭维度中的账户有很大波动性,家庭维度为与事实表关联提供了更小的入口点,不需要遍历1000万条事实表数据。将家庭与账户分开可以应对两者的不同数据量,以及应对家庭关系中的账户发生频繁的变化。
多值维度与权重因子
在账户维度表中,一个账户可以对应多个客户,多个客户共同拥有此账户,显然这种1对n的关系,无法将客户作为账户维度表的一个属性。我们可以再建立一个桥接表,桥接客户和账户,在该表中描述这种1对多的关系,使用客户表主键和账户表主键关联两个表的数据。
权重因子,为同一个账户的客户分配权重,其和为1。权重因子是为了在计算以客户为基础的一些事实时,给客户分配可加的事实。
报表的动态范围值实时
假设需要查询范围值报表的能力,如需要余额在0-100,100-500,500-550。可以将这一组分组规则存储在一个单独的范围定义表,使用一个lower value和upper value代表一个范围,同一个group_name的是同一组分组规则。范围定义表属性有 lower value,upper value,group name.