我正在纠结我是否应该将这些数据作为事实表或维度表存在,并希望得到一些帮助。
一般而言,数据和业务流程是客户/账户持有人的计费活动(客户=账户持有人)。大多数客户按月计费。原始源数据以行 = 客户的粒度存在。因此,当客户的帐户信息更新时,他们的记录也会更新,而不是创建新行。
有很多措施让我想说我应该创建一个事实表。这些包括
bill_total
,bill_amount_reamining
和notice_amount
。但是由于源数据只是更新而不是创建新行,所以我对如何声明这个新事实(或者可能是暗淡的)表的粒度感到困惑。
同样重要的是,我提到我想跟踪历史,而不仅仅是最近的数据。那么在事实表上有像
effective_date
和 end_date
这样的字段是可以接受的吗?或者如果我想要这样的字段,我应该创建一个维度表吗?
希望提供足够的上下文,如果需要,很乐意添加更多细节。
客户的账户信息属于一个维度,如果要保留历史,那么它需要是一个SCD(渐变维度)。
bill_total、bill_amount_remaining 和 notice_amount 等措施属于事实表,具有相关维度的 FK——例如您的帐户暗淡、日期暗淡等