为什么需要数据建模
  • 核心痛点
    • 数据冗余:不同业务重复存储相同数据(如用户基础信息),导致存储成本激增。
    • 计算资源浪费:未经聚合的明细数据直接参与计算(如全表扫描),消耗大量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.pswp.cn/diannao/93073.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/93073.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/93073.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实战演练1:实战演练之命名实体识别

实战演练1:实战演练之命名实体识别 命名实体识别简介 代码 命名实体识别简介 什么是命名实体识别任务 命名实体识别(Named Entity Recognition,简称NER)是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。通常包括两部分: (1)实体边界识别。(2)确定…

数据结构基础内容(第七篇:堆、哈夫曼树)

# 堆 Heap 优先队列(Priority Queue) 结构性:用 *数组* 表示的完全二叉树; 有序性:任一结点的关键字是其子树所有结点的最大值(或最小值) * “最大堆(MaxHeap)”,也称“大顶堆”:最大值 * “最小堆(MinHeap)”,也称“小顶堆” :最小值 主要操作有: • MaxHeap Create( i…

CS231n-2017 Lecture7训练神经网络(二)笔记

本节主要是神经网络的动态部分,也就是神经网络学习参数和搜索最优超参数的过程梯度检查:进行梯度检查,就是简单地把解析梯度与数值计算梯度进行比较,防止反向传播的逻辑出错,仅在调试过程中使用。有如下技巧 &#xff…

IntelliJ IDEA 中左上方未显示项目根目录问题

问题: 在IDEA中编写代码时,发现左上方只显示项目的子模块,未显示根项目名称。 如图所示,未显示子模块的根项目:问题分析 顶层根目录未被识别为项目根目录,需要手动添加识别。 问题解决 进入File – Project…

OpenCV 图像变换全解析:从镜像翻转到仿射变换的实践指南

前言处理图像时,翻转、旋转、平移等操作很常用。OpenCV 提供了简单的方法实现这些变换,本文带你快速学会用它做图像翻转和仿射变换。1 图像翻转(图像镜像旋转)在OpenCV中,图片的镜像旋转是以图像的中心为原点进行镜像翻转的。cv2.flip(img,fl…

【运维】Linux运维命令记录

重置root密码使用命令重新设置一下root账户的密码 passwd root根据提示设置一下密码,然后使用sudo -i 时输入密码就可以切换到root账户了ssh登陆以后,要用sudo -i命令给用户提权,提到超级管理员,然后输入密码才有用

PandasAI连接LLM进行智能数据分析

1. 引言 Pandas是一个数据分析开源组件库,提供了高性能、易用的数据结构和数据分析工具。它的核心的功能是其DataFrame对象,这是一个带有行和列标签的二维表格数据结构,支持缺失数据处理、时间序列功能、灵活的数据输入输出方法、数据对齐和…

Spring之【Bean的生命周期】

目录 1、生成BeanDefinition BeanDefinitionRegistry接口 DefaultListableBeanFactory实现类 2、合并BeanDefnition AbstractBeanFactory类 3、BeanFactoryPostProcessor的方法回调 AbstractApplicationContext类 PostProcessorRegistrationDelegate类 4、BeanPostPro…

搜狐新闻直播间适配HarmonyOs实现点赞动画

01背景介绍随着新闻客户端鸿蒙单框架系统适配工作的推进,从原来的基础功能到现在已经适配全功能的85%以上。与此同时,我们也在持续深入挖掘鸿蒙系统的特性,以提升整体应用的质量与用户体验。在这一过程中,动画作为增强交互与视觉体…

83、设置有人DTU设备USR-M100采集传感器数据,然后上传阿里云服务

基本思想:设置M100 采集传感器数据 一、首先将DTU设备USR-M100连接路由器上,然后使用python代码搜索同一局域网设备, import platform import sys import os import time import threadinglive_ip = 0def get_os():os = platform.system()if os == "Windows":re…

P1019 [NOIP 2000 提高组] 单词接龙

题目描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时&#…

详解力扣高频SQL50题之1633. 各赛事的用户注册率【简单】

传送门:1633. 各赛事的用户注册率 题目 用户表: Users -------------------- | Column Name | Type | -------------------- | user_id | int | | user_name | varchar | -------------------- user_id 是该表的主键(具有唯一值的列)。 该表中的每行包…

FROM stakater/java8-alpine 构建cocker镜像

在 Dockerfile 中,FROM stakater/java8-alpine 是第一条也是最核心的指令,它定义了构建新镜像所基于的「基础镜像」。以下是逐层解析:🔍 关键字拆解 1. FROM —— 起点指令 ✅ 作用:声明当前镜像的起点(父镜…

Word2Vec模型训练全流程解析:从数据预处理到实体识别应用

请添加图片描述 训练Word2Vec模型 概述 问题 我们如何训练Word2Vec模型?在特定数据集上训练Word2Vec模型何时是有利的? 目标 理解在自有数据上训练Word2Vec模型而非使用预训练模型的优势 Colab环境配置 运行以下代码以启用辅助函数并重新读取数据…

在Ubuntu上使用QEMU学习RISC-V程序(2)gdb调试

文章目录一、准备工作二、基本调试流程1. 设置断点2. 执行程序3. 查看源代码/汇编三、查看寄存器1. 查看通用寄存器2. 查看特殊寄存器四、查看内存1. 内存查看命令2. 内存修改命令五、调试实战示例六、高级调试技巧1. 条件断点2. 自动显示3. 内存断点(观察点&#x…

不止于“亮”:一盏智慧路灯的技术进化史——塔能科技用“落地性”定义行业标准

在凌晨3点的园区道路之上,路灯会随着车辆的靠近而自动亮起,待车辆逐渐远去之后,又会缓缓地调暗下来;当电缆意外被触碰的时候,系统能够在短短3秒之内自动发出报警信息,并且推送出维修工单;而当一…

Redis的String数据类型底层实现

redis就是用c语言写,但redis的string并没有直接用c语言的string,而是自己搞了一个 SDS 结构体来表示字符串。SDS 的全称是 Simple Dynamic String,中文叫做“简单动态字符串”。想知道为什么这么做,我们先看看c语言的string是什么…

【音视频学习】四、深入解析视频技术中的YUV数据存储方式:从原理到实践

文章目录 引言 1. YUV 基础:为什么它比 RGB 更适合视频? 1.1 YUV 与 RGB 的核心区别 1.2 YUV色度下采样简介 2. YUV 的三大存储方式 方式一:平面格式(Planar) 方式二:半平面格式(Semi-Planar ) 方式三:打包格式(Packed YUV) 三种存储方式对比: 3. 如何选择合适的 Y…

前端项目组成

一、前端项目常见模块及功能(以 Vue/React 通用结构为例) 前端项目的模块本质是「按功能拆分的代码文件/文件夹」,就像盖房子的「砖、梁、窗」各司其职:模块类型功能说明(大白话)举个例子pages(…

聚观早报 | 猿编程推动中美青少年AI实践;华为Pura 80数字版售价公布;iPhone 17 Air电池曝光

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。整理丨肖羽7月24日消息猿编程推动中美青少年AI实践华为Pura 80数字版售价公布iPhone 17 Air电池曝光亚马逊收购AI初创公司Bee蜂巢半固…