数据仓库—维度建模—维度表设计

维度表

维度表(Dimension Table)是数据仓库中描述业务过程中各种维度信息的表,用于提供上下文和描述性信息,以丰富事实数据的分析

维度表是维度建模的灵魂所在,在维度表设计中碰到的问题(比如维度变化、维度层次、维度一致性、维度整合和拆分等)都会直接关系到维度建模的好坏,因此良好的维表设计就显得至关重要,今天就让我们就一起来探究下关于维表设计的相关概念和一些技术。

前面我们介绍了数仓建模中的事实表,具体可以见数仓建模—事实表,除了事实表之外,我们也提到了宽表,可以看数仓建模—宽表的设计,今天我们介绍一下数仓中的维度表,以及在维度表设计和开发过程中,容易遇到的一些问题,开始之前我们先看一下如何识别维度,也就是什么是维度,只有正确的识别出维度,我们才能设计出维度表。

识别维度

在实际维度建模过程中,我们首选需要解决的问题就是到底哪些是维度或者什么事维度,维度的定义是什么,其实维度的定义很见到就是我们看待事物的角度,或者是我们衡量事实的粒度。

其实关于什么是维度,每个人都能回答出几个答案

  • 维度是描述事实的场景

  • 维度是字符串,事实是数字

  • 维度是数据分析的入口

  • 维度是数据的灵魂

  • 维度是描述事实的上下文

  • 维度是可group by的分组的

  • 维度是可写where限制条件的

在实际维度建模过程,清晰识别维度是非常关键,维度是数据分析的入口,保证数据仓库模型通用性、易用性和回答业务用户范围前提条件之一。

kimball认为,维度建模首先会将现实情况划分为测量和上下文开始,通常将指标的度量称之为“事实”,将产生度量的环境称之为“维度”。

度量离开了维度或上下文也没有意义的,如给一个数字 960,我们是无法知道这个数字的意义。

image-20210928161629562

但是,一旦给这个度量添加了上下文,其就有了意义,例如我国的国土面积是960万平方公里,其实这里还反映了一个问题那就是单位,既然是度量那就会有度量单位,所以我们在数据分析的时候要做一些操作例如单位的转换。

维度是事实的上下文,没有维度的事实是没有意义的,或者说是维度是我们看待数据的视角,下面我们还是通过一个小的例子,来看一下

“昨天早上张三在京东花费200元买了一个书包”, 这里时间维度(昨天早上)、地点维度(京东)、商品维度(书包)

维度是数字的主体,例如这里什么是960,中国的国土面积是960万平方公里,数字是维度的度量。

维度表

前面了解了如何识别维度,下面我们看一下维度表。

维度表一般为单一主键,在ER模型中,实体为客观存在的事物,会带有自己的描述性属性,属性一般为文本性、描述性的,这里的客观存在的事物和它的描述就是维度,这也就是为什么维度本身也会带有度量的原因,例如我们的用户的年龄是存放在维度表中的,而不是事实表,虽然它是一个度量。

维度建模的核心是数据可以抽象为事实和维度,维度即观察事物的角度,事实某一粒度下的度量词。

每个维度表都包含单一的主键列。维度表的主键可以作为与之关联的任何事实表的外键,维度表通常比较宽,是扁平型非规范表,包含大量的稳定的文本属性和数值属性。

维度表设计

维度的设计过程就是确定维度属性的过程,如何生成维度属性,以及所生成维度属性的优劣,决定了维度是用的方便性,成为数据仓库易用性的关键。

数据仓库的能力直接与维度属性的质量和深度成正比,其实这句话说明了维度表的重要性,维度设计的不好,数仓的数据服务能力就不好,具体表现为数据不准确、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/544007.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于R语言实现的负二项回归模型【理解与实现】-理解负二项回归模型和泊松回归模型之间的区别

