Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【读书笔记】《 Hadoop构建数据仓库实践》第2章

【读书笔记】《 Hadoop构建数据仓库实践》第2章

作者头像
辉哥
发布于 2022-05-13 06:22:24
发布于 2022-05-13 06:22:24
1K0
举报
文章被收录于专栏:区块链入门区块链入门

02-《 Hadoop构建数据仓库实践》.jpg

第2章 数据仓库设计基础

2.1 关系数据模型

2.1.1 关系数据模型中的结构

6.关系表的属性

关系表有如下属性:

● 每个表都有唯一的名称。

● 一个表中每个列有不同的名字。

● 一个列的值来自于相同的属性域。

● 列是无序的。

● 行是无序的。

7.关系数据模型中的键
(1)超键

一个列或者列集,唯一标识表中的一条记录。超键可能包含用于唯一标识记录所不必要的额外的列,我们通常只对仅包含能够唯一标识记录的最小数量的列感兴趣。

【举例】

表一:学号、姓名、性别、身份证号、教室号

表二:教室号、班主任

超键:我们可以使用(学号、姓名)的组合键来确定性别属性,则(学号、姓名)就是超键。

候选键:就是将超键中的多余属性去除掉,我们其实可以使用学号来确定性别,这时候,学号就是候选键。

主键:学号和身份证号都能够唯一确定性别,但是我们只会选择其中的一个来充当主键。

外键:就是表一的教室号是外键,关联的是表二的教室号。

(2)候选键

仅包含唯一标识记录所必需的最小数量列的超键。

表的候选键有三个属性:

● 唯一性:在每条记录中,候选键的值唯一标识该记录。

● 最小性:具有唯一性属性的超键的最小子集。

● 非空性:候选键的值不允许为空。

在我们的例子中,分公司编号是候选键,如果每个分公司的邮编都不同,那么邮编也可以作为分公司表的候选键。一个表中允许有多个候选键。

(3)主键

唯一标识表中记录的候选键。主键是唯一、非空的。没有被选做主键的候选键称为备用键。对于例子中的分公司表,分公司编号是主键,邮编就是备用键,而员工表的主键是员工编号。

主键的选择在关系数据模型中非常重要,很多性能问题都是由于主键选择不当引起的。在选择主键时,我们可以参考以下原则:

● 主键要尽可能地小。

● 主键值不应该被改变。主键会被其他表所引用。如果改变了主键的值,所有引用该主键的值都需要修改,否则引用就是无效的。

● 主键通常使用数字类型。数字类型的主键要比其他数据类型效率更高。

● 主键应该是没有业务含义的,它不应包含实际的业务信息。无意义的数字列不需要修改,因此是主键的理想选择。大部分关系型数据库支持的自增属性或序列对象更适合当作主键。

● 虽然主键允许由多列组成,但应该使用尽可能少的列,最好是单列。

(4)外键

一个表中的一个列或多个列的集合,这些列匹配某些其他(也可以是同一个)表中的候选键。注意外键所引用的不一定是主键,但一定是候选键。当一列出现在两张表中的时候,它通常代表两张表记录之间的关系。如例子中分公司表的分公司编号和员工表的所属分公司。它们的名字虽然不同,但却是同一含义。分公司表的分公司编号是主键,在员工表里所属分公司是外键。同样,因为公司经理也是公司员工,所以它是引用员工表的外键。主键所在的表被称为父表,外键所在的表被称为子表。

2.1.2 关系完整性

关系数据模型有两个重要的完整性规则:实体完整性和参照完整性。

1.空值(NULL)

表示一个列的值目前还不知道或者对于当前记录来说不可用。空值可以意味着未知,也可以意味着某个记录没有值,或者只是意味着该值还没有提供。空值是处理不完整数据或异常数据的一种方式。

2.关系完整性规则
(1)实体完整性

在一个基本表中,主键列的取值不能为空。基本表指的是命名的表,其中的记录物理地存储在数据库中,与之对应的是视图。视图是虚拟的表,它只是一个查询语句的逻辑定义,其中并没有物理存储数据。

