1.软文推荐

2.软文推荐

3.软文推荐

数据仓库的核心是展现层和提供优质的服务。ETL 及其规范、分层等所做的一切都是为了一个更清晰易用的展现层。

一、维度建模基本概念

维度模型是数据仓库领域大师Ralph Kimall所倡导,他的《数据仓库工具箱》,是数据仓库工程领域最流行的数仓建模经典。维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。

维度建模是专门应用于分析型数据库、数据仓库、数据集市建模的方法。数据集市可以理解为是一种小型数据仓库。

1.1 事实表

发生在现实世界中的操作型事件,其所产生的可度量数值,存储在事实表中。从最低的粒度级别来看,事实表行对应一个度量事件,反之亦然。

事实表表示对分析主题的度量。比如一次购买行为我们就可以理解为是一个事实。

图中的订单表就是一个事实表,可以理解他就是在现实中发生的一次操作型事件,每完成一个订单,就会在订单中增加一条记录。

事实表的特征:表里没有存放实际的内容,他是一堆主键的集合,这些ID分别能对应到维度表中的一条记录。事实表包含了与各维度表相关联的外键,可与维度表关联。事实表的度量通常是数值类型(条/个/次),且记录数会不断增加,表数据规模迅速增长。

1.2 维度表

维度表示要对数据进行分析时所用的一个量,比如你要分析产品销售情况, 你可以选择按类别进行分析,或按区域分析。这样的按..分析就构成一个维度。上图中的用户表、商家表、时间表这些都属于维度表。这些表都有一个唯一的主键,然后在表中存放了详细的数据信息。

例如:交易金额分析分析

男性用户的订单金额、联想商品的订单金额、第一季度的订单金额、手机的订单金额、家里下单的订单金额

例如:学生分析

姓张的同学有多少、男性的同学有多少、江苏的同学有多少、身高小于170cm的同学有多少、年龄小于23岁的同学有多少。

每个维度表都包含单一的主键列。维度表的主键可以作为与之关联的任何事实表的外键,当然,维度表行的描述环境应与事实表行完全对应。维度表通常比较宽,是扁平型非规范表,包含大量的低粒度的文本属性。

总的说来,在数据仓库中不需要严格遵守规范化设计原则。因为数据仓库的主导功能就是面向分析,以查询为主,不涉及数据更新操作。

事实表的设计是以能够正确记录历史信息为准则。

维度表的设计是以能够以合适的角度来聚合主题内容为准则。

二、维度建模三种模式

2.1 星型模型

星形模式(Star Schema)是最常用的维度建模方式。星型模式是以事实表为中心,所有的维度表直接连接在事实表上,像星星一样。

星形模式的维度建模由一个事实表和一组维表成,且具有以下特点:

维表只和事实表关联,维表之间没有关联;

每个维表主键为单列,且该主键放置在事实表中,作为两边连接的外键;

以事实表为核心,维度表围绕核心呈星形分布

2.2 雪花模式

雪花模式(Snowflake Schema)是对星形模式的扩展。雪花模式的维度表可以拥有其他维度表的,虽然这种模型相比星型更规范一些,但是由于这种模型不太容易理解,维护成本比较高,而且性能方面需要关联多层维表,性能也比星型模型要低。所以一般不是很常用。

2.3 星座模式

星座模式是星型模式延伸而来,星型模式是基于一张事实表的,而星座模式是基于多张事实表的,而且共享维度信息。

前面介绍的两种维度建模方法都是多维表对应单事实表,但在很多时候维度空间内的事实表不止一个,而一个维表也可能被多个事实表用到。在业务发展后期,绝大部分维度建模都采用的是星座模式。

本文来源:www.lxlinux.net/9055.html,若引用不当,请联系修改。

相关文章 8

1

韩国vps和日本免费观看(vPs韩国日本香港) 2分钟前

目录:1、跪求韩国日本电影中文字幕,【免费高清】在线观看百度网盘资源2、韩国综艺节目,韩剧和日剧以及动漫的免费观看网站3、跪求...

2

Windows 系统下常用的八个网络配置命令 3分钟前

本篇文章重点为大家讲解一下Windows 系统下常用的八个网络配置命令,有需要的小伙伴可以参考一下。 一、ipconfig ipconfig 是 Windows 网络中最...

4

扬州云服务器(扬州盛世云信息科技有限公司) 6分钟前

目录:1、购买云计算服务器需要多少的费用?2、购买云计算服务器一般需要多少钱?3、如何申请云平台服务器4、服务器如何防御ddos攻击?...

5

详解DHCP原理与搭建步骤 8分钟前

DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根...

6

Linux常用命令—insmod命令 10分钟前

Linux常用命令 insmod命令 用于将给定的模块加载到内核中,下面良许教程网为大家分享一下Linux常用命令insmod命令具体使用方法。 insmod 将给定...

7

外贸独立站什么意思(外贸独立站是什么意思) 12分钟前

目录:1、到底什么是独立站呢?2、什么是跨境电商独立站?3、独立站是什么?4、外贸独立站和官网的区别?5、什么是独立站到底什么是独...

8

Linux系统如何安装tcpdump 14分钟前

tcpdump是一款网络数据采集分析工具,可以将网络中传送的数据包的头完全捕获并且分析,那么在Linux系统中怎样安装tcpdump呢?下面良许教程...