维度建模-处理大量低频指示字段
维度建模-处理大量低频指示字段
说明
在维度建模的过程中,会遇到某些表,存在大量的指示字段,但是在和业务部门或BI部门确认后,发现这些字段的使用频率较低,为了应对这些指示字段,减小事实表的体积,可以通过建立"退化桥接表"或"稀疏属性桥接表"来实现这一效果。
示例事实表
以下是一个包含代理键、自然键以及4个指示字段的事实表示例:
示例数据
| 代理键 (ID) | 自然键 (Natural_Key) | 指示字段1 (Indicator_1) | 指示字段2 (Indicator_2) | 指示字段3 (Indicator_3) | 指示字段4 (Indicator_4) |
|---|---|---|---|---|---|
| 1 | ABC123 | TRUE | FALSE | TRUE | FALSE |
解决办法
可以通过创建一个桥接表,来汇总这些大量但是低频的指示字段,同时可以将这些被汇总的指示字段的维度表关联到此桥接表。通过该方法,可以大量减少事实表的体积,提高查询效率。
稀疏属性桥接表示例
以下是一个包含指示字段2、3、4的稀疏属性桥接表的表结构示例:
稀疏属性桥接表结构
| 桥接表键 (Bridge_ID) | 代理键 (ID) | 属性名称 (Attribute_Name) | 属性值 (Attribute_Value) |
|---|---|---|---|
| 1 | 1 | Indicator_2 | FALSE |
| 2 | 1 | Indicator_3 | TRUE |
| 3 | 1 | Indicator_4 | FALSE |
说明
- 桥接表键 (Bridge_ID): 用于唯一标识桥接表中的每一行。
- 代理键 (ID): 关联到事实表中的代理键。
- 属性名称 (Attribute_Name): 存储指示字段的名称。
- 属性值 (Attribute_Value): 存储指示字段的值。
通过这种方式,可以有效减少事实表的宽度,同时保留指示字段的信息。
处理之后事实表
| 代理键 (ID) | 自然键 (Natural_Key) | 桥接表代理外键(Brigde_ID_FK) | 指示字段1 (Indicator_1) |
|---|---|---|---|
| 1 | ABC123 | 1 | TRUE |
浙公网安备 33010602011771号