数据仓库——大维度问题

大维度

大维度很深,有很多记录。大维度很宽,有很多属性。满足任何一种情况,都可以说这是个大维度。
由于数据量很大,很多包含大维度的数据仓库功能可能会很慢,效率很低,需要设计有效的方法,原则正确索引或者采用其他优化技术处理以下问题

  • 向大维度表填充数据
  • 非限制维度的浏览功能,尤其是那些属性基数较小的维度
  • 多维度限制属性值的浏览时间
  • 对事实表的查询涉及大维度表时,效率低
  • 为处理第二类修改需要增加额外的记录

多层次的结构

大维度通常拥有多层次的结构,不同的业务需要的不同属性可能不同。

快速变化中的大维度

在大多情况下,第二类修改适合处理快速变化的维度:

  • 如果维度表扁平,它允许在许多维度中不同属性间进行对称浏览
  • 即使加入了额外的维度表行,维度表的基本结构依然不变
  • 只有当最终用户的查询涉及修改过的属性时,同一个客户的多行记录展现出来,对其他的查询是看不出有多行记录的
    将大维度分解成一个或者多个比较简单的小维度表:
  • 将快速变化的属性放到另一个维度表中,而缓慢变化的属性放在原来的表里面
    废弃维度:
    一些标志与文本,不会在维度表中出现,如何处理
  • 忽略掉所有标志和文本。可能会丢掉一些有用的信息
  • 将标志和文本原封不动地放在事实表中,会增大事实表
  • 为每个标志和文本建立一个独立的维度,大大增加维度表的数目
  • 只保留那些有意义的标志和文本,将所有有用的标志放在一个单独的废弃的维度中,废弃维度中的属性对涉及标记文本的查询来说是有用的

分解大型维度

任意分隔维度表,虽然该方法解决了数据管理员提供的问题,但也带来的一系列的问题。

  • 连接选择,对于表本身来说不是问题,然而这可能导致混淆,并且可能为自动建立查询的商业智能工具带来问题

    • 事实表外键声明,将每个维度表行表示成两部分,导致两个 维度表共享相同的代理键。提供完整的维度表示。事实表中的外键引用了涉及的表,但是关系型数据库管理系统却不能对这种双重引用进行配置。一个外键只适用于一个表。
    • ETL处理,对ETL开发人员来说,将表分裂为两部分踢出了独特的挑战。
  • 分隔维度方法的替代方法

    • 两个维度,当某个维度具有海量属性时,这一情况通常可以作为存在两个相异维度的标志。如果确定存在相异维度,可以重新设计维度,将其划分为两个表,每一个 表都有各自的代理键,这连个维度将通过事实表分享明确的关系。
    • 将自由形态的文本字段定位到支架表,由大量属性造成的过长的行通常是在维度表中包含多个自有形态的文本字段的结果。他们可以被重新定位到不同的表中,并且用外键引用进行替换。
    • 寻找子类型,在很多情况下,维度表包含大量的属性组,每个属性组只作为所在行的一个子集。在包含特殊子类型属性的情况中,维度行的规模可以通过建立仅包含共享属性核心的维度和相互独立的自定义维度来控制。当需要分析所有子类型,使用核心维度,当只研究特定子类型时,使用自定义维度。
    • 考虑微型维度,将维度属性的子集分离,使用子集作为被称为微型维度的新维度的基础。与杂项维度类似,此类表的属性不表示单独户的分析概念,新维度表能顾通过心智可浏览性开销来缓解属性的规模问题。
    • 与其他维度一样,微型维度表被分配了一个代理键,与分隔维度不同的是,微型维度不共享原始维度表的代理键,原始维度和微型维度没有一对一关系,事实表将使用不同的外键来引用原始维度和微型维度。
    • 当表增长过快或存在大量的类型2属性,导致对变化的处理成为瓶颈时,一个或多个微型维度可能会有用,将不稳定的属性移动到微型维度表,用所有可能值填充。
    • 采用微型维度破坏了可浏览性,维度表和微型维度之间只通过事实关联,但是用户很少希望去构建针对某个大型维度最详细的浏览查询。提供维度和微型维度间有限的可浏览性是可能的。可以通过在引用微型维度中添加外键来实现。通过将微型维度中的键保存在维度中以实现交叉可浏览性也存在限制,只能获得微型维度中的当前信息,并未保存历史信息。
    • 如果需要的话,维度和微型维度表之间的全部历史关系,可以通过设计额外的事实表得以保留。

角色维度和别名的使用

