目录

简介

1、什么是数据模型?

2、为什么需要数据模型?

3、如何建设数据模型?


简介

每个行业都有自己的模型,但不难发现,在数据建模的方法上,它们都有着共通的基本特点。

文章主要分以下几个方面来简单帮助大家了解整个数仓建模的过程。

1、什么是数据模型?

数据模型是抽象描述现实世界的一种工具和方法,是通过抽象的实体及实体之间联系的形式,来表示现实世界中事务的相互关系的一种映射。在这里,数据模型表现的抽象是实体和实体之间的关系,通过对实体和实体之间关系的定义和描述,来表达实际的业务中具体的业务关系。

数据仓库模型是数据模型中针对特定的数据仓库应用系统的一种特定的数据模型,一般来说,我们数据仓库模型分为以下几个层次:

一般来说,整个数据仓库建模的过程有四个:

(1)业务建模;生成业务模型,主要解决业务层面的分解和程序化。

(2)领域建模;生成领域模型,主要是对业务模型进行抽象处理,生成领域概念模型。

(3)逻辑建模;生成逻辑模型 ,主要是将领域模型的概念实体以及实体之间的关系进行数据库层次的逻辑化。

(4)物理建模;生成物理模型,主要解决逻辑模型中针对不同关系数据库的物理化以及性能等一些的具体技术问题。

2、为什么需要数据模型?

数据模型的发展史如下,大致经历了三个过程:

(1)简单报表阶段

这个阶段,系统主要解决的是一些日常工作中业务人员要的报表,以及生成简单的能够帮助领导进行决策所需要的汇总数据。这个阶段的大部分表现形式是数据库和前端报表工具。

(2)数据集市阶段

这个阶段主要是根据某个业务部门的需要,进行一定的数据的采集、整理,按照业务人员的需要,进行多维报表的展现,能够提供对特定业务指导的数据,并且能够提供特定的领导决策数据。

(3)数据仓库阶段

这个阶段,主要是按照一定的数据模型,对整个企业的数据进行采集、整理,并且能够按照各个业务部门的需要,提供跨部门的,完全一致的业务报表数据,能够通过数据仓库生成对业务具有指导性数据,同时,为领导决策提供全面的数据支持。

总结:

通过数据仓库建设的发展阶段,我们能够看出,数据仓库的建设和数据集市的建设的重要区别就在于数据模型的支持。因此,数据模型的建设,对于我们数据库的建设有着决定性的意义。

一般来说。数据模型的建设主要能够帮助我们解决以下的一些问题:

(1)进行全面的业务梳理,改进业务流程。

在业务模型建设的阶段,能够帮助我们的企业或管理机关对本单位的业务进行全面的梳理。通过业务模型的建设,我们应该能够全面了解该单位的业务架构图和整个业务的运行情况,能够将业务按照特定的规律进行分门别类和程序化,同时,帮助我们进一步的改进业务的流程,提高业务效率,指导我们的业务部门的生产。

(2)建立全方位的数据视角,消灭信息孤岛和数据差异。

通过数据仓库的模型建设,能够为企业提供一个整体的数据视角,不再说各个部门只是关注自己的数据,而且通过模型的建设,勾勒出了部门内在的联系,帮助消灭各个部门之间的信息孤岛的问题,更为重要的是,通过数据模型的建设,能够保证整个企业的数据的一致性,各个部门之间数据的差异都会得到有效解决。

(3)解决业务的变动和数据仓库的灵活性。

通过数据模型的建设,能够很好的分离出底层技术的实现和上层业务的展现。当上层业务发生变化时,通过数据模型,底层的技术实现可以非常轻松的完成业务的变动,从而达到整个数据仓库系统的灵活性。

(4)帮助数据仓库系统本身的建设。通过数据仓库的模型建设,开发人员和业务人员能够很容易的达成系统建设范围的界定以及长期目标的规划,从而能够使整个项目组明确当前的任务,加快整个系统建设的速度。

3、如何建设数据模型?

建设数据模型是整个数据仓库建设中一个非常重要的关键部分,在这里对如何创建适合自己的数据模型进行简单介绍:

1)数据仓库数据模型架构

数据仓库的数据模型的架构和数据仓库的整体架构是紧密关联在一起的。整个数据模型的构架分成5大部分,每个部分都有其独特的功能,如下:

由上图我们不难看出, 整个数据仓库的数据模型可以分为大概5个部分:

