我正试图在确切的时间点重新创建客户的状态。例如,每个客户都有许多可随时更改的属性(例如,风险评分,最新账单,客户满意度)。
每次客户提交信用申请时,我都希望在提交时看到所有这些特征的价值。随后,我想使用这些值来开发预测模型。
我的第一个想法是创建一个Type-2缓慢变化的维度,其中包含有效和到期日期/时间戳,并使用半开连接time_effective< = date_of_application< time_expired。
但是,大多数这些属性都是行为维度,需要使用事实表中的历史数据进行复杂的计算。此外,计算值也不能使用范围(0- $ 500,$ 500- $ 750等)进行分组。跟踪每个维度的所有这些属性会导致它爆炸。注意:某些值会每天更改,其他值会在任意时间点发生变化。
我理想的数据提取如下:
除了信用申请外,还有其他事实表,我希望找到在该事件发生时有效的特征。
处理此事的建议是什么?我看到了几种方法:
其中一些问题在Kimball的ETL工具包书(第190-192页)及其数据仓库工具包(187-191)中进行了讨论。在第154-157页,讨论了“快速变化的怪物尺寸”,这似乎非常相关。不过,我在实施这些建议方面遇到了麻烦。
答案 0 :(得分:2)
我会创建单独的应用程序事实表,其中包含相关表和相关记录的键。让我们假设您有以下维度和事实表:
然后您可以创建以下事实表Application Fact:
使用此方法,您可以获得时间一致的数据,并将应用程序维度保留在SCD0中(仅限更正)。