(2)参照完整性

如果表中存在外键,则外键值必须与主表中的某些记录的候选键值相同,或者外键的值必须全部为空。在图2-1中,员工表中的所属分公司是外键。该列的值要么是分公司表的分公司编号列中的值,要么是空(如新员工已经加入了公司,但还没有被分派到某个具体的分公司时)。

4.关系数据库语言

关系数据库的主要语言是SQL语言。

SQL是Structured Query Language的缩写,意为结构化查询语言。SQL已经被国际标准化组织(ISO)进行了标准化,使它成为正式的和事实上的定义和操纵关系数据库的标准语言。

SQL语言又可分为DDL、DML、DCL、TCL四类。

DDL是Data Definition Language的缩写,意为数据定义语言,用于定义数据库结构和模式。典型的DDL有create、alter、drop、truncate、comment、rename等。

DML是Data Manipulation Language的缩写,意为数据操纵语言,用于检索、管理和维护数据库对象。典型的DML有select、insert、update、delete、merge、call、explain、lock等。

DCL是Data Control Language的缩写,意为数据控制语言,用于授予和回收数据库对象上的权限。典型的DCL有grant和revoke。

TCL是Transaction Control Language的缩写,意为事务控制语言,用于管理DML对数据的改变。它允许一组DML语句联合成一个逻辑事务。典型的TCL有commit、rollback、savepoint、set transaction等。

2.1.3 规范化

没有规范化,数据的更新处理将变得困难,异常的插入、修改、删除数据的操作会频繁发生。为了便于理解,来看下面的例子。

假设有一个名为employee的员工表,它有九个属性:id(员工编号)、name(员工姓名), mobile(电话)、zip(邮编)、province(省份)、city(城市)、district(区县)、deptNo(所属部门编号)、deptName(所属部门名称),表中的数据如表2-5所示。

image.png

为了克服这些异常更新,我们需要对表进行规范化设计。规范化是通过应用范式规则实现的。最常用的范式有第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。

(1) 第一范式(1NF)

表中的列只能含有原子性(不可再分)的值。

数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。

上例中张三有两个手机号存储在mobile列中,违反了1NF规则。为了使表满足1NF,数据应该修改为如表2-6所示。

image.png

(2) 第二范式(2NF)

规则是符合第一范式,而且没有部分主键功能决定其他属性的现象,也就是主键之外的其他属性都完全的功能相依于主键。

第二范式要同时满足下面两个条件:

● 满足第一范式。

● 没有部分依赖。

例如,员工表的一个候选键是{id, mobile, deptNo},而deptName依赖于{deptNo},同样name仅依赖于{id},因此不是2NF的。为了满足第二范式的条件,需要将这个表拆分成employee、dept、employee_dept、employee_mobile四个表,如表2-7至表2-10所示。

image.png

image.png

(3) 第三范式(3NF)

第三范式要同时满足下面两个条件:

● 满足第二范式。

● 没有传递依赖。

例如,员工表的province、city、district依赖于zip,而zip依赖于{id},换句话说,province、city、district传递依赖于{id},违反了3NF规则。为了满足第三范式的条件,可以将这个表拆分成employee和zip两个表,如表2-11、表2-12所示。

image.png

在关系数据模型设计中,一般需要满足第三范式的要求。如果一个表有良好的主外键设计,就应该是满足3NF的表。规范化带来的好处是通过减少数据冗余提高更新数据的效率,同时保证数据完整性。然而,我们在实际应用中也要防止过度规范化的问题。规范化程度越高,划分的表就越多,在查询数据时越有可能使用表连接操作。而如果连接的表过多,会影响查询的性能。关键的问题是要依据业务需求,仔细权衡数据查询和数据更新的关系,制定最适合的规范化程度。还有一点需要注意的是,不要为了遵循严格的规范化规则而修改业务需求。

(4) BCNF范式