(1)系统记录域(System of Record):这部分是主要的数据仓库业务数据存储区,数据模型在这里保证了数据的一致性。

(2)内部管理域(Housekeeping):这部分主要存储数据仓库用于内部管理的元数据,数据模型在这里能够帮助进行统一的元数据的管理。

(3)汇总域(Summary of Area):这部分数据来自于系统记录域的汇总,数据模型在这里保证了分析域的主题分析的性能,满足了部分的报表查询。

(4)分析域(Analysis Area):这部分数据模型主要用于各个业务部分的具体的主题业务分析。这部分数据模型可以单独存储在相应的数据集市中。

(5)反馈域(Feedback Area):可选项,这部分数据模型主要用于相应前端的反馈数据,数据仓库可视业务需要设置这一区域。通过对整个数据仓库模型的数据区域的划分,我们可以了解到,一个好的数据模型不仅仅对业务进行抽象划分,而且对实现技术进行具体的指导,它应该涵盖了从业务到实现技术的各个部分。

2)数据仓库模型阶段划分

上面已经做过简单介绍,不再过多赘述。

3)数据仓库建模方法

(1)范式建模法(Third Normal Form,3NF)。必须具备以下三个条件:

第一,每个属性值唯一,不具有多义性;

第二,每个非主属性必须完全依赖于整个主键,而非主键的一部分;

第三,每个非主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去。

从业务数据模型转向数据仓库模型时,同样也需要有数据仓库的域模型,即概念模型,同时也存在域模型的逻辑模型。这里,业务模型中的数据模型和数据仓库的模型稍微有一些不同。主要区别在于:

数据仓库的域模型应该包含企业数据模型的域模型之间的关系,以及各主题域定义。数据仓库的域模型的概念应该比业务系统的主题域模型范围更加广。
在数据仓库的逻辑模型需要从业务系统的数据模型中的逻辑模型中抽象实体,实体的属性,实体的子类,以及实体的关系等。

(2)维度建模法

下图的这个架构中是典型的星型架构。星型模式之所以广泛被使用,在于针对各个维作了大量的预处理,如按照维进行预先的统计、分类、排序等。通过这些预处理,能够极大的提升数据仓库的处理能力。特别是针对 3NF 的建模方法,星型模式在性能上占据明显的优势。

雪花模型也是维度建模中的一种选择。雪花模型的维度表可以拥有其他维度表的,虽然这种模型相比星型模型更规范一些,但是由于这种模型不太容易理解,维护成本比较高,而且性能方面需要关联多层维表,性能也比星型模型要低。所以一般不是很常用。雪花模型如下图:

(3)实体建模法

实体建模法并不是数据仓库建模中常见的一个方法,它来源于哲学的一个流派。从哲学的意义上说,客观世界应该是可以细分的,客观世界应该可以分成由一个个实体,以及实体与实体之间的关系组成。那么我们在数据仓库的建模过程中完全可以引入这个抽象的方法,将整个业务也可以划分成一个个的实体,而每个实体之间的关系,以及针对这些关系的说明就是我们数据建模需要做的工作。

  1. 虽然实体法粗看起来好像有一些抽象,其实理解起来很容易。即我们可以将任何一个业务过程划分成 3 个部分,实体,事件和说明。