业务过程的度量可以包含维度的多个实例。
单一表,多重关系,维度表可以参与事实表中多个关系,每个关系称作一个角色。
利用别名来存取角色,历史数据库视图,创建不同的维度表视图来表示每个角色,采用适当的外键列将事实表与每个视图连接。SQL别名也可以

避免空值

一个不太规范却实际的解决方案是当数据无效时存储特定的值。如0或者N/A来表示。

空值带来的问题

  • 空值是没有意义的,但它与空白、空串或者零值存在明显的区别。
  • 空值不代表任何事物,不能被认为是等同于任何事物,甚至不能与其他的空值等同。如果涉及空值,任何传统的比较都要失败。
  • 不要允许在外键列中使用空值,即时为存储NULL值,也需要替换维度列的连接语法并创建维度NULL实例值。
  • 当事实表和维度表之间的关系可选择时,随着空值而来的问题能通过在维度表中创建特殊的行来加以避免。该行将会被不包含对应的维度细节的事实行引用。
  • 采用特殊行的方法避免了一些与空值相关的负面影响,但是仍然影响可浏览性,需要在查询时果粒橙特殊的行。

特殊情况行的用途

  • 可选关系,事实表和维度表之间的可选关系并不常见,但是的确存在,当不是事实表的部分粒度时,可选维度能被接受。
  • 无效数据,在事实表中加载数据行时,当与实务关联的产品无效时,可以将一个特别行添加到产品维度中。
  • 迟到的数据,有事数据仓库在获得相关细节前就获得事务,这种情况发生在加载间隔短或者史诗加载数据的环境。当事务的细节尚不存在时,将事实与维度表中的用于指示位置产品的特殊行关联。避免了将事务排除在数据仓库之外的可能,以便队未来能够获得事务并对其进行更新。
  • 未来事件,涉及时间,当事实表行代表一些涉及期限的事务时,采用记录一队日期的方式是非常有效的:事务的有效日期和截止日期。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数学】积性函数(以 P2303 为例)

定义: 若函数 f ( x ) f(x) f(x) 满足 ∀ gcd ⁡ ( a , b ) 1 , f ( a b ) f ( a ) f ( b ) \forall \gcd(a,b)1, f(ab)f(a)f(b) ∀gcd(a,b)1,f(ab)f(a)f(b),则函数 f f f 为积性函数。 函数: 莫比乌斯函数 μ ( x ) \mu(x) μ(x) 为…

修改 RabbitMQ 默认超时时间

MQ客户端正常运行,突然就报连接错误, 错误信息写的很明确,是客户端连接超时。 不过很疑虑,为什么会出现连接超时呢?代码没动过,网络也ok,也设置了心跳和重连机制。 最终在官网中找到了答案&am…

windows-MySQL5.7安装

1.安装包下载 https://downloads.mysql.com/archives/community/(社区版下载链接) 选择Archives可以下载历史包,此处使用5.7.43 2.解压文件 解压文件到你指定安装的目录:解压完成后在mysql-5.7.43-winx64下新建文件my.ini和d…

企业引入“四力平衡”理念,激励员工工作积极性

—— 如何激励业务人员的工作积极性?【所属行业】生产制造业【问题类型】业务人员绩效考核【客户背景】J公司成立于1985年,目前主要从事机床、工具及相关产品的进出口贸易和国内营销业务,自1990年以来,一直属于全国最大的500家外贸…

如何备考2024年AMC10:吃透2000-2023年1250道真题(限时免费送)

有家长朋友问,有没有适合初中学生参加的奥数类比赛?我推荐AMC10美国数学竞赛,在国内可以方便地参加,而且每年全国各省市参加的初中生越来越多。关于AMC10详细的介绍和常见问题解答,可以联系我获得。 那么如何在AMC10竞…

正大国际:黄金投资稳定与保值的避险之选

黄金作为备受投资者追捧的贵金属,在金融市场中扮演着重要的角色。黄金作为一种避险资产具有稳定性和保值特性,能够在市场动荡时提供投资者的资金保护, 正大召煮4/26/12 xiaoccsw 避险需求:当股票市场、货币市场或其他资产类别表现不佳时&a…

浅谈交直流混合微电网能量管理系统关键技术研究综述

摘要:为了提升交直流混合微电网健康有效发展,提高直流互联微电网中分布式电源的能源使用效率,提升区域微电网稳定发展,对交直流混合微电网能量管理系统关键技术进行分析和研究很有必要。文章主要从交直流混合微电网能量管理系统架…

浅谈数据治理之道 数据分析(三)

1. 写在前面 1.1前言 在数据治理中,只有通过深入的数据分析,才能挖掘数据的真正价值,否则数据就发挥不了其作用。数据分析是数据治理环节之一,意在通过收集、整理、处理和解释数据,以获取有价值的信息和洞察力的过程…

