Datacube

Catalogue
  1. 一、Datacube
  2. 二、维度建模
    1. 2.1 星型模型
    2. 2.2 雪花模型

DataCube 是一种用于表示多维数据的抽象模型。它将数据组织成一个多维结构,通常包含:

  • 维度(Dimensions):描述数据的视角,如时间、地点、产品、客户等。
  • 度量(Measures):可量化的数值,如销售额、数量、利润等。

例如,一个销售数据的 DataCube 可能包含:

  • 维度:时间(年、月、日)、地区(国家、城市)、产品(类别、型号)
  • 度量:销售额、销售数量

DataCube 是一个跨行业、跨系统的通用建模概念.

商业智能(BI)系统:如 Tableau、Power BI、QlikView- 数据仓库:如 Kimball 维度建模中的星型模型、雪花模型都基于 DataCube 思想
OLAP 系统:MOLAP(多维 OLAP)、ROLAP(关系型 OLAP)都依赖 DataCube 模型
大数据平台:如 Apache Kylin 专门用于构建和查询 DataCube
科研与工程领域:用于多维数据分析,如遥感数据、气象数据等

为什么它是通用的?
直观性:人类习惯从多个维度思考问题(如“去年北京的手机销量”),DataCube 符合这种思维方式。
高效分析:支持快速切片(slice)、切块(dice)、上卷(roll-up)、下钻(drill-down)等操作。
标准化支持:有标准的语言和模型支持,如 MDX(多维表达式)用于查询 DataCube。

不同实现方式
尽管概念通用,DataCube 的具体实现方式可能不同:

物理立方体:预计算并存储在多维数据库中(如 Essbase)
逻辑立方体:在关系数据库上通过视图或 SQL 模拟(ROLAP)
内存立方体:如 Power Pivot 中的数据模型

只要是涉及“从多个维度分析量化数据”的场景,DataCube 的思想几乎都会出现。

一、Datacube

flowchart LR
    %% 数据源(左边)
    A[业务数据库\nMySQL/PG] 
    B[日志/埋点\nNginx/App] 
    C[Kafka 实时流] 
    D[离线文件\nCSV/S3]

    %% 采集入湖/仓(中间左)
    E[DataX\nFlink CDC\nKafka Connect]:::ingest
    F[Data Lake\nDelta/Iceberg/Hudi]:::lake
    G[数仓明细/宽表层\nHive/Spark/Doris]:::dw

    %% 核心:DataCube(正中间高亮)
    H[多维分析层\nDataCube / OLAP Cube\nKylin / Doris MV\nClickHouse / Druid / Pinot]:::cube

    %% 消费层(右边)
    I[Superset\nTableau\nFineBI]:::bi
    J[大屏/报表]:::dash
    K[Ad-hoc SQL]:::sql
    L[API 实时指标]:::api

    %% 连线(简化版)
    A --> E
    B --> E
    C --> E
    D --> E
    E --> F & G
    F --> H
    G --> H
    H --> I & J & K & L

    %% 样式美化
    classDef ingest fill:#409EFF,color:white,rx:8,ry:8
    classDef lake   fill:#67C23A,color:white,rx:8,ry:8
    classDef dw     fill:#E6A23C,color:white,rx:8,ry:8
    classDef cube   fill:#F56C6C,color:white,font-weight:bold,rx:15,ry:15,stroke:#fff,stroke-width:4px
    classDef bi     fill:#909399,color:white,rx:8,ry:8
    classDef dash   fill:#723DFF,color:white,rx:8,ry:8
    classDef sql    fill:#F783AC,color:white,rx:8,ry:8
    classDef api    fill:#13CE66,color:white,rx:8,ry:8

    %% 高亮核心
    style H stroke-dasharray: 8 8

二、维度建模

2.1 星型模型

2.2 雪花模型

数据湖 & 数据仓库:
分析与服务层: