我正在开发一个数据仓库解决方案,并且正在尝试从SQL Server数据库中保存的表构建一个维度模型。其中一些表格包括但不限于客户、客户付款、客户地址等。
DB中的所有这些表都有一些字段,这些字段在每个表中重复多次,即记录更新日期、记录创建日期、活动标志、关闭标志和其他一些字段。这些表在某种程度上都与客户相关,但这些表可以独立更新。
我正在构建这些表背后的维度,但我正在努力了解如何以优雅的方式处理这些重复的字段,因为它们都在使用中。
我非常感谢那些有类似经验的人的指导,因为我才刚刚起步
如果需要更多细节,我很乐意提供
谢谢
发布于 2019-07-17 18:22:30
在考虑如何包含它们之前,先问一下这些元数据字段是否需要包含在维度模型中?如果没有人使用客户付款更新日期(与创建日期或付款日期相比),请不要将其纳入您的模型。如果客户模型包含当前地址,则不需要同时包含CustomerAddress.Active标志。您不需要模型中的每个OLTP字段。
记录下你在谈话中是如何谈论这些领域的。您如何识别当前客户地址?检查CurrentAddress标志(CustomerAddress.IsActive)。客户的付款时间是什么时候?检查客户付款日期(CustomerPayment.PaymentDate或可能的CustomerPayment.CreatedDate)。试着用通用的语言来描述它们。这将提供最大的成功,使您的模型可被用户发现并直观地使用。
对模型和源代码中的列进行尽可能相似的命名也有助于维护和故障排除。
此外,请确保您正确地描绘了实体。客户付款可能与客户处于不同的维度中。当前地址可能在customer中,但如果历史地址详细信息中有任何值,则将其放入其自己的维度以及Active标志中可能是有意义的。
https://stackoverflow.com/questions/57045353
复制