0

我正在研究将数据从 OLTP 移动到 OLAP 以帮助加快分析速度。我已经研究了我当前的问题 2 天了,但在任何地方都没有找到明确的答案。目前,我有一个高度规范化的关系模式,并且在将其转换为星型模式的事实表和维度表时,我无法弄清楚如何保留分层数据。有没有办法使事实表完全细化和规范化,同时保持从关系模式中获取的父表和子表的值?我不确定我问的是否正确,所以这里有一个例子:我正在记录钓鱼旅行的数据。我必须记录旅行和捕获的数据,因此我将这些数据存储到两个主表中(简化版本如下):

旅行(tripid,日期,装备数量,捕鱼时间,参与者)

捕获(三倍体,物种,性情,计数)

我将如何使用它创建一个事实表并保留渔具数量、捕鱼时间、参与者和物种计数,同时保持事实表规范化?我能想到制作事实表的唯一方法是:

事实(日期、物种、配置、渔具数量、捕捞小时数、参与者、计数)

日期、物种和处置是维度表的 FK,其余列是可量化的值。但是,这将被完全非规范化。这是执行此操作的适当方法,还是有另一种方法可以使父表和子表之间的关系具有可量化的值,并将其置于星型模式中?

4

1 回答 1

0
Fact(tripid, species, disposition, count)

Dim Trip(date, gear quantity, hours fished)
    Dim Gear(gear quantity) -- not necessary, really/possibly)
    Dim Participants(partipicant)

在不知道关系细节的情况下,这应该可行。

您还在评论中说:'......我正在努力获得更好的表现......'。我会敦促你不要这样做,直到你有一个可行的模式,然后可以实际衡量你获得的性能。预先设计性能问题被称为过早优化,通常不是一件好事。

于 2018-03-22T18:59:38.713 回答