数据仓库 - 在事实表中存储历史数据

Posted

技术标签:

【中文标题】数据仓库 - 在事实表中存储历史数据【英文标题】:Data Warehouse - Storing historical data in Fact table 【发布时间】:2014-02-26 19:37:09 【问题描述】:

我是数据仓库的初学者。我们创建了一个数据集市,一个星型模式设计来加载季度数据。当该季度的业务批准时,我们一直在加载当前数据。

现在我们需要返回并加载历史数据(3 年,大约 40GB)。加载此数据的维度将与用于季度加载的维度相同。但是,我们可以将这些历史数据加载到同一个事实表中,还是必须创建一个重复的事实表来单独加载历史数据?那是DW标准吗?我正在尝试按照标准找到执行此操作的方法。

当前事实表在 load_cycle_date 上进行日期分区,该日期指定了加载数据的季度。

非常感谢!

【问题讨论】:

DW 包含历史的汇总数据,您担心什么? 嗨 Rano 我担心的是历史数据(合并 3 年)是否可以加载到我们一直用来加载季度数据的同一个事实表中。 假设从现在开始只插入未来三年的季度数据,会发生什么变化? 感谢您的回复!每季度插入新数据就可以了。但我想知道如何插入历史数据(合并 3 年,不按季度细分)。我可以使用现在用于加载季度数据的同一个事实表,还是应该创建一个新的事实表来仅加载历史数据并将其映射到现有维度? 您现在必须指定历史数据的汇总量以及事实表的架构是什么 【参考方案1】:

我不明白为什么获取历史数据和使用旧的 load_cycle_dates 不适合您现有的表。这假设您能够将它们转换成这种格式。这是基于这些年来数据结构发生了多少变化。

您还需要研究其他方面:

    您的所有维度是否都有足够的历史值?示例:客户评级。可能有些客户最终被评为“差”,但以前并非如此。每次更改都需要记录。另一种方法是从备份中提取数据。 审批流程 - 很多数据差异通常在此开始之前不会被发现。因此,进行这些更正的应用程序可能已发生更改。您可能会发现,某些报告基于此“先前的数据仓库”数据运行,并不准确。

您没有理由不能在四分之一时间内执行此操作并对其进行测试。这是您确定的唯一方法。我使用的当前数据仓库在数据仓库启动之前经历了相同的添加数据过程。转换很常见。

【讨论】:

以上是关于数据仓库 - 在事实表中存储历史数据的主要内容,如果未能解决你的问题,请参考以下文章

数据仓库事实表中的更新

数据仓库星型模式的维度表和事实表中的数据如何?

数据仓库中的维表和事实表

使用触发器链接到数据仓库中事实表中的时间维度是个好主意吗?

Hadoop之数据仓库设计

Hadoop之数据仓库设计