如何从Excel转向设计数据仓库模型?

问题描述 投票:1回答:1

本人刚开始接触数据仓库建模,需要帮助建模的问题。

让我告诉你事实。我的工作是飞行数据(航空数据),所以我有两个Excel(事实)文件,连接在一起,一个文件是 "订单",另一个是 "服务"。

  • 订单 "文件列出了每个航班的摘要(订单ID,出发日期,到达日期,出发城市,到达城市,总金额等)。
  • 服务 "文件列出了航班提供的服务(订单ID、服务名称、数量、金额数量等),关系为1-n(订单-服务),每个订单有n个服务。

我已经看到了一些维度(时间,地点,等等......),但是,我想知道如何设计我的数据仓库,因为我知道我有两个事实文件通过orderId连接在一起。然而,我想知道如何设计我的数据仓库,知道我有两个事实文件通过orderId连接在一起。

我想了想,星星和雪花模式在我的情况下是行不通的(因为我有两个事实表),而星系模式要求有共同的维度,但我阻止了它,是我把订单表作为一个维度而不是事实表,或者我应该宁可把服务表作为一个维度,但这些都是事实表。我有点糊涂了。

我该如何设计我的模型?

data-modeling data-warehouse business-intelligence modeling
1个回答
2
投票

首先要认识到,在一个 星图连接更多的事实表不是问题。 - 见仁见智 此处.

所以第一次抽签会简单的按照你的 两张事实表与本地提供的尺寸.

订购 在一种情况下是 资料表在其他情况下,a 尺寸表 对于 服务 表。

根据你的预期查询,你会发现有用的是 非正态化秩序 表中 服务 表。因此,服务将定义出发日期、到达日期等维度。

这将在ETL工作的加载时间完成。

我将以某种方式 慎重地将措施非正常化秩序服务 - 这将基本消除整个 秩序 表。

措施不会有问题。收款总额 如果这是一个多余的服务金额的总和 - 你可以安全地摆脱它。

但您需要确定的是 航班数运送人数 - 这些措施在《公约》中得到了更好的界定。秩序 事实表;你不能简单地将它们复制到N行中,为每个 服务.

A 变通办法 是可能的,如果你定义一个 总务 对于每个 秩序 而这些措施只在这一行中定义--在其他行中,该值为NULL。如果天真地查询,这可能会导致意想不到的结果,例如每个服务的航班数量。

因此,基本上我会从两个事实表开始,并对服务的一些维度进行去标准化,如果这有助于优化查询的话。.


0
投票

我将从一个事实表开始 服务项目. 这个事实将包括所有你可能会联想到的维度。订购 包括OrderId的退化维度。

一旦这个事实被构建出来,一些信息产品也在消费它,返回到 订购 并重新评估,看看是否有任何报告需求没有得到满足,或有哪些问题难以用 "大数据 "来回答。服务项目 事实。

将两个事实连接在一起总是一个坏主意。 性能很差。 你总是最好把尺寸从,在你的情况下。订购服务项目. 不要忘了在列名中包含维度的上下文,并为这个上下文提供相应的角色扮演维度视图。 如:OrderArrivalCity,OrderDepartureDate,OrderDepartureTime。

你还可以给自己买一本Ralph Kimball的 数据仓库工具包

© www.soinside.com 2019 - 2024. All rights reserved.