ETL自学之路-02(维度建模)

article/2025/9/28 11:38:45

一、维度建模的基本概念

1.1维度建模的定义

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

1.2 维度表(dimension)

维度表示你要对数据进行分析时所用的一个量,比如,你要分析产品销售情况,你可以选择按照类别来进行分析,或者按照区域进行分析。这样的按照XX进行分析的就构成了一个维度。再比如“昨天下午我在星巴克话费200元喝了一杯卡布奇诺”,那么以消费为主题进行分析从这段消息中可以提取三个维度:时间维度(昨天下午)、地点维度(星巴克)、商品维度(卡布奇诺)。通常来说维度表信息比较固定,且数据量小。

1.3 事实表(fact_table)

表示对分析主题的度量。事实表包含了与各维度表相关联的外键,并调用JOIN方式与维度表关联。事实表的度量通常是数值型的,且记录数会不断增加,表规模迅速增长。比如上面消费的例子,他的消费事实表结构示例如下所示:

消费事实表:prod_id(引用商品维度表id)、timekey(引用时间维度表)、place_id(引用地点维度表)、unit(销售量)。

总的来说,在数据仓库中不需要严格按照规范化设计原则,因为数据仓库的主导功能就是面向分析,以查询为主,不涉及数据更新操作。事实表的设计是以能够正确记录历史信息为准则,维度表的设计是以能够以合适的角度来聚合主题内容为原则。

二、维度建模的三种方式

2.1 星型模型

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

  1. 维度表只和事实表关联,维度表之间没有关联;
  2. 每个维度主键为单列,且该主键被放在事实表中,作为两边连接的外键。
  3. 以事实表为核心,维度表围绕核心呈星型分布。

2.2 雪花模型

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

2.3 星座模型

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

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

三、模型命名规范

维度表命名遵循 dim_<dimension_name>的规则,其中dimension_name用来描述维度的内容。

维度一般是指 人员(who)、时间(when)、地点(where)、事件(what)来划分。

事实表的命名遵循fact_<fact_name> 的规则,其中fact_name用来描述事实表的内容。

事实表一般是以多少(how much)来划分的。


http://chatgpt.dhexx.cn/article/V39U8C9F.shtml

相关文章

维度建模

维度建模 维度模型简介 维度建模被广泛接受为数据分析的首选技术&#xff0c;因为它同时满足了两个需求&#xff1a; 1.向用户交付可以理解的数据 2.提供快速查询的性能 维度建模实体建模第三范式&#xff08;3NF&#xff09;建模适合表连接以及聚合计算的查询请求&#xff1…

数据模型建设-维度建模详解

5.2 维度建模 维度建模是一种将大量数据结构化的逻辑设计手段&#xff0c;包含维度和指标&#xff0c;它不像ER模型目的是消除冗余数据&#xff0c;维度建模是面向分析&#xff0c;最终目的是提高查询性能&#xff0c;所以会增加数据冗余&#xff0c;并且违反三范式。 维度建…

绘制彩色图的颜色直方图

计数直方图 在Opencv中已经集成了关于彩色图像直方图计算的函数&#xff0c;形式如下&#xff1a; import cv2cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]])参数 images&#xff1a;array-like类型&#xff0c;要计算的图像(单张或多张)&a…

matplotlib 图像颜色直方图

参考学习 定义 cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate ]]) ->hist imaes:输入的图像channels:选择图像的通道mask:掩膜&#xff0c;是一个大小和image一样的np数组&#xff0c;其中把需要处理的部分指定为1&#xff0c;不需要处理的…

OpenCV—python 颜色直方图与直方图均衡化

文章目录 一、颜色直方图1.1 使用opencv展示直方图1.2 使用matplotlib绘制 二、直方图均衡化2.1 全局直方图均衡化与自适应均衡化2.2 使用查找表来拉伸直方图2.3 直方图均衡化—RGB2YCrCb2.4 直方图均衡化—RGB2YUV 一、颜色直方图 1.1 使用opencv展示直方图 函数 cv2.calcHis…

颜色直方图和颜色矩

来源&#xff1a;http://www.xuebuyuan.com/2019161.html 1、颜色直方图 颜色直方图所描述的是不同色彩在整幅图像中所占的比例&#xff0c;而并不关心每种色彩所处的空间位置&#xff0c;即无法描述图像中的对象或物体。颜色直方图特别适于描述那些难以进行自动分割的图像。 …

颜色直方图 灰度图彩色图

1.读取照片 cv2.imread&#xff08;图片路径&#xff0c;cv2.IMREAD_COLOR&#xff09; 2.定义color变量&#xff08;b&#xff0c;g&#xff0c;r&#xff09; 代表三个通道 3.彩色图像为例 for i&#xff0c;col in enumerate&#xff08;color&#xff09;&#xff1a;遍历…

基于MATLAB颜色直方图的图像检索

基于颜色直方图的图像检索 概述 在过去的十几年间&#xff0c;有许多知名机构都对图像检索系统进行了深入的研究&#xff0c;病开发出了相应的检索系统&#xff0c;例如IBM Almaden研究中心研制的QBIC系统&#xff0c;Virage公司研发的VIRAGE系统&#xff0c;麻省理工大学多媒体…

