数据建模简介

ops/2025/2/6 13:31:38/

1. 数据建模

数据建模是将现实世界的业务需求转换为结构化的数据模型的过程,目的是为数据存储,管理和分析提供蓝图。以下是数据建模的核心步骤和关键要点:

1. 需求分析(明确目标)

  1. 确定业务目标
    • 与业务方深入沟通,明确模型用途(如交易分析,用户画像,风控等)。
    • 案例:电商场景需要明确是优化推荐系统还是库存管理。
  2. 识别数据源与范围
    • 确定数据来源(数据库,API,日志文件等)及时间范围。
    • 检查数据质量(缺失值,异常值,一致性)。

2. 概念模型(抽象业务实体)

  1. 实体关系图(ER Diagram)
    • 识别核心实体(如用户,订单,商品)及关系(一对多,多对多)。
    • 工具推荐:Lucidchart,Draw.io
  2. 定义业务规则
    • 约束条件:如订单金额不可为负,用户注册需唯一邮箱。

3. 逻辑模型(结构化设计)

  1. 选择建模范式
    • 关系型模型:规范化设计(3NF范式),减少冗余。
    • 维度模型:星型/雪花模型(适用OLAP,如数仓中的事实表和维度表)。
  2. 属性定义
    • 数据类型:int,decimal,vachar,时间戳等
    • 主键和外键:确保数据关联完整性。

4. 物理模型(技术实现)

  1. 数据库选型与优化
    • OLTP场景:MySQL,PostgreSQL(高事务处理)。
    • 大数据场景:HBase,Cassandra(分布式存储)。
  2. 性能调优:
    • 索引策略:对高频查询字段(如用户ID)建立索引。
    • 分区与分表:按时间或低于拆分大表(如日志数据按月分区)。

5. 验证与迭代

  1. 模型测试
    • 使用真实数据子集验证模型是否满查询性能和数据一致性。
    • 检查约束和触发器的有效性(如外键级联删除)。
  2. 持续优化
    • 监控查询性能:通过EXPLAIN分析SQL执行计划。
    • 根据业务变化调整模型(如新增用户行为字段)。

6. 工具与技巧

  1. 自动化工具:SQLAlchemy(ORM框架),dbt(数据转换工具)。
  2. 版本控制:使用Git管理模型变更历史。
  3. 文档化:用Markdown或Confluence记录模型设计决策。

常见问题与解决

  • 数据冗余vs一致性:在OLAP中允许适度冗余提升查询速度。
  • 多对多关系:通过中间表解决(如用户-角色关联表)
  • 时态i数据处理:添加时间戳字段或使用Slowly Changing Dimension(SCD) 类型2。

http://www.ppmy.cn/ops/156162.html

相关文章

前端导出Excel表格

1.主要依赖 xlsxfile-saver 2.核心代码 import * as XLSX from xlsx; import FileSaver from "file-saver"; // 导出excel表格 const exportExcel (table, name null) > {console.log("获取表格", unref(table))try {let tableDom unref(table).$e…

java进阶知识点

java回收机制 浅谈java中的反射 依赖注入的简单理解 通过接口的引用和构造方法的表达,将一些事情整好了反过来传给需要用到的地方~ 这样做得好处:做到了单一职责,并且提高了复用性,解耦了之后,任你如何实现&#xf…

Git、Github和Gitee完整讲解:丛基础到进阶功能

第一部分:Git 是什么? 比喻:Git就像是一本“时光机日记本” 每一段代码的改动,Git都会帮你记录下来,像是在写日记。如果出现问题或者想查看之前的版本,Git可以带你“穿越回过去”,找到任意时间…

Node.js学习指南

一、模块化规范 nodejs使用的模块化规范 叫做 common.js 规范: 每一个模块都有独立的作用域 代码在各自模块中执行 不会造成全局污染 每一个模块都是一个独立的文件(module对象) 模块可以被多次加载(module.exports 属性) 但是仅…

http跳转https

1、第一种:不好使 在nginx的配置中,在https的server站点添加如下头部: add_header Strict-Transport-Security “max-age63072000; includeSubdomains; preload”; 这样当第一次以https方式访问我的网站,nginx则会告知客户端的浏览…

二叉树——429,515,116

今天继续做关于二叉树层序遍历的相关题目,一共有三道题,思路都借鉴于最基础的二叉树的层序遍历。 LeetCode429.N叉树的层序遍历 这道题不再是二叉树了,变成了N叉树,也就是该树每一个节点的子节点数量不确定,可能为2&a…

北大AGI与具身智能评估新范式!Tong测试:基于动态具身物理和社会互动的评估标准

作者:Yujia Peng, Jiaheng Han, Zhenliang Zhang, Lifeng Fan, Tengyu Liu, Siyuan Qi, Xue Feng, Yuxi Ma, Yizhou Wang, Song-Chun Zhu 单位:北京通用人工智能研究院国家通用人工智能重点实验室,北京大学人工智能研究所,北京大…

大模型的底层逻辑及Transformer架构

一、大模型的底层逻辑 1.数据驱动 大模型依赖海量的数据进行训练,数据的质量和数量直接影响模型的性能。通过大量的数据,模型能够学习到丰富的模式和规律,从而更好地处理各种任务。 2.深度学习架构 大模型基于深度学习技术,通常…