我是数据仓库项目的新手,想在这里寻求社区的建议。
我需要创建一个数据仓库,可以以最有效/最便宜的方式从中提取历史和当前信息。在这个特定的示例中,我们正在处理网站用户和偏好。
我们有一个 Users 表,一个名为 Preferences 的属性表(带有首选项的名称和 ID),然后是一个名为 User_Preferences 的连接事实表。与其将所有历史和偏好更改/删除/添加存储在 User_Preferences 表(可能是数百万行)中,不如拥有 2 个表更有意义,一个用于当前偏好,一个包含所有偏好历史(使用是当前标志)?在 ETL 过程中,我们会将 prod db 中的所有历史数据加载到一个 dw 表中,然后仅将新 dw 表中 isCurrent=1 的那些记录插入到另一个仅存储当前首选项的 dw 表中。
从业务的角度来看,大多数查询将在当前数据上运行,因为客户只关心用户当前的偏好。更少数量的查询需要返回有关用户对企业内部利益的偏好的完整历史信息。
感谢您的任何帮助,您可以提供!