【问题标题】:Fact Table Load Approach事实表加载方法
【发布时间】:2014-03-26 11:51:11
【问题描述】:

我创建了基于星型模式的封闭数据模型,我已经加载了所有维度,但试图找出一种加载事实表的方法。

我在这里的困惑是外键,例如我有大约 6787 条来自“制造商”的记录,即 ManfID 表,但有大约 5 万条来自“Dim_Transactions”的记录,即事务 ID

不确定这将如何存储在 Fact 表中,这是设计缺陷吗?我该如何解决这个问题?

我认为这可以通过在所有键中设置多个值来管理,例如将有 50K 的事实记录与其他键重复自己。

如果是这样,我将如何加载事实表,我在这里使用 SSIS,并且还创建了查​​找文件以使用其他列唯一标识主键

【问题讨论】:

  • 为什么交易是一个维度,而 ATM 是一个事实?我认为应该反过来。交易是一个典型的商业事件,具有测量或事实(例如金额)和描述性信息,应该进入维度表(ATM 是这些信息的一部分)。

标签: database-design data-modeling etl ssis


【解决方案1】:

摆脱 dim_Transactions。分支和区域的嵌入维度存在于别处。如果需要,将 Approved、Declined 和 Reversal CashAmt 列聚合为 Fact_ATM 中的度量。

有时人们会在数据仓库或暂存数据库中保留一份事务表副本以供审计或报告,但没有理由将其置于星型模式中。

在某种程度上,我会为此感到悲痛,可以将事务视为尽可能精细的事实表。但是交易代表了一个原子事件,我想不出一个人怎么能居住在一个维度上。

【讨论】:

  • 这些都是好点,但根本不回答提出的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多