BCNF范式(Boyce/Codd Normal Form),是由R.F.Boycy和E.F. Codd共同提出的,可以算成是第三正则化的补充,规则是符合第三正则化原则,并且没有非主键属性可以功能性决定部分主键的现象。

假设有一个表R,其中的属性有A,B,C,D,E,以A和B为复合主键,R={A,B,C,D,E},如果存在有非主键属性,比如说C可以功能性决定B,C→B,而B是主键的一部分,这时第三正则化是没有办法分辨出来这种错误的,所以有BCNF正则化规则来把关,同样地,BCNF正则化的方法也是将原来的表拆开,成立一个新的关联表R1来装C→B,R1={C,B},但原来的表R还是以(A,B)为复合主键,以B为外键关联到新的表去,以保留原有的信息。

R={A,B,D,E},R1={C,B},R.B=R1.B

2.2 维度数据模型

维度数据模型简称维度模型(Dimensional modeling, DM),是一套技术和概念的集合,用于数据仓库设计。

事实和维度是两个维度模型中的核心概念。事实表示对业务数据的度量,而维度是观察数据的角度。事实通常是数字类型的,可以进行聚合和计算,而维度通常是一组层次关系或描述信息,用来定义事实。例如,销售金额是一个事实,而销售时间、销售的产品、购买的顾客、商店等都是销售事实的维度。维度模型按照业务流程领域即主题域建立,例如进货、销售、库存、配送等。不同的主题域可能共享某些维度,为了提高数据操作的性能和数据一致性,需要使用一致性维度,例如几个主题域间共享维度的复制。术语“一致性维度”源自Kimball,指的是具有相同属性和内容的维度。

2.2.1 维度数据模型建模过程

维度模型通常以一种被称为星型模式的方式构建。所谓星型模式,就是以一个事实表为中心,周围环绕着多个维度表。还有一种模式叫做雪花模式,是对维度做进一步规范化后形成的。

一般使用下面的过程构建维度模型:

● 选择业务流程

● 声明粒度

● 确认维度

● 确认事实

1.选择业务流程

确认哪些业务处理流程是数据仓库应该覆盖的,是维度方法的基础。因此,建模的第一个步骤是描述需要建模的业务流程。

为了描述业务流程,可以简单地使用纯文本将相关内容记录下来,或者使用“业务流程建模标注”(BPMN)方法,也可以使用统一建模语言(UML)或其他类似的方法。

2.声明粒度

在选择维度和事实前必须声明粒度,因为每个候选维度或事实必须与定义的粒度保持一致。

不同的事实可以有不同的粒度,但同一事实中不要混用多种不同的粒度。

3.确认维度

维度表是事实表的基础,也说明了事实表的数据是从哪里采集来的。典型的维度都是名词,如日期、商店、库存等。维度表存储了某一维度的所有相关数据,例如,日期维度应该包括年、季度、月、周、日等数据。

4.确认事实

大部分事实表的度量都是数字类型的,可累加,可计算,如成本、数量、金额等。

2.2.2 维度规范化

与关系模型类似,维度也可以进行规范化。对维度的规范化(又叫雪花化),可以去除冗余属性,是对非规范化维度做的规范化处理。

总体来说,当多个维度共用某些通用的属性时,做规范化会是有益的。例如,客户和供应商都有省、市、区县、街道等地理位置的属性,此时分离出一个地区属性就比较合适。

2.2.4 星型模式

星型模式是维度模型最简单的形式,也是数据仓库以及数据集市开发中使用最广泛的形式。星型模式由事实表和维度表组成,一个星型模式中可以有一个或多个事实表,每个事实表引用任意数量的维度表。星型模式的物理模型像一颗星星的形状,中心是一个事实表,围绕在事实表周围的维度表表示星星的放射状分支,这就是星型模式这个名字的由来。

星型模式将业务流程分为事实和维度。事实包含业务的度量,是定量的数据,如销售价格、销售数量、距离、速度、重量等是事实。维度是对事实数据属性的描述,如日期、产品、客户、地理位置等是维度。一个含有很多维度表的星型模式有时被称为蜈蚣模式,显然这个名字也是因其形状而得来的。

