00-数仓逻辑模型

0 前言

数据仓库的逻辑模型指的是描述数据仓库中数据如何组织、存储和相互关联的高层次抽象模型。它不涉及数据在物理层面上的实现细节(例如具体的数据库表结构),而是关注于数据模型的设计与规划,以便于支持业务决策和数据分析工作。

以下是数据仓库逻辑模型的两种常见设计方法:

1 星型模式(Star Schema)

星型模式是一种数据模型,其中包含一个或多个事实表和多个维度表。事实表存储量化的业务数据(事实),例如销售总额、交易次数等,并且通常包含大量记录。维度表用于存储描述性数据来提供上下文信息,例如时间、地点、产品信息等。这种模式的名称来源于其看上去像一个星星的形状——中心的事实表被各个维度表围绕。

当表关系可视化时,事实表在中间,被一系列维度表包围;与这些表的连接就像星星光芒。

          [时间维度表]
                  |
    [产品维度表] - [事实表] - [店铺维度表]
                  |
          [顾客维度表]

该模板的变体为

2 雪花模式(Snowflake Schema)

雪花模式是星型模式的变体,其中维度表可以有它们自己的维度表(被称为子维度表或归一化维度表)。在雪花模式中,数据库的结构更复杂,维度数据经过了进一步的归一化,它可以减少数据冗余,但可能会使得查询变得复杂,因为需要多个连接操作。

              [时间维度表]
                      |
        [产品类型] - [产品维度表] 
                      |           - [事实表] - [店铺类型] - [店铺维度表]
                      |
            [顾客国家] - [顾客维度表]

其中维度被进一步分解为子维度。如品牌和产品类别可能有单独表格,且dim_product 表格中的每行都能再次将品牌和类别作为外键,而不是将它们作为字符串直接存储在 dim_product 表。雪花模式比星形模式更规范化,但星形模式是首选,因为对于分析师,它更简单。

典型数仓中,表格很宽:

  • 事实表通常超100列,甚至数百列
  • 维度表也可能宽,因为它们包括可能与分析相关的所有元数据。如dim_store 表可能包括在每个商店提供哪些服务的细节,是否具有店内面包房,店面面积,商店开张日期,最后一次装修时间,距离最近的高速公路有多远

3 核心原则

  • 支持业务需求: 逻辑模型应确保可以满足所有当前和预期的业务分析需求。
  • 可扩展性: 数据模型应方便未来的调整和扩展,以容纳新的数据源和新的业务需求。
  • 性能优化: 模型应经优化以支持高效的数00-数仓逻辑模型据访问和查询性能。
  • 易用性: 数据模型应容易理解和使用,尤其对于业务用户而言应显得直观。
  • 数据质量与一致性: 逻辑模型应保证数据的准确性、完整性和一致性。

在构建数据仓库的逻辑模型时,将考虑如何将不同的数据源整合到一致的框架中,以及如何结构化这些数据以便于报告和数据分析。逻辑模型是数据仓库概念和物理实现之间的桥梁。

关注我,紧跟本系列专栏文章,咱们下篇再续!sbnk

从Java高开到大数据开发 文章被收录于专栏

手把手教你,如何从Java高开完美转型大数据开发。

全部评论

相关推荐

海康威视 软开岗 15k15
点赞 评论 收藏
分享
10-07 20:48
门头沟学院 Java
不敢追175女神:可能是实习上着班想到后面还要回学校给导师做牛马,看着身边都是21-25的年纪,突然emo了了
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务