pyimagesearch-4 聪明的女孩:计算机视觉和图像搜索引擎使用颜色直方图的指南

原文链接 It’s…it’s a histogram. – Dr. Grant 好吧&#xff0c;也许这不是确切的引用。但是&#xff0c;如果格兰特博士知道颜色直方图的力量&#xff0c;我认为他会同样激动。 更重要的是&#xff0c;当电力耗尽时&#xff0c;直方图不会让游客吃东西。 那么&#xff…

OpenCV 学习笔记(颜色直方图计算 calcHist)

OpenCV 学习笔记&#xff08;颜色直方图计算 calcHist&#xff09; 最近在看一本OpenCV 的书&#xff0c;书名是 《OpenCV 3 Computer Vision Application Programming Cookbook &#xff08;third edition&#xff09;》&#xff0c;里面给了很多很实用的代码片段。最近这几篇…

Opencv绘制HSV颜色直方图

一. 使用Opencv绘制HSV颜色直方图 所用的函数 cvCvtColor 可在&#xff1a; 使用Opencv将RGB颜色空间转换到HSV颜色空间/灰度图 文章中查找相关介绍 所使用的结构体&#xff1a; CvHistogram 以及函数&#xff1a; cvCalcHist CvCreateHist cvGetMinMaxHistValue cv…

基于颜色直方图优化的图像增强方法

最近改图像颜色迁移的论文&#xff0c;审稿人要求补充基于直方图优化的方法细节。趁此机会&#xff0c;我重新下载了相关文献&#xff0c;决定重新学习下该类方法&#xff0c;并把一些细节记录在本篇博客中&#xff0c;供交流学习。 目录 1. 前言 2. 背景知识 3. 颜色变换 4. 颜…

[OpenCV实战]52 在OpenCV中使用颜色直方图

颜色直方图是一种常见的图像特征&#xff0c;顾名思义颜色直方图就是用来反映图像颜色组成分布的直方图。颜色直方图的横轴表示像素值或像素值范围&#xff0c;纵轴表示该像素值范围内像素点的个数或出现频率。颜色直方图属于计算机视觉中的基础概念&#xff0c;其常常被应用于…

关于颜色直方图

一、颜色距 转自&#xff1a;https://blog.csdn.net/jaych/article/details/51137341 1、颜色距离 颜色距离指的是两个颜色之间的差距&#xff0c;通常距离越大&#xff0c;两个颜色相差越大&#xff0c;反之&#xff0c;两个颜色越相近。在计算颜色距离时&#xff0c;有类似…

图像特征分析---颜色特征描述---颜色距和颜色直方图

一、颜色距 转自&#xff1a;https://blog.csdn.net/jaych/article/details/51137341 1、颜色距离颜色距离指的是两个颜色之间的差距&#xff0c;通常距离越大&#xff0c;两个颜色相差越大&#xff0c;反之&#xff0c;两个颜色越相近。在计算颜色距离时&#xff0c;有类似计算…

颜色特征提取(一)——颜色直方图(opencv实现)

直方图——再讲颜色直方图之前&#xff0c;先简单介绍一下直方图。 直方图作为一种简单有效的基于统计特性的特征描述子&#xff0c;在计算机视觉领域广泛使用。它的优点主要体现在两个方面:一是对于任意一个图像区域&#xff0c;直方图特征的提取简单方便;其二&#xff0c;直…

一般颜色直方图

颜色直方图是一种用于图像处理和分析的图表&#xff0c;它可以显示图像中不同颜色的数量。通常&#xff0c;颜色直方图会将颜色分成几个色调区间&#xff0c;每个区间对应一个条形图&#xff0c;其中条形图的高度表示该色调区间中的像素数量。通过颜色直方图&#xff0c;你可以…

网络爬虫Jsoup

简介 网络爬虫&#xff08;又称为网页蜘蛛&#xff0c;网络机器人&#xff0c;在FOAF社区中间&#xff0c;更经常的称为网页追逐者&#xff09;&#xff0c;是一种按照一定的规则&#xff0c;自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、…

【Java】Jsoup爬虫快速入门案例

1、前言 该技术博客是根据B站狂神说Java教程的笔记总结&#xff0c;希望能为大家带来帮助&#xff01; 2、Jsoup实战案例 爬虫可以理解为爬取数据&#xff0c;所谓爬取数据就是&#xff1a; 获取请求返回的页面信息&#xff0c;筛选出我们想要的数据 如果想要爬取数据&#…

android爬虫框架jsoup,Android笔记之JSoup爬虫入门

前言 闲扯一些没用的&#xff0c;写这篇文章之前是有点私心的&#xff0c;因为之前评论某简书大v的文章是鸡汤&#xff0c;瞬间被拉黑&#xff0c;连个解释和说明的机会都没有&#xff0c;文章语言干涩&#xff0c;内容平平&#xff0c;于是就好奇到底是些什么样的人喜欢和吹捧…