cephadm安装reef版本ceph集群

环境 操作系统 Rocky Linux 9.2 minimal 三个节点节点名称 ipmipub ipclus ipceph1192.168.255.8192.168.120.10ceph2192.168.255.9192.168.120.20ceph3192.168.255.10192.168.120.30 所有节点 yum -y install dmidecode vim wget lvm2 chrony epel-release yum-utils dev…

LEETCODE 44. 反转字符串

class Solution { public:void swap(int l,int r,vector<char>& s){char tmps[l];s[l]s[r];s[r]tmp;}void reverseString(vector<char>& s) {int left0;int rights.size()-1;while(left<right){swap(left,right,s);left1;right-1;}} };

印度尼西亚国家出口发展局局长一行莅临锐捷网络,共话数字经济未来

第四届中国跨境电商交易会举办期间,印度尼西亚国家出口发展局局长迪迪苏梅迪一行莅临锐捷网络参观交流,宣传推介印度尼西亚市场资源,挖掘中印尼双方企业合作机遇。福州市商务局副局长潘文等领导共同参与活动。锐捷网络副总裁、数据中心事业部总经理林东豪接待。 印度尼西亚国家…

cesium加载.tif格式文件

最近项目中有需要直接加载三方给的后缀名tif格式的文件 <script src"https://cdn.jsdelivr.net/npm/geotiff"></script> 或者 yarn add geotiff npm install geotiff 新建tifs.js import GeoTIFF, { fromBlob, fromUrl, fromArrayBuffer } from geotif…

android——【封装】使用建造者方式封装一个类

前言 在Kotlin中&#xff0c;使用建造者模式来封装一个类有以下几个好处&#xff1a; 简化对象的创建过程&#xff1a;使用建造者模式可以将复杂的对象创建过程分解为多个简单的步骤&#xff0c;使得代码更加清晰易读。通过链式调用&#xff0c;可以按需设置对象的属性&#xf…

HBase的Python API(happybase)操作

一、Windows下安装Python库&#xff1a;happybase pip install happybase -i https://pypi.tuna.tsinghua.edu.cn/simple 二、 开启HBase的Thrift服务 想要使用Python API连接HBase&#xff0c;需要开启HBase的Thrift服务。所以&#xff0c;在Linux服务器上&#xff0c;执行如…

香港高才通计划abc类的申请材料各不同,附官方续签攻略!

香港高才通计划abc类的申请材料各不同&#xff0c;附官方续签攻略&#xff01; 作为香港“史上最快获批签证”&#xff0c;高才通计划受到内地精英的热烈欢迎&#xff0c;香港高才通于2022年12月28日开放申请&#xff0c;截至2023年12月31日&#xff0c;香港高才通计划已接获62…

android 11 SystemUI 状态栏打开之后的界面层级关系说明之一

比如WiFi 图标的父layout为&#xff1a; Class Name: ButtonRelativeLayout Class Name: QSTileView Class Name: TilePage Class Name: PagedTileLayout Class Name: QSPanel Class Name: NonInterceptingScrollView Class Name: QSContainerImpl Class Name: FrameLayout Cl…

37.网络游戏逆向分析与漏洞攻防-游戏网络通信数据解析-解码器细化类的实现

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;36.数据解码器的…

Docker进阶:Docker-compose 实现服务弹性伸缩

Docker进阶&#xff1a;Docker-compose 实现服务弹性伸缩 一、Docker Compose基础概念1.1 Docker Compose简介1.2 Docker Compose文件结构 二、弹性伸缩的原理和实现步骤2.1 弹性伸缩原理2.2 实现步骤 三、技术实践案例3.1 场景描述3.2 配置Docker Compose文件3.3 使用 docker-…

今天起,Windows可以一键召唤GPT-4了

现在&#xff0c;OpenAI 大模型加持的 Copilot 功能终于登陆 Windows 了。 把 Copilot 按钮放在 Windows 桌面的任务栏&#xff0c;甚至实体键盘上&#xff0c;用大模型提升每个人的生产效率。 美东时间 3 月 21 日周四&#xff0c;生成式 AI 领军的微软又为我们带来了一点小…

Web系统开发之——文章管理

原文地址&#xff1a;Web系统开发之——文章管理 - Pleasure的博客 下面是正文内容&#xff1a; 前言 经过一番考量&#xff0c;关于Web应用系统功能部分的开发&#xff0c;决定采取基础的文字文章管理为核心功能。 不再采取前后端分阶段完成的方式&#xff0c;而是以一个一个…