大数据开发之数仓建模相关推荐

  1. 大数据基础知识——数仓的搭建(维度建模)

    数据仓库 文章目录 数据仓库 数据仓库的介绍: 数据仓库的概念: OLTP和OLAP区别: 数据仓库的特点: 面向主题: 数据集成: 非易失: 时变: 数据仓库系统架构 系统结构图 源数据 ETL 数 ...

  2. 企业大数据平台下数仓建设思路

    免费开通大数据服务:https://www.aliyun.com/product/odps 介然(李金波),阿里云高级技术专家,现任阿里云大数据数仓解决方案总架构师.8年以上互联网数据仓库经历,对系统 ...

  3. 大数据项目离线数仓(全 )一(数据采集平台)

    搭建用户行为数据采集平台.搭建业务数据采集平台.搭建数据仓库系统.制作可视化报表 本篇博客包括搭建用户行为数据采集平台.搭建业务数据采集平台 搭建数据仓库系统在大数据项目离线数仓(全 )二 制作可视化 ...

  4. 大数据开发需要数学好吗?

    大数据开发是和数据相关的工作,很多人有疑问,想从事大数据相关工作,是不是对数学有很高的要求,那么,做大数据真的需要数学很好吗? 大数据可以分为很多岗位,不同的岗位对数学的要求不同,只有少部分的大数据岗 ...

  5. 大数据面试题--数仓

    目录 数据仓库理论 数据分层 E T L 星形模型与雪花模型的区别? 维度建模(dimensional modeling): 数据仓库项目最重要或需要注意的是什么,以及如何处理? 关系建模与维度建模 ...

  6. 大数据-案例-离线数仓-在线教育:MySQL(业务数据)-ETL(Sqoop)->Hive数仓【ODS层-数据清洗->DW层(DWD-统计分析->DWS)】-导出(Sqoop)->MySQL->可视化

    一.商业BI系统概述 商业智能系统,通常简称为商业智能系统,是商业智能软件的简称,是为提高企业经营绩效而采用的一系列方法.技术和软件的总和.通常被理解为将企业中的现有数据转换为知识并帮助企业做出明智的 ...

  7. 大数据项目之数仓相关知识

    第1章 数据仓库概念 数据仓库(DW): 为企业指定决策,提供数据支持的,帮助企业,改进业务流程,提高产品质量等. DW的输入数据通常包括:业务数据,用户行为数据和爬虫数据等   ODS:  数据备份 ...

  8. 大数据平台及数仓的通用架构和技术体系

    一.大数据架构技术体系 1 数据传输层 Sqoop:支持RDBMS和HDFS之间的双向数据迁移,通常用于抽取业务数据库(比如MySQL.SQLServer.Oracle)的数据到HDFS. Canna ...

  9. 大数据项目离线数仓(全 )二(数仓系统)

    本文仅仅包含数据仓库系统的搭建,其他内容请关注我的博客!在<项目>专栏里!!! 本篇文章参考尚硅谷大数据项目写成! 目录 一.数据仓库系统 1.1基础概念 1.1.1数据分层的好处 1.1 ...

最新文章

  1. AWS - Couldformation 初探
  2. html 点击空白关闭浮层,js中点击空白区域时文本框与隐藏层的显示与影藏问题...
  3. python编程实例视屏-python实现实时视频流播放代码实例
  4. LOJ #2734 Luogu P3615 [JOI2016春季合宿]Toilets (结论、贪心)
  5. python扫盲系列-(2)
  6. 固件类型bios好还是uefi好_uefi启动是什么意思 UEFI启动对比Bios启动优势在哪里
  7. C#LeetCode刷题之#893-特殊等价字符串组​​​​​​​​​​​​​​(Groups of Special-Equivalent Strings)
  8. 【Flink】java.lang.NumberFormatException: Not a version: 9
  9. ATL COM类之激活
  10. 数据挖掘:计算边的中介中心值 edge_betweenness value
  11. flash实验中需添加的flash.c文件
  12. vue中SM4加密解密(js部分)
  13. java测试脚本怎么写_Jmeter测试脚本编写(初学者熟悉篇)
  14. 浅聊一下车载以太网技术及其EAVB和TSN技术
  15. python入门基础知识(九):函数
  16. 怎么查询服务器是什么操作系统,怎么查服务器什么操作系统
  17. 哔哩哔哩mac电脑版上线,来聊聊B站Mac版客户端初体验
  18. SCOI 2016 bzoj 4567~4572 题解
  19. C++综合项目-boost搜索引擎
  20. 打开office(Word,Excel等)提示“应用程序无法正常启动(0xc0000142)。请单击确认关闭应用程序”

热门文章

  1. Horn子句归结实验设计与实现 文档+任务书+答辩PPT+演示视频+项目源码
  2. hadoop之HDFS HA(高可用)架构安装部署
  3. 助力工业物联网,工业大数据之费用事实指标分析及实现【二十四】
  4. 如何看待master战胜柯洁等多为围棋高手?
  5. oracle安装时找不到启动,win7 下安装oracle 11g出现错误: 启动服务出现错误 找不到服务OracleMTSRecoveryService...
  6. 上海浦东大数据产业初具规模
  7. 【计算机组成原理】动态RAM(DRAM)的三种刷新方式
  8. L0、L1与L2范数、核范数分析
  9. Python Unicode 基本知识
  10. 荣获“中国 AI 企业知识产权百强榜” 思岚科技再受肯定