1.事实表

事实表记录了特定事件的数字化的考量,一般由数字值和指向维度表的外键组成。通常会把事实表的粒度级别设计得比较低,使得事实表可以记录很原始的操作型事件,但这样做的负面影响是累加大量记录可能会更耗时。事实表有以下三种类型:

● 事务事实表。记录特定事件的事实,如销售。

● 快照事实表。记录给定时间点的事实,如月底账户余额。

● 累积事实表。记录给定时间点的聚合事实,如当月的总的销售金额。

一般需要给事实表设计一个代理键作为每行记录的唯一标识。代理键是由系统生成的主键,它不是应用数据,没有业务含义,对用户来说是透明的。

2.维度表

维度表的记录数通常比事实表少,但每条记录包含有大量用于描述事实数据的属性字段。

维度表可以定义各种各样的特性,以下是几种最长用的维度表:

● 时间维度表。描述星型模式中记录的事件所发生的时间,具有所需的最低级别的时间粒度。数据仓库是随时间变化的数据集合,需要记录数据的历史,因此每个数据仓库都需要一个时间维度表。

● 地理维度表。描述位置信息的数据,如国家、省份、城市、区县、邮编等。

● 产品维度表。描述产品及其属性。

● 人员维度表。描述人员相关的信息,如销售人员、市场人员、开发人员等。

● 范围维度表。描述分段数据的信息,如高级、中级、低级等。

通常给维度表设计一个单列、整型数字类型的代理键,映射业务数据中的主键。业务系统中的主键本身可能是自然键,也可能是代理键。自然键指的是由现实世界中已经存在的属性组成的键,如身份证号就是典型的自然键。

5.示例

假设有一个连锁店的销售数据仓库,记录销售相关的日期、商店和产品,其星型模式如图2-3所示。

Fact_Sales是唯一的事实表,Dim_Date、Dim_Store和Dim_Product是三个维度表。每个维度表的Id字段是它们的主键。事实表的Date_Id、Store_Id、Product_Id三个字段构成了事实表的联合主键,同时这个三个字段也是外键,分别引用对应的三个维度表的主键。Units_Sold是事实表的唯一一个非主键列,代表销售量,是用于计算和分析的度量值。维度表的非主键列表示维度的附加属性。下面的查询可以回答2015年各个城市的手机销量是多少。

image.png

2.2.5 雪花模式

雪花模式是一种多维模型中表的逻辑布局,其实体关系图有类似于雪花的形状,因此得名。与星型模式相同,雪花模式也是由事实表和维度表所组成。所谓的“雪花化”就是将星型模式中的维度表进行规范化处理。当所有的维度表完成规范化后,就形成了以事实表为中心的雪花型结构,即雪花模式。将维度表进行规范化的具体做法是,把低基数的属性从维度表中移除并形成单独的表。

星型模式和雪花模式都是建立维度数据仓库或数据集市的常用方式,适用于加快查询速度比高效维护数据的重要性更高的场景。这些模式中的表没有特别的规范化,一般都被设计成一个低于第三范式的级别。

4.示例

图2-4显示的是将图2-3的星型模式规范化后的雪花模式。日期维度分解成季度、月、周、日期四个表。产品维度分解成产品分类、产品两个表。由商场维度分解出一个地区表。

图2-4显示的是将图2-3的星型模式规范化后的雪花模式。日期维度分解成季度、月、周、日期四个表。产品维度分解成产品分类、产品两个表。由商场维度分解出一个地区表。

下面所示的查询语句的结果等价于前面星型模式的查询,可以明显看到此查询比星型模式的查询有更多的表连接。

image.png

2.3 Data Vault模型

参考

(1)Data Vault 数据仓库模型构建-1

https://www.jianshu.com/p/df3684c20092

(2)Data Vault初探(三) —— 建立Data Vault模型

https://blog.csdn.net/wzy0623/article/details/50222269

