如何建立表关系实现单个筛选器同时过滤Fact Agent与Fact SSIS表
关联关系搭建方案
方案1(推荐):构建公共一致性维度表
- 提取
dim_agentjobs和dim_SSIS两张维度表中customer_code、servername、instancename三个字段的所有唯一值,生成独立的公共维度表,可命名为dim_instance - 建立4组一对多单向关联,关联方向均为从
dim_instance指向关联表:dim_instance关联dim_agentjobs的三个对应字段dim_instance关联dim_SSIS的三个对应字段dim_instance关联fact_agent的三个对应字段dim_instance关联fact_SSIS的三个对应字段
- 筛选器直接绑定
dim_instance的三个字段即可同时过滤两张事实表,该方案符合星型模型设计规范,查询性能和后续扩展性最优。
方案2(轻量适配现有模型):新增维度间关联并开启双向筛选
- 建立
dim_agentjobs和dim_SSIS两张维度表的关联,关联字段为customer_code、servername、instancename,基数设置为多对多 - 开启该关联的双向筛选,使
dim_agentjobs的筛选条件可以传递到dim_SSIS,进而过滤fact_SSIS - 注意:该方案仅适用于两张维度表的三个字段值完全对齐的场景,多对多关联会带来额外性能开销,大数据量场景不推荐使用。
内容的提问来源于stack exchange,提问作者Mathies Skov Jeppesen
相关产品推荐
相关产品推荐

