zoukankan      html  css  js  c++  java
  • 数据仓库系列1-高质量数据建模

    一、前言:

    虽然做数据工作5年了,从传统行业到互联网行业,感觉啥都懂点,但是没有一样可以拿出手的,干活时没问题,但是讲东西却存在问题,最近想系统的学习一下数据仓库只是,顺便记录下,也算是对学习的一个总结。

    二、数据仓库

    那么,何为数据仓库,根据百度百科介绍,数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制 。

    其实说白了,就是存放数据的,随着互联网行业的兴起,数据量不断的增大,通过数据可以发现一些商业信息,给企业带来价值,所以数据仓库对各个公司显得尤为重要,一个好的数据仓库,产生的价值是不可估量的

    数据仓库有啥特点呢

    1、数据仓库是面向主题的,根据不用的主题划分不同的域。

    2、数据仓库是集成的,通过对不同来源的数据进行ETL的过程,最后汇总到数据仓库。

    3、数据仓库是大容量的,随着时间的变化,数据会会越来越多。

    4、一般情况是,数据仓库中的数据是不可以变化的

    5、数据仓库一般是非规范化的,也就是不是必须满足3范式,数据是有冗余的。

    三、数据模型概念

    数据仓库的建设是基于数据模型,高质量的数据对数据仓库有着重要的意义。

    数据模型的概念,通过DIKW,金字塔模型,智慧(Wisdom),知识(Knowlege),信息(Information),数据(Data)

    数据模型是将数据以标准化的模式组织起来,用来模拟现实世界的信息框架蓝图,容易被人理解,便于计算机实现。数据模型是数据应用的重要基石。

    数据使用低质量的模型,那么后期的坑将会无法预估,对工作会造成无法估量的困难,

    比如:大量的修改和重做,重复建设,知识丢失,下游开发困难,高成本,数据质量低下,新业务无法开展,需求无法满足等等。

    以下是一些低质量的建模。

    1、没有准确的捕获到客户的需求,以至于建设好的数据仓库满足不了需求。

    2、数据模型不完整,比如:元数据不完整,表的描述不完整,后续人员根本无法使用,这种情况比较经常常见。

    3、各层模型与其扮演角色不匹配。各层级关系混乱。

    4、数据结构不合理,抽象化不够,造成模型不灵活。

    5、没有遵循命名规范,缺少模型的定义和描述。

    6、数据模型的可读性差,

    7、元数据与数据不匹配。

    8、数据模型与企业标准不一致。

    高质量的建模会给我们带来哪些好处呢?

    1、后期维护简单,节省人力。

    2、可以很快的满足客户的需求。

    3、更灵活的应对变化。

    4、更方便的系统集成。

    5、更高的效率。

    6、对于客户而言,能发现更多的商业机会。

    7、能提前评估风险,减少风险。

    四、数据模型基本流程

    数据建模一般遵循概念模型-逻辑模型-物理模型的原则,每个模型的职责不同。

    概念模型:确定系统的核心以及划清系统范围和边界。

    逻辑模型:梳理业务规则及读概念模型的求精。

    物理模型:从性能,访问,开发等多方面考虑做系统的实现。

    概念模型:

    1、注重全局理解而非细节

    2、对整体架构做思考。

    3、概念模型自上而下,需要不断的沟通。

    4、估算项目需要的时间以及项目计划草案。

    5、粗略的估算出项目需要的费用。

    6、概念模型解决是数据模型工程师和客户破冰之旅,这个阶段达成共识是项目成功的重要条件。

    7、概念模型可以帮助划定系统边界以及避免方向性错误。

    8、概念模型是未来逻辑模型沟通基础以及逐步求精的依据。

    9、概念模型最好用一张纸描述清楚整个模型。

    10、与客户达成一致的商用语言。

     逻辑模型:

    1、应该更精确估算出整个项目需要的时间以及项目计划草案。

    2、并且根据计划更精确的估算出项目的费用。

    3、当实体数据超过100时,通常情况下需要定义术语表。

    4、规范化,可以先规范化再逆规范化,不可一步到位。

    5、不可缺少约束的定义。

    6、使用case工具做逻辑模型。

    7、注重模型的版本管理。

    8、不要忽视属性的长度定义和约束定义以及属性的默认值。

    9、使用控制数据范围的域。

    10、需要同级评审,

    11、确定可信赖的数据源,关键属性要用真实的数据验证。

    12、需要有一定的抽象化,未来好扩展。

    13、关联关系需要强制建立,与概念模型保持一致。

    逻辑模型文档比较详细,所有实体属性均需添加,实体间关系要清晰描述,需要使用术语,遵循命名规范,采用case工具创建项目文件,对各个实体以及关键属性必须要有清晰的描述。

    物理模型:

    1、通常情况下是使用case工具自动生成。

    2、应用术语表自动转换生成字段名称。

    3、对表空间,索引,视图,物化视图,主键,外键都有命名规则。

    4、规范化是在逻辑层完成,本层基本不动

    5、通常情况下这层需要DBA的介入,确保性能以及DDL等语句保持一致。

    6、做好各种版本控制。

    7、这层通常要考虑到性能,数据规模,归档等数据库的优缺点。

    物理模型自动生成基础库的表结构,之后手动适当调整,生成数据字典并发布,DDL中需要注意注释的生成。

    高质量的数据建模需要对真实世界的抽象而完整,用建模语言表达清晰而准确,需要的框架要稳定,满足当下需求并且可以容纳未来的变化,从企业全的视角出发构建模型,减少数据的冗余,提到性能。

  • 相关阅读:
    MERGE引擎 分表后 快速查询所有数据
    MYSQL导入中文数据乱码的四种解决办法
    数据库中为什么不推荐使用外键约束?
    Word转PDF
    YII2 更新数据不成功
    YII2 使用curl请求,返回false
    Yii集成PHPWord
    网站安全DDOS攻击及监测
    nginx日志
    定时任务秒级执行
  • 原文地址:https://www.cnblogs.com/wujin/p/5956309.html
Copyright © 2011-2022 走看看