2.4 数据集市

2.4.1 数据集市的概念

数据集市是数据仓库的一种简单形式,通常由组织内的业务部门自己建立和控制。

2.4.2 数据集市与数据仓库的区别

image.png

2.4.3 数据集市设计

数据集市主要用于部门级别的分析型应用,数据大都是经过了汇总和聚合操作,粒度级别较高。数据集市一般采用维度模型设计方法,数据结构使用星型模式或雪花模式。

正如前面所介绍的,设计维度模型先要确定维度表、事实表和数据粒度级别,下一步是使用主外键定义事实表和维度表之间的关系。数据集市中的主键最好使用系统生成的自增的单列数字型代理键。模型建立好之后,设计ETL步骤抽取操作型源系统的数据,经过数据清洗和转换,最终装载进数据集市中的维度表和事实表中。

2.5 数据仓库实施步骤

1.定义范围

首要任务是定义项目的范围。项目范围定义了一个数据仓库项目的边界。典型的范围定义是组织、地区、应用、业务功能的联合表示。定义范围时通常需要权衡考虑资源(人员、系统、预算等)、进度(项目的时间和里程碑要求)、功能(数据仓库承诺达到的能力)三方面的因素。定义好清晰明确的范围,并得到所有项目干系人的一致认可,对项目的成功是非常重要的。项目范围是设定正确的期望值、评估成本、估计风险、制定开发优先级的依据。

2.确定需求

数据仓库项目的需求可以分为业务需求和技术需求。

(1)定义业务需求

与业务人员进行面对面的沟通,是理解业务流程的好方式。沟通的结果是使数据仓库的业务需求更加明确。在为数据仓库收集需求的过程中,还要考虑设计要能适应需求的变化。

(2)定义技术需求

需要知道如何清理操作型数据,如何移除垃圾数据,如何将来自多个源系统的相同数据整合在一起。另外,还要确认数据的更新频率。

3.逻辑设计

下面就要进入数据仓库的逻辑设计阶段。逻辑设计过程中,需要定义特定数据的具体内容,数据之间的关系,支持数据仓库的系统环境等,本质是发现逻辑对象之间的关系。

(1)建立需要的数据列表

细化业务用户的需求以形成数据元素列表。

(2)识别数据源

应该从最大最复杂的源系统开始,在必要时再查找其他源系统。

(3)制作实体关系图

逻辑设计的交付物是实体关系图(entity-relationshipdiagram,简称ERD)和对它的说明文档(数据字典)。实体对应关系数据库中的表,属性对应关系数据库中的列。ERD传统上与高度规范化的关系模型联系密切,但该技术在维度模型中也被广泛使用。在维度模型的ERD中,实体由事实表和维度表组成,关系体现为在事实表中引用维度表的主键。因此先要确认哪些信息属于中心事实表,哪些信息属于相关的维度表。维度模型中表的规范化级别通常低于关系模型中的表。

4.物理设计

物理设计指的是将逻辑设计的对象集合,转化为一个物理数据库,包括所有的表、索引、约束、视图等。

5.装载数据

这个步骤实际上涉及整个ETL过程。需要执行的任务包括:源和目标结构之间建立映射关系;从源系统抽取数据;对数据进行清洗和转换;将数据装载进数据仓库;创建并存储元数据。

6.访问数据

访问步骤是要使数据仓库的数据可以被使用,使用的方式包括:数据查询、数据分析、建立报表图表、数据发布等。根据采用的数据仓库架构,可能会引入数据集市的创建。通常,最终用户会使用图形化的前端工具向数据库提交查询,并显示查询结果。

7.管理维护

这个步骤涵盖在数据仓库整个生命周期里的管理和维护工作。这步需要执行的任务包括:确保对数据的安全访问、管理数据增长、优化系统以获得更好的性能、保证系统的可用性和可恢复性等。

更多信息请参考作者书籍内容,可各大平台在线购买。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
维度模型数据仓库(二) —— 维度模型基础
        既然维度模型是数据仓库建设中的一种数据建模方法,那不妨先看一下几种主流的数据仓库架构。
