大数据之路:阿里巴巴大数据实践——大数据领域建模综述

为什么需要数据建模

  • 核心痛点
    • 数据冗余:不同业务重复存储相同数据(如用户基础信息),导致存储成本激增。
    • 计算资源浪费:未经聚合的明细数据直接参与计算(如全表扫描),消耗大量CPU/内存资源。
    • 数据一致性缺失:同一指标在不同业务线的口径差异(如“活跃用户”定义不同),引发决策冲突。
    • 开发效率低下:每次分析需重新编写复杂逻辑,无法复用已有模型。
  • 数据建模核心价值
    • 性能提升:分层设计(ODS→DWD→DWS→ADS),查询响应速度提升10~100倍。
    • 成本优化:数据压缩存储(列式存储)、 生命周期管理(冷热数据分层)、计算资源复用(公共层下沉)。
    • 质量保障:统一指标口径(OneData体系)、血缘关系追踪(元数据管理)、数据质量卡点(非空/唯一性校验)。
    • 敏捷开发:标准化模型复用(如用户维度表)、可视化开发工具(DataWorks),新业务接入效率提升70%。

关系数据库系统和数据仓库

  • 关键设计对比

    维度 关系数据库系统 (RDBMS) 数据仓库 (DW)
    核心目标 事务处理(OLTP) • 高并发增删改 • 实时一致性 分析决策(OLAP) • 复杂查询分析 • 历史数据挖掘
    数据结构 高度规范化(3NF/BCNF) • 减少冗余 适度反规范化(维度建模) • 星型/雪花模型 • 优化查询性能
    数据时效 当前状态数据(实时更新) 历史快照数据(T+1或实时增量)
    典型场景 订单支付、库存扣减 用户行为分析、销售趋势预测
  • Alibaba架构变革

    传统RDBMS MaxCompute数据仓库
    共享存储 + 共享计算 存储计算分离(OSS + 分布式计算)
    垂直扩展(Scale-up) 水平扩展(Scale-out)
    ACID强一致性 最终一致性(BASE原则)
  • 数据仓库的核心改造

    • 建模方法:放弃严格范式约束,采用 Kimball维度建模(事实表+维度表)。
    • 存储优化:列式存储(ORC/Parquet)降低I/O,压缩比达5:1。
    • 计算引擎:批处理(MapReduce) + 流处理(Flink)统一架构。
graph LR
  A[业务系统 OLTP] -->|Binlog实时同步| B(实时数仓 Flink)
  A -->|T+1全量同步| C(离线数仓 MaxCompute)
  B & C --> D[统一数据服务层]
  D --> E[应用场景: 实时大屏/用户画像/BI报表]

从OLTP和OLAP 系统的区别看模型方法论的选择

  • OLTP vs OLAP

    维度 OLTP系统 OLAP系统 对建模的影响
    核心目标 高并发事务处理 复杂数据分析(用户画像/预测) OLTP:事务效率优先;OLAP:查询性能优先
    数据操作 细粒度增删改 大规模聚合查询(GROUP BY/JOIN) OLTP需避免冗余,OLAP需预聚合
    数据时效 当前状态 历史快照(T+1或实时增量) OLAP需时间维度建模
    数据量级 GB~TB级(热数据) TB~PB级(全量历史) OLAP依赖列存储+压缩技术
    典型瓶颈 写并发、锁竞争 读I/O、计算资源 建模需针对性优化瓶颈点
  • OLTP系统:ER模型(实体-关系)主导

    • 高度规范化(3NF):消除冗余,依赖主键,保障事务一致性。
    • 通过外键维护完整性(如订单表 user_id 关联用户表主键)。
  • OLAP系统:维度建模(Kimball)主导

    • 星型/雪花模型:事实表(交易行为) + 维度表(用户/商品描述)。
    • 主动引入冗余:维度表反规范化,减少Join次数。
    • 退化维度:将常用维度属性直接存入事实表(如商品名称)。
    • 缓慢变化维(SCD):Type 2设计追踪历史变更。
  • 分层建模体系(解决数据膨胀)

    分层 建模方法 目的
    ODS 近原始数据(轻度清洗) 保留数据原貌
    DWD 维度模型(明细层) 标准化事实与维度,SCD处理
    DWS 宽表模型(汇总层) 预聚合指标,减少重复计算
    ADS 应用模型(高度反规范) 适配特定场景(如实时大屏)

典型的数据仓库建模方法论

  • ER模型:高度规范化(3NF),消除冗余数据且具有强实体关系约束,适用于OLTP系统(如交易库)。
  • Kimball维度建模:星型/雪花模型 ,事实表(行为) + 维度表(描述)主动冗余优化查询,适用于OLAP系统(分析决策场景)。
  • DataVault:三层架构,Hub (业务键)+ Link(关系) + Satellite(属性),适用于高变化性的业务(如金融合规)。
  • Anchor模型:极致规范化, 属性拆分为独立表,通过锚点关联,适用于学术研究/超复杂变更场景。

阿里巴巴数据模型实践综述

  • 分层设计(核心骨架)

    • ODS层:近源数据保留,采用增量 + 全量混合存储(如订单表按天分区)

    • DWD层

      事实表:事务型、周期快照、累积快照。

      维度表:全局统一代理键。

    • DWS层

      预聚合宽表:按主题域(用户、商品)构建80+ 核心宽表。

      CUBE:提前计算UV、GMV等300+ 核心指标。

    • ADS层:高度反规范化,为BI工具、API接口优化存储格式。

  • 模型融合创新

    • Kimball星型模型:超级宽表 + 维度退化,减少Join次数90%+。
    • Data Vault审计性:元数据驱动建模,通过DataWorks自动追踪血缘关系。
    • 范式理论:仅核心实体(用户/商品)保持3NF,平衡冗余与一致性。
  • 分布式环境下的维度建模

    • 全局维度中心:整合200+数据源生成统一维度,SCD Type 2采用拉链表设计,历史版本存储成本降低70%。
    • 事实表分桶优化:按user_id分1000桶,使Join操作本地化计算,冷热数据分离:热数据存SSD,冷数据转OSS归档。
  • 实时离线一体化模型

    组件 离线链路(MaxCompute) 实时链路(Flink)
    数据源 T+1全量同步 Binlog日志实时采集
    DWD层 ORC列式存储(压缩比5:1) Parquet格式写入Kafka
    维度关联 MapReduce批量Join 广播状态+异步维表查询(亚秒级)
    输出 Hive分区表 Hologres实时表
#大数据##大数据之路#
全部评论

相关推荐

评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务