前言 我们可以在R语言中使用MASS包中的glm.nb函数来拟合负二项模型,以及使用glm函数来拟合泊松模型。以下是一个详细的过程,包括模拟数据的生成、模型的拟合、结果的比较和解释。 需要的包 if (!require("MASS")) install.packages("M…

【Leetcode每日一题】 分治 - 颜色分类(难度⭐⭐)(57)

1. 题目解析 题目链接:75. 颜色分类 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 算法思路解析 本算法采用三指针法,将数组划分为三个区域,分别用于存放值为0、1和2的元素。通过…

CentOS 7安装Zookeeper

说明:本文介绍如何在CentOS 7操作系统下使用Zookeeper 下载安装 首先,去官网下载所需要安装的版本,我这里下载3.4.9版本; 上传到云服务器上,解压 tar -xvf zookeeper-3.4.9.tar.gz修改配置 进入Zookeeper目录下的co…

3. 安装arrach结构的Mysql

提示:arm的centos上面安装arrach结构的Mysql 文章目录 前言一、查看已经安装过的并卸载mysql二、创建mysql用户组1.设置用户组2. 安装3.设置启动4.查看密码5.修改登录密码6.授权7.修改连接8.设置参数 常见问题排查1. 启动失败查看:2. 用户操作3. 踩坑解决…

【已开源】​基于stm32f103的爬墙小车

​基于stm32f103的遥控器无线控制爬墙小车,实现功能为可平衡在竖直墙面上,并进行移动和转向,具有超声波防撞功能。 直接上: 演示视频如:哔哩哔哩】 https://b23.tv/BzVTymO 项目说明: 在这个项目中&…

Unity 2D让相机跟随角色移动

相机跟随移动 最简单的方式通过插件Cinemachine 在窗口/包管理器选择全部找到Cinemachine,导入。然后在游戏对象/Cinemachine创建2D Camera。此时层级中创建一个2D相机。选中人物拖入检查器Follow。此时相机跟随人物移动。 修改相机视口距离 在检查器中Lens下调正…

linux学习:文件属性

在操作文件的时候,经常需要获取文件的属性,比如类型、权限、大小、所有者等等, 这些信息对于比如文件的传输、管理等是必不可少的,而这些信息 这三个函数的功能完全一样,区别是:stat( )参数是一个文件的名字…

UI设计/交互设计/视觉设计项目汇报/作品集Figma/PPT模板

作为UI设计/交互设计/视觉设计师,创建作品集对于向潜在客户或雇主展示您的技能、创造力和风格至关重要。以下分步指南可帮助您创建令人印象深刻的作品集: 选择您的最佳作品:选择您最强大且最相关的设计项目,将其纳入您的作品集。…

Java应用中文件上传安全性分析与安全实践

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 一. 文件上传的风险 二. 使用合适的框架和库 1. Spr…

CCF区块链论文录用资讯--ICDE 2024

ICDE是CCF A类会议 (数据库/数据挖掘/内容检索) 其2024录用了8篇区块链论文 Database technology for Blockchains I Efficient Partial Order Based Transaction Processing for Permissioned Blockchains (针对许可区块链的高效的基于偏序…

Niobe开发板OpenHarmony内核编程开发——事件标志

本示例将演示如何在Niobe Wifi IoT开发板上使用cmsis 2.0 接口使用事件标志同步线程 EventFlags API分析 osEventFlagsNew() /// Create and Initialize an Event Flags object./// \param[in] attr event flags attributes; NULL: default values./// \return e…

openstack安装dashboard后登录网页显示404错误

1. 2.进入该目录vim /etc/httpd/conf.d/openstack-dashboard.conf 增加这一行 WSGIApplicationGroup %{GLOBAL} 重启httpd后就可以访问了

Devin AI: The World’s First AI Software Engineer

Devin AI是Cognition AI团队推出的一款名为Devin的人工智能软件工程师,它被誉为世界上第一个完全自主的AI软件工程师。Devin AI在2024年3月12日发布,并在SWE-bench编码基准测试中设立了新的技术标杆。 Devin AI具备多项强大的能力,包括学习如…

数据结构与算法——20.B-树

这篇文章我们来讲解一下数据结构中非常重要的B-树。 目录 1.B树的相关介绍 1.1、B树的介绍 1.2、B树的特点 2.B树的节点类 3.小结 1.B树的相关介绍 1.1、B树的介绍 在介绍B树之前,我们回顾一下我们学的树。 首先是二叉树,这个不用多说&#xff…

【5G PHY】5G无线链路监测原理简述

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

网络篇11 | 网络层 ICMP

网络篇11 | 网络层 ICMP 01 简介02 报文格式1)Type(类型)2)Code(代码)3)Checksum(校验和)4)ICMP数据部分 03 ICMP数据抓包1)类型 8:回显请求(Echo Request)2)类型 13&…

产生死锁的四个必要条件

产生死锁的四个必要条件 互斥使用: 一个资源每次只能被一个线程使用。这意味着如果一个线程已经获取了某个资源(比如锁),那么其他线程就必须等待,直到该线程释放资源。 不可抢占: 已经获得资源的线程在释放资源之前,不…

MySQL优化表,表的碎片整理和空间回收,清理空间

1.sql -- 查看表占用空间大小。简单查询可以用show table status like blog_visit; select data_length, index_length, data_free, o.* from information_schema.tables o where table_schema in (lishuoboy-navigation) and table_nameblog_visit order by data_length des…

车载电子电器架构 —— 平行开发策略

车载电子电器架构 —— 平行开发策略 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己…

常见的垃圾回收算法

文章目录 1. 标记清除算法2. 复制算法3. 标记整理算法4. 分代垃圾回收算法 1. 标记清除算法 核心思想: 标记阶段,将所有存活的对象进行标记。Java中使用可达性分析算法,从GC Root开始通过引用链遍历出所有存活对象。清除阶段,从…