影响事实的维度 table

Reaffecting dimension of fact table

开始建星图了,喜欢^^

我在维度建模方面遇到了设计问题。

对于星型模式中的每笔交易,我都有一个事实 table(最高粒度) 类似的东西(简化版)

transaction_facts
- id
- account_dim
- date_dim
- status_dim
- amount

status_dim
- id
- code
- description
- final

对于交易,在处理时未明确定义状态。 大多数状态都属于这些情况:

最后一个状态是有问题的,因为我可以在原始交易后几天(最多 10 天,有时甚至更多)收到交易确认。

我应该如何处理这种迟到的变化?直觉上,我很想将现有交易重新影响到新维度,但这让我想到了两件事:

如果

  • 这不需要是真的 "financial transaction" table AND
  • 您不需要保留值的历史记录(例如,什么是 截至前一个日期的值)

然后你can/should更新值。

如果使用 Redshift,那么您可以通过将一批更新写入暂存 table(从 s3 复制)然后一次性应用这些作为更新来高效地完成此操作。