事实表的影响维度

时间:2018-11-12 08:35:41

标签: database-design amazon-redshift data-warehouse star-schema

我开始构建星型模式,我喜欢它^^

我在尺寸建模方面存在设计问题。

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

transaction_facts
- id
- account_dim
- date_dim
- status_dim
- amount

status_dim
- id
- code
- description
- final

对于交易,状态在处理时没有明确定义。 大多数情况都属于以下情况:

  • 交易还可以
  • 交易是ko
  • 交易尚可,但有待确认。

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

我应该如何处理这种较晚的更改?凭直觉,我很想将现有交易重新影响到新维度,但这使我想到了两件事:

  • 这是一个好习惯吗? (请勿重写历史记录等...)
  • 如何处理BigQuery或Redshift或仅附加系统中的此类更改?在非常多的行上,这将是一个问题,因为这些系统不能很好地与更新配合使用

1 个答案:

答案 0 :(得分:1)

如果

  • 这不必是真正的“金融交易”表,并且
  • 您不需要保留值的历史记录(例如, 截止日期的值)

然后您可以/应该更新该值。

如果使用Redshift,则可以通过将一批更新写入登台表(从s3复制)然后一次全部应用这些更新来有效地做到这一点。