当前位置: 首页 > news >正文

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

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

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

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

    • 建模方法:放弃严格范式约束,采用 Kimball维度建模(事实表+维度表)。
    • 存储优化:列式存储(ORC/Parquet)降低I/O,压缩比达5:1。
    • 计算引擎:批处理(MapReduce) + 流处理(Flink)统一架构。
graph LRA[业务系统 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实时表
http://www.dtcms.com/a/301151.html

相关文章:

  • 卷积神经网络研讨
  • haproxy七层代理(知识点+相关实验部署)
  • 【奔跑吧!Linux 内核(第二版)】第5章:内核模块
  • 关系与逻辑运算 —— 寄存器操作的 “入门钥匙”
  • Linux: 调试器gdb/cgdb
  • 第六章 JavaScript 互操(2).NET调用JS
  • K-近邻算法
  • MPLS LDP(概念)
  • 20250707-2-Kubernetes 网络-Ingress暴露应用(http与https)_笔记
  • Flink窗口:解锁流计算的秘密武器
  • JavaEE初阶第十二期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(十)
  • KingbaseES聚焦产品上线
  • 卫星图像语义分割与区域相似度比较研究
  • 顺序表算法题
  • 【自动化运维神器Ansible】Ansible常用模块之hostname模块详解
  • Qt C++动态库SDK在Visual Studio 2022使用(C++/C#版本)
  • ae烟雾-分形杂色
  • Python——入门
  • 金融科技里的信用评分、指纹识别、面部识别、虹膜识别
  • 地震成果数据在线可视化功能实现之高级篇
  • 枚举中间位置基础篇
  • Mysql中的索引详解
  • 「iOS」————MRC
  • 【Linux系统编程】环境变量,进程地址空间与进程控制
  • OpenResty 高并发揭秘:架构优势与 Linux 优化实践
  • IIS发布.NET9 API 常见报错汇总
  • 设计模式(九)结构型:组合模式详解
  • STM32的蓝牙通讯(HAL库)
  • 【ELasticsearch】温、冷数据节点能是同一个节点吗
  • 探秘 Nginx 的工作原理