数据仓库设计与ETL及维度模型构建指南
1. 缓慢变化的延迟处理
在数据加载过程中,缓慢变化的延迟处理会带来挑战。当事实数据加载时看似正确的维度记录,可能会被后续到来的变更所取代。可以通过使用带时间戳的维度来解决这个问题。每当向维度中添加记录的新“版本”时,都会为其标记一个生效日期。扫描自然键值的现有事实,将更新版本生效后发生交易时间的记录进行更新。
2. 内务管理列
在维度设计和ETL过程的讨论中,内务管理列是不可忽视的一部分。维度表中的内务管理列通常并非供最终用户使用,而是用于辅助特定的ETL或报告活动。事实表的每一行也可以附加类似的内务管理信息。
2.1 维度表中的内务管理列
维度表中的列分为代理键、自然键或维度属性。维度属性通常分为类型1和类型2,也可能存在类型3属性,用于存储与类型1属性关联的先前值。内务管理列用于指定通常不供最终用户使用,但对加载过程或ETL过程有用的列。以下是一些常见的内务管理列及其作用:
| 列名 | 作用 |
| — | — |
| current_version | 用于仅筛选维度表中的当前版本记录,在浏览查询或加载事实时识别事务的适当代理键可能有用。 |
| effective_date和expiration_date | 在需要支持维度的时间点分析时有用,避免构建单独的事实表来跟踪更改历史,也可在加载事实时识别每个事务的适当代理键。 |
| type1_hash和type2_hash | 可用于简化ETL过程中类型1和类型2更改的识别。 |
| creation_date | 包含每行插入表的日期和时间。 |
| updat
超级会员免费看
订阅专栏 解锁全文
17

被折叠的 条评论
为什么被折叠?



