数据仓库设计新手。我有一个代表地理位置(例如郊区、城市、州)的非规范化维度表。这是一个缓慢变化的维度。
还有多个事实表,每个事实表都有不同的粒度级别。
是否可以对此进行建模,以便事实表使用代理键,同时维护非规范化维度表?
如果您实际上拥有相同的维度数据但粒度不同,那么您可以通过创建“聚合”维度来处理此问题。在您的示例中,复制 dim_geo 表定义(而不是数据),将 dim 命名为类似 dim_geo_city 的名称,并以比 city 更低的粒度删除所有列(例如 suburb_id、suburb)。如果您有州级别的事实,那么您将以相同的方式创建 dim_geo_state - 对于任何进一步的聚合级别依此类推。
Fact_population将继续引用dim_geo,但fact_housing应引用dim_geo_city。
填充聚合 Dim 的最简单方法是在基本 Dim (dim_geo) 上运行 SELECT DISTINCT,并且仅包含目标 Dim (dim_geo_city) 中存在的列 - 然后获取结果数据并应用适当的 SCD 逻辑来插入/将其更新为目标暗淡。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)