用户1148526
2022/12/02
1K0
维度模型数据仓库(二) —— 维度模型基础
耗时n年,38页《数据仓库知识体系.pdf》(数据岗位必备)
数据仓库最早的概念可以追溯到20世纪70年代MIT的一项研究,该研究致力于开发一种优化的技术架构并提出这些架构的指导性意见。
全栈程序员站长
2022/09/05
1.7K0
耗时n年,38页《数据仓库知识体系.pdf》(数据岗位必备)
【万字长文】数仓最全知识点整理(建议收藏)
数据仓库 Data Warehouse,是为企业所决策制定过程,提供所有支持类型的数据集合。用于分析性报告和决策支持。数仓是一个面向主题、集成的、相对稳定、反映历史变化的数据集合,随着大数据技术的发展,其作用不再局限于决策分析、还可以为业务应用、审计、追踪溯源等多方面提供数据支撑,帮助企业完成数字化转型。
857技术社区
2022/05/17
15.4K0
【万字长文】数仓最全知识点整理(建议收藏)
基于Hadoop生态圈的数据仓库实践 —— 概述(一)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/51757011
用户1148526
2019/05/25
7570
BI/数据仓库/数据分析 基础入门:一些常见概念解释
Preface:本文将会讲述 BI/DW/DA 领域的一些常见概念,如:事实表、维度表、建模、多维分析、cube 等,但不涉及具体实例分析。 1、维(Dimension) 维是用于从不同角度描述事物特
用户1177713
2018/02/24
3.9K0
BI/数据仓库/数据分析 基础入门:一些常见概念解释
❤️ 爆肝三万字《数据仓库体系》轻松拿下字节offer ❤️【建议收藏】
🍅 作者主页:不吃西红柿 🍅 简介:CSDN博客专家🏆、信息技术智库公号作者✌  华为云享专家、HDZ核心组成员。 简历模板、PPT模板、学习资料、面试题库、技术互助。 目录 🍅 信息技术智库 🍅 ---- 文章很长,前言一定要看 拥有本篇文章,意味着你拥有一本完善的书籍,本篇文章整理了数据仓库领域,几乎所有的知识点,文章内容主要来源于以下几个方面: 源于「数据仓库交流群」资深数据仓库工程师的交流讨论,如《sql行转列的千种写法》。 源于群友面试大厂遇到的面试真题,整理投稿给我,形成《面试题库》。 源于笔
不吃西红柿
2022/07/29
1.1K0
❤️ 爆肝三万字《数据仓库体系》轻松拿下字节offer ❤️【建议收藏】
「数据仓库架构」数据仓库的三种模式建模技术
在为数据仓库设计的模式模型中,有多种安排模式对象的方法。一个数据仓库模式模型是星型模式。示例模式(本书中大多数示例的基础)使用星型模式。但是,还有其他模式模型通常用于数据仓库。这些模式模型中最流行的是第三范式(3NF)模式。另外,一些数据仓库模式既不是星型模式也不是3NF模式,而是共享这两种模式的特性;这些模式被称为混合模式模型。
架构师研究会
2020/07/20
3.3K0
「数据仓库架构」数据仓库的三种模式建模技术
Greenplum 实时数据仓库实践(2)——数据仓库设计基础
本篇首先介绍关系数据模型、多维数据模型和Data Vault模型这三种常见的数据仓库模型和与之相关的设计方法,然后讨论数据集市的设计问题,最后说明一个数据仓库项目的实施步骤。规划实施过程是整个数据仓库设计的重要组成部分。
用户1148526
2021/12/07
1.9K0
Greenplum 实时数据仓库实践(2)——数据仓库设计基础
50000字,数仓建设保姆级教程,离线和实时一网打尽(理论+实战) 上
我们在谈数仓之前,为了让大家有直观的认识,先来谈数仓架构,“架构”是什么?这个问题从来就没有一个准确的答案。这里我们引用一段话:在软件行业,一种被普遍接受的架构定义是指系统的一个或多个结构。结构中包括软件的构建(构建是指软件的设计与实现),构建的外部可以看到属性以及它们之间的相互关系。
五分钟学大数据
2021/12/09
12.1K0
50000字,数仓建设保姆级教程,离线和实时一网打尽(理论+实战) 上
【读书笔记】《 Hadoop构建数据仓库实践》第1章
Inmon将数据仓库描述为一个面向主题的、集成的、随时间变化的、非易失的数据集合,用于支持管理者的决策过程。
辉哥
2022/05/13
7080
【读书笔记】《 Hadoop构建数据仓库实践》第1章
深入讲解四种数仓建模理论方法
数据仓库的建设的最重要的核心核心之一就是数仓模型的设计和构建,这个决定了数仓的复用和性能,本文将介绍四种建模的理论:维度建模、关系建模、Data Vault建模、Anchor模型建模,文后也介绍几种常见的数仓建模工具。
Spark学习技巧
2024/01/26
2.9K0
深入讲解四种数仓建模理论方法
万字详解整个数据仓库建设体系(好文值得收藏)
英文名称为Data Warehouse,可简写为DW或DWH。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。它出于分析性报告和决策支持目的而创建。
五分钟学大数据
2021/04/02
4.1K0
数据仓库常用几种建模方法
什么是数据模型 为什么需要数据模型 如何建设数据模型 最后,我们在本文的结尾给大家介绍了一个具体的数据仓库建模的样例,帮助大家来了解整个数据建模的过程。
Spark学习技巧
2020/12/11
1.7K0
数据仓库常用几种建模方法
数据仓库指北
原创推文链接:https://mp.weixin.qq.com/s/LiCZz1GHhH4CsBIl5VdZjA ,附完整版【数据仓库指北】原创PDF获取。
大数据阶梯之路
2022/12/17
1.4K0
数据仓库指北
数据仓库架构
数据仓库的核心是展现层和提供优质的服务。ETL 及其规范、分层等所做的一切都是为了一个更清晰易用的展现层。
伊泽瑞尔
2022/06/01
2.1K0
数据仓库架构
数据仓库②-数据仓库与数据集市建模
前言 数据仓库建模包含了几种数据建模技术,除了之前在数据库系列中介绍过的ER建模和关系建模,还包括专门针对数据仓库的维度建模技术。 本文将详细介绍数据仓库维度建模技术,并重点讨论三种基于ER建模/关系建模/维度建模的数据仓库总体建模体系:规范化数据仓库,维度建模数据仓库,以及独立数据集市。 维度建模的基本概念 维度建模(dimensional modeling)是专门用于分析型数据库、数据仓库、数据集市建模的方法。 它本身属于一种关系建模方法,但和之前在操作型数据库中介绍的关系建模方法相比增加了两个概念:
Spark学习技巧
2018/03/20
5.5K1
数据仓库②-数据仓库与数据集市建模
数据仓库的核心概念
数据仓库晨曦
2024/03/25
2300
数据仓库的核心概念
数仓模型设计详细讲解
今天给大家分享下数仓中的模型设计,一个好的数仓项目首先看一下它的架构以及他所用到的模型,它们使用的模型也都是非常巧妙的,好了,我们话不说到直接开始。
大数据老哥
2021/02/04
8710
数仓模型设计详细讲解
一文探究数据仓库体系(2.7万字建议收藏)
数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它出于分析性报告和决策支持目的而创建。
肉眼品世界
2020/11/11
2K0
一文探究数据仓库体系(2.7万字建议收藏)
一文带你认清数据仓库【维度模型设计】与【分层架构】
本篇博客,博主为大家带来关于数仓项目中纬度模型设计与分层架构的一个说明。
大数据梦想家
2021/01/27
1.5K0
一文带你认清数据仓库【维度模型设计】与【分层架构】
推荐阅读
相关推荐
维度模型数据仓库(二) —— 维度模型基础
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档