我正在设计一个新的周期性快照事实表。我正在调查健康保险索赔、人们欠保险公司的钱以及他们已经支付的金额。表中的数据将如下所示。
CLAIM_ID TIME_KEY AMOUNT_OWED PAID
123 31.1.2000 1000 0
123 28.2.2000 900 100
123 31.3.2000 800 200
123 30.4.2000 0 1000
123 31.5.2000 0 1000
123 30.6.2000 0 1000
123 31.7.2000 0 1000
123 31.8.2000 0 1000
...
正如您在2000年4月30日之后看到的那样,为claim_id 123插入新数据是没有意义的,因为它不再发生变化(有合理程度的确定性,这不会发生(。停止为此索赔插入数据是个好主意吗?还是应该一直插入到时间结束:(?
我主要关心的是在设计数据仓库表时坚持最佳实践。
谢谢你的回答!
只是一些想法。。。
- 除非你可以在一天内对一项索赔进行多次付款(以及可能的其他交易,例如增加欠款的利息(,否则你所展示的并不是一个简单的事实,而是一个交易事实。给出的正常示例是一个银行账户,您每天有多笔入/出交易,然后是日末(或月底(头寸的快照。显然,我不知道你的商业模式,但似乎不太可能每天针对一项索赔进行多笔交易
- 如果自上次事实记录创建以来,索赔没有任何变化,那么创建新的事实记录似乎没有什么意义
如果您有,通常会选择定期快照
a( 大量交易和
b( 你需要在某个时间点(在你的情况下是月底(有效地访问数据
如果你每月有50笔索赔交易,并且索赔平均有效一年,即使你将持有50年的无效索赔,你也会从这种设计中获利(你可能不会这样做;(
您的疑虑表明您在每个索赔生命周期中没有那么多交易。在这种情况下,您应该考虑存储每个事务的事实表。
对于非活动声明,您将完全没有开销,但要在特定时间获得快照信息,您必须读取整个表。
相反,周期性快照通常在快照时间上进行分区,因此访问非常有效。没有免费午餐,节省空间并有效访问。