Snowflake经纪业:Plan与Custody Account维度多对多关联架构选型咨询
经纪业Snowflake多对多关联建模方案
一、键结构最优方案选择
方案对比与结论
- Option1:仅适用于需存储历史关联关系的场景,需持续新增代理键,当前需求仅需最新关联,暂不考虑。
- Option2:
最新Plan Dim Key + 最新Custody Account Dim Key + Plan Nbr + Custody Acct Number- 优势:保留维度代理键,若未来需关联事实表,可直接通过代理键关联维度表,避免自然键关联的性能损耗;同时自然键作为冗余字段,便于数据校验和追溯。
- 适配场景:不确定未来是否复用关联关系的情况,兼顾当前需求与扩展性。
- Option3:
Plan Nbr + Custody Acct Number- 劣势:仅用自然键关联,后续若需对接事实表,需通过自然键关联维度表,性能与关联效率低于代理键;且无法直接映射维度表的当前状态(若维度存在缓慢变化,自然键对应的代理键可能更新)。
结论:优先选择Option2,既满足当前仅需最新关联的需求,又为未来可能的复用场景预留扩展性。
二、表类型最优选择
Bridge Table vs Factless Fact对比
- Bridge Table:包含桥接组键,支持关联其他事实表,无需强制日期字段,适合作为可复用的关联中间表。
- Factless Fact:需强制包含日期字段,多用于每日快照场景,作为终点表(不对外关联其他事实表)。
结论:当前业务仅独立使用关联,但不确定未来是否用于其他事实表,因此优先选择Bridge Table。它既满足当前独立使用的需求,又能在未来需要时直接对接其他事实表,避免后续重构成本。
三、Bridge Table与Factless Fact决策树
- 判断是否需要复用关联关系
- 是 → 选择Bridge Table
- 否 → 进入下一步
- 判断是否需要记录时间维度的快照(如每日关联状态)
- 是 → 选择Factless Fact(需添加日期字段)
- 否 → 可选择简化版Bridge Table或直接用自然键关联(根据性能需求)
内容的提问来源于stack exchange,提问作者Sunil
相关产品推荐
相关产品推荐

