1. 首页 > 资讯

数据仓库中的七种建模方法及示例

试象一下,你是一家繁忙餐厅的分析工程师。每天,顾客都会预订、下订单并完成付款。所有这些数据都会流入餐厅的交易数据库,记录每次互动的详细信息。

但是,事务型数据库虽然非常适合日常运营,但并不适合分析数据以发现有助于业务增长的趋势和见解。这就是数据仓库的作用所在。数据仓库是一个单独的数据库,经过优化,可用于存储大量历史数据以及快速查询和分析。

挑战在于如何构建仓库中的数据,以便进行高效分析,同时保持足够的灵活性以应对不断变化的业务需求。数据仓库中的数据建模有几种常见和不太常见的方法。在本文中,我们将介绍七种关键的建模技术,权衡它们的优缺点,并帮助您为数据仓库选择正确的方法。

一、事务数据库示例

在深入研究数据仓库建模之前,让我们简单看一下餐厅的典型事务数据库可能包含哪些内容:

交易数据库使用针对处理交易进行优化的规范化结构。但这种结构使分析和报告更加困难。数据仓库建模方法对数据进行非规范化和重组,以优化整合层中的分析,同时仍便于快速写入加工层。

二、数据仓库建模方法

1.第三范式(3NF)

第三范式 (3NF) 是一种经典的关系数据库建模方法,可最大限度地减少数据冗余。在 3NF 中,每个非键列仅依赖于表的主键。

将 3NF 应用于我们的餐厅数据仓库,我们将进一步分离表格,这样各个表格结构中就不会有层次结构,而是作为表格链接的层次结构。订单和付款等交易表将引用元数据表的主键,而元数据表又将引用更高级别的元数据表。

本质上,我们要做的改变是确定客户表包含地址详细信息,这是自然层次结构。然后,我们会将它们拆分为组件表。通常,您不会将此方法用于整合层,但它可能适用于加工层。如果您正在提取可能以不同粒度级别本机构建的多个源,则尤其如此。

优点:

缺点:

2.Kimball 星型模式

Kimball 星型模式是数据仓库中的一个关键概念,由数据仓库和商业智能领域的杰出人物 Ralph Kimball 提出。它旨在简化数据存储并提高查询性能,使复杂的数据结构更易于管理并更易于进行业务分析。

关键部件

结构和设计

星型模式因其布局类似星星而得名。事实表位于中心,周围是维度表,每个维度表都通过外键连接到事实表。这种设计非常直观,允许用户在事实表和维度表之间执行直接连接。

优点:

缺点:

3.雪花模式

雪花模式是数据仓库中星型模式的一种变体,旨在处理复杂且高度规范化的数据结构。该模式因其复杂的雪花状形状而得名,它将数据组织到多个相关表中,从而增强了数据完整性并减少了冗余。然而,这会增加查询编写的复杂性并可能影响性能。它几乎可以看作是星型模式和 3NF 的混合体。

关键部件

结构和设计

雪花模式由于其多级结构而类似于雪花。维度表被规范化为多个相关表,分散成复杂的网状结构。这种设计旨在通过消除冗余来节省存储空间并提高数据完整性。

优点:

缺点:

4.宽表 (OBT)

One-Big-Table (OBT) 设计,也称为平面表或宽表,是一种数据仓库方法,其中所有数据都合并到单个非规范化表中。这种方法与星型和雪花型等规范化模式形成鲜明对比,它提供了更简单的结构,但代价是冗余度增加,并且在处理非常大的数据集时可能会出现性能问题。

关键部件

结构和设计

OBT 设计的结构非常简单,只包含一个表,其中每行包含所有必要的数据点。这种扁平结构无需连接,用户无需了解复杂的表关系即可轻松查询和检索数据。

对于我们的餐厅,我们将为三个关键事件(预订、订单和付款)分别设置一个大表。我看到过一些关于 OBT 还是星型模式是更好的方法的相当激烈的争论。答案是“视情况而定”。如果您将数据拉入 Power BI,它将需要星型模式样式的数据集。但是,如果您将数据拉入 Tableau,您可能更喜欢 OBT 方法。但应该注意的是,如果您确实选择 OBT,则应将任何可重复使用的逻辑保留在可以反复引用的支持表中。

优点:

缺点:

5.数据仓库 2.0

Data Vault 2.0 是一种现代数据仓库方法,旨在提供可扩展、灵活且可审计的数据模型。它由 Dan Linstedt 开发,以原始>关键部件

结构和设计

Data Vault 2.0 采用模块化架构设计,将数据存储分为这三种类型的表,从而提高可扩展性和灵活性。集线器、链路和卫星被设计为增量和并行加载,从而可以高效处理大量数据和随时间变化的数据。

优点:

缺点:

6.活动模式

活动模式是 Ahmed Elsamadisi 设计的一种数据仓库方法,用于以结构化和高效的方式捕获业务活动或事件的详细记录。此模式侧重于记录企业内部执行的操作或交易,因此对于事件驱动数据和详细交易日志记录特别有用。它已用于需要跟踪大量细粒度事件的系统,例如电子商务网站、金融系统或物联网应用程序。

关键部件

在我们的餐厅示例中,我们可能有一个带有相关客户维度的客户活动表。活动表将跟踪客户的活动,例如他们的预订、订单和付款。这些活动的详细信息保存在列中feature_json,并有一个可选列用于存储相关的收入影响。

优点:

缺点:

7.以实体为中心的建模

以实体为中心的建模是一种灵活的方法,由 Maxime Beauchemin 提出,专注于围绕客户和产品等实体进行建模。每个实体都有自己的表,使用 JSON 来跟踪包括聚合在内的各种指标。这种方法不需要额外的维度表,因为实体表位于实体的最低粒度,并且可以直接在表中包含其属性。

在餐厅环境中,我们会有一个客户表,其中包含客户属性列,加上一个 json 列来保存时间绑定指标,例如visit.7d,,visit.14d。sale.30d

优点:

缺点:

三、选择正确的建模方法

考虑到这七种常见的数据仓库建模方法,如何为您的数据仓库选择正确的方法?请考虑以下因素:

最后,“正确”的数据仓库建模方法取决于您独特的业务需求和优先事项。通过了解每种建模技术的优势和劣势,您可以设计一个数据仓库,提供快速、灵活且富有洞察力的分析,以推动公司发展。

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载者并注明出处:https://www.jmbhsh.com/zixun/35021.html

联系我们

QQ号:***

微信号:***

工作日:9:30-18:30,节假日休息