数据仓库——事实表

数据仓库基础笔记思维导图已经整理完毕,完整连接为:
数据仓库基础知识笔记思维导图

事实表

事务事实表

  • 事务事实表用于跟踪事件,通过存储事实和与之关联的维度细节,允许单独或聚集地研究行为。
  • 粒度
  • 稀疏性
  • 包含可加事实

无事实的事实表

不包含事实的事实表被称作无事实的事实表。虽然没有明确地记录事实,但是却能够支持度量。

  • 为事件而设的无事实的事实表,记录活动的发生,虽然没有事实被明确地存储,但是这些事件能够被计算出来,产生有意义的过程度量
  • 为条件而设的无事实的事实表,用来捕获有意义的信息,这些信息并不是商业活动的一部分,条件在事件点上的不同维度关联,当与活动进行比较时,可以提供有价值的见解
    没有相关事实的活动能够放在无事实的事实表中进行跟踪,每一行是描述事件维度的外键集合。行的存在构成了度量。

无事实的事实表的使用

无事实的事实表中的事件能够通过计算行数来聚集,事实表中的任何列也都可以作为计数的基准

添加事实

当无事实的事实表在追踪事件时,可以通过增加特殊事实使类似于标准事实表。该事实表总是包含值。即使是多余的,增加的列将会使读写用于分析的sql更加容易。
无事实的设计通常会成为对持续时间和开销的度量。

条件、范围或资格

无事实的事实表也可以用在不清楚对应事件活动的情况下,这些例子都描述了条件、范围或资格。它们通常不被认为是事务或者活动。它们可以按照对活动处理的方法进行建模,使用事实表。描述条件的事实通常是无事实的。

对条件建模的原因

事实表获取维度之间的关系。事实表是海量的交叉表,在特定的环境下每行关联多个维度表的实例。处于时间点的条件也关联特定环境下的维度。条件表示没有被业务活动获取的维度之间的关系。对活动研究可以通过列出条件来着色。

用于条件的无事实的事实表

可以使用无事实的事实表对条件建模。星型模式与维度关联起来,共同表示特定时间点的条件或者针对一段时间。条件、覆盖和资格应该被建模为无事实的事实表。
比较行为和条件

缓慢变化维度和条件

当使用星型模式度量条件时,维度中的类型2缓慢变化将需要添加新的事实表行。
性能是维度设计的指导性原则。通过加载过程中而不是在查询中重构数据,对油管业务过程的分析问题回答将更加便捷。然而,有时更快捷仍然不够充分。尽管设计良好的模式能够以更合理的方式处理过程的复杂查询。随着数据集的不断增大,即时简单的查询,也可能呈现出性能低下的问题。导出模式用来存储对已有已存在的维度数据重构后的数据副本。重构后的数据结构可以改善查询性能并降低报表开发的复杂度。同样,性能的改善是以额外地加载和管理数据的工作为代价。

导出模式的开销

导出模式是要付出代价的,这种好处的获得是通过将查询和报表阶段的工作负担转嫁到ETL阶段实现的。这与数据仓库的总体目标是一致的。但必须将其作为设计决策加以考虑。导出模式也会对可用性产生影响。任何打算开发查询或者报表的人员都必须为完成任务选择适当的星型模式。

  • 事务事实表跟踪定义业务过程的个体行为,并且支持几种描述这种行为事实。可以提供丰富的分析型能力,时常充当原子数据的粒度化仓库
  • 快照事实表周期性地采样状态度量,这些度量与一系列事务的累积效果相当,但是这些事务的格式不易进行研
  • 累积快照事实表用来跟踪通过一系列处理步骤的个体项的进展情况,用于研究多数过程中里程碑或者事件的经过时间。这种事实表在单一行中关联多个不同的行为。

事实表快照

状态度量: 度量一系列事务的效果称为状态度量,当状态度量很重要时,事务事实表是无效率的。
状态度量,通常可以从事务历史中构造出来,然而如果事务历史延伸到很远的过去,或者必须计算许多事务的状态,监控状态将是低效的办法。
无法使用事务事实表分析的原因:

  • 事务设计不符合标准
  • 有时不存储事务数据
  • 不要为挨个事务存储状态度量

快照模型

周期性事表快照简称事实表快照。事实表快照在确定的时间间隔中对问题的度量进行抽样,这样就可以容易地研究问题的度量值,而不需要聚集长期的事务历史。

事务事实表快照事实表
粒度可以以多种方式表达粒度通常以维度形式声明
事务事实表是稀疏的快照事实表是稠密的
事实是完全可加的事实包含至少一个用来展示半可加性质的事实
  • 用快照采用状态,快照事实表以预定的采用间隔采样状态度量。这种间隔联合一个或者多个维度,将被用来定义快照事实表的粒度。每行将包含记录所涉及状态的事实
  • 快照粒度,快照的粒度必须包括采样状态的周期以及将被采样的定义,通常在维度关系中指明
  • 稠密的,在快照中,不论是否存在活动,行都被记录,如果不这样做,确定状态将变得非常困难。快照事实表是稠密的,每个周期的信息被记录并与粒度声明一致,而不论是否发生任何行为
  • 半可加性。快照事实表中手机的状态度量通常是半可加的,半可加事实能够用其他方法按照周期来汇总,包括计算最小值、最大值和平均值等
  • 事务和快照模型能够很好的相互补充,如果都被建立起来,可以使用事务星型模式作为快照的数据源
  • 周期性快照不限制存储度量状态的事实。
  • 周期到日期度量,周期到日期度量通常不是存储在事务事实表中,快照事实表是周期到日期独恋在逻辑上存储的地方。
  • 指定周期维度,对于周期快照,考虑表示被汇总周期的时间维度,而不是使用表示周期结束日的日维度。
  • 快照与缓慢变化。周期快照仅仅为定义粒度的维度的每个自然键组合记录一行

累积快照事实表

累积快照事实表用来跟踪通过一系列处理步骤的个体项的进展情况,用于研究多数过程中里程碑或者事件的经过时间。这种事实表在单一行中关联多个不同的行为。
许多业务流程可以描述成一系列必经的阶段、步骤或状态。过程的效率往往是通过完成一个或者多个步骤所花费的时间来度量的。
间隔时间的研究要求关联多个状态,在事务模型中,每个状态变化都将记录在事实表的不同行中。但是事件彼此存在关联时就不起作用了。
事务模型存在的问题:

  • 过程有效性的关键度量之一,是花费在过程中的每个步骤上的总的时间。事务模型查询编写困难,并且性能低下
  • 开始与结束日期不是答案,当研究不同阶段或者不同里程碑花费时间时,描述处理步骤的事务模型是存在问题的。
    累积快照设计的粒度是依照在业务流程中可识别的实体来构造的。
  • 粒度,为了设计累积快照,必须可以区分被处理或者跟踪实体的唯一实例,对于考虑的实体的每个实例,都将定义一行粒度。累积快照的行在被插入后将定期更新。
  • 里程碑的完成日期,快照记录了每个被监视的处理阶段的完成日期。
  • 每个阶段间隔时间的事实,累积快照中的每一行都包含一组事实,从来度量每个阶段花费的天数。
  • 行的生命周期,累积快照事实表将会定期更新行,处理间隔时间的事实将随着日期增长,每当实现一个新状态时,将会涉及里程碑日期。
  • 使用累积快照,对研究花费在任何过程或者任何阶段的组合来讲,累积快照都是一种有效且强大的工具。
  • 累积快照不能替代事务模型,许多情况下,两者能够互为补充。
  • 关注关键状态里程碑,累积快照不必跟踪操作型系统中每个记录的状态变化,可以设计成通过业务来追踪关键里程碑或汇总级别的状态。
  • 多源过程信息,某些情况下,有关业务过程信息不可能在一个地方获得。可能给架构设计者和ETL开发人员带来额外挑战。
  • 非线性过程,许多业务过程是非线性或不可预见的,与采用标准严格的里程碑集合过程不同,这种过程可以包含可选的、交替的或者重复的步骤。这些情况不会妨碍累积快照的使用,但是在使用时需要在架构设计过程中附加严格的评估方法。不按照固定的可预见的里程碑处理过程仍然可以使用累积快照进行跟踪。需要谨慎定义在任何给定时间增长的事实的规则。如果一个特定状态完成了多次,那就需要确定使用哪个日期,这些选择应该由商业用户决定,而不是由设计者或开发人员确定。
  • 缓慢变化,当由累积快照定义维度表示的事务发生类型2变化时,在维度表中关于该事务有两行,最近运行的代理键应该用于事实表中,不要使用自然键,因为这将导致双重计算。

融合事实表

消除了使用多步横向钻取过程的需要。

融合事实表将一个或者多个星型模式中的事实合并为单一的事实表,产生的星型模式可以用于横向钻取。开展过程比较工作。采用融合事实表表时,不再需要进行横向钻取。除了简化查询,融合事实表还可以极大地改善性能。

通过预先计算横向钻取活动,融合事实表从多个事实表中合并事实,这使得跨过程分析的查询更容易编写并且能提高心性能。如果使用的报表工具不支持横向钻取,可以采用融合事实表取代报表工具进行比较工作。

融合星型模式并不总是能够包含最细粒度的数据,融合事实表包含来自多个过程的信息,因此会记录0值事实。

当需要比较两个或者多个星型模式时,通常需要使用一个不可共享的维度来对某个星型模式进行行过滤,在设计融合事实表以支持这类比较时,需要确定如何将维度合并起来。它可能被融合的星型模式忽略,这会使分析能力受限。这需要将每个查询限制在涉及问题的维度上。消除这列问题的方法是,在融合事实表中包含不可共享的维度。针对融合事实表的查询必须始终限定维度设计于单一值,从而避免发生双重计算。

旋转事实表

消除了建立报表时所需要的行列转换。

来自原始事实表中的数据将从行的方式转换为列的方式,或者以列的方式转换为行方式。可以简化某些形式的报表。性能可以得到一定的改善。因此旋转事实表通常能够包含大量宝博鳌的应用使用,这将会显著减少报表的开发时间。

通过旋转模式可以将行数据转换为列数据,或者打到相反的效果。这么做能够减少查询和报表过程的复杂性。如果需要转换的类型非常多,转换模式将具有非常显著的价值。

切片事实表

切片事实表与原始的星型模式几乎一样,只是他包含的行仅仅为原始星型模式的一致子集。切片事实表在不牺牲细节的情况下限制了数据集合的范围,因此可以将他们方便地分布到不同的物理区域中,这可以确保对移动应用的部署,有助于增强对安全性方面的需求,并能够以方便管理的容量建立多维数据集。

切片事实表为强化安全性方面的需求提供了一种方便的机制,对切片的访问将按照用户的需求授权给他们,确保个人仅仅能因访问工作而需要适当的数据子集,表级别的访问通常比用于原始模式的基于行的安全模式更容易配置和管理。

切片事实表步骤

切片事实表不一定总是从整体导出,也可能通过合并所有的切片来构建。

  1. 处理公共维度表
  2. 处理事实表切片
  3. 从切片中导出合并事实表

集合操作事实表

消除了使用子查询或者使用SQL集合操作的需要

将连个星型模式作为输入,产生的输出将基于集合操作的应用,建立的星型模式能提供比原始模式更好的性能,同时避免在查询时使用集合操作。

集合操作事实表利用集合操作或子查询预先计算出两个数据集的比较结果,将结果存储在新事实表中,极大地简化了对查询或报表需要做的处理工作。

集合操作的应用并不是能够获得有用的结果,如果不能用业务术语清楚地定义,集合就不能支持相关分析,因此从业务角度来看是没有用的。预先计算集合操作的结果主要用于交际和减操作,并且几乎总是涉及覆盖表,使用导出表来获得集合操作的结果,需要从报表开发或执行时间与对ETL的负担中权衡利弊,如果并不经常使用,可能在建立报表时加算他们会更有意义。另一方面,如果20%的报表关注子集合,可能采用预先计算的方法更为有利,要么使用导出星型模式,要么使用多维数据集。

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

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

相关文章

【Django开发】0到1美多商城项目md教程第4篇:图形验证码,1. 图形验证码接口设计【附代码文档】

美多商城完整教程(附代码资料)主要内容讲述:欢迎来到美多商城!,项目准备。展示用户注册页面,创建用户模块子应用。用户注册业务实现,用户注册前端逻辑。图形验证码,图形验证码接口设…

Java基础知识总结(32)

反射 类加载器 当JVM启动时,会形成由3个类加载器组成的初始类加载器层次结构。 Bootstrap ClassLoader:根类加载器。它负责加载Java的核心类。 Extension ClassLoader:扩展类加载器。它负责加载 JRE 的扩展目录(%JAVA_HOME%/jr…

网安基础2-Sniffer的使用与防范

1. 嗅探器sniffer的工作原理 能捕获经过该网络设备的报文,通过分析网络流量,找出关键信息,解决网络问题。 不同于键盘捕获程序,如keylogger利用中断或钩子技术,Sniffer将网络接口置成适当的模式,如杂收。…

【小黑送书—第十八期】>>让工作自动化起来!无所不能的Python(文末送书)

随着我国企业数字化和信息化的深入,企业对办公自动化的效率和灵活性要求越来越高。Python作为一种开源的软件应用开发方式,通过提供强大丰富的库文件包,极大地简化了应用开发过程,降低了技术门槛。Python开发有哪些优势、挑战以及…

搭建vite+vue3项目时遇到的问题

搭建项目(vitevue3) 第一步:先安装开发工具 下载node.js https://nodejs.cn/download/ node自带npm 可通过npm -v /node -v查看npm和node是否安装成功以及版本号 以及查看vue/cli是否安装 第二步:创建项目(使用vite) 下载vite: npm install -g create-vite 创建项目:create-v…

产品经理的进阶之路

点击下载《产品经理的进阶之路》 1. 前言 本文深入剖析了产品经理这一职业从产品专员起步,逐步晋升为产品经理、高级产品经理,直至产品总监的整个职业发展路径。在每个阶段,产品经理都需承担不同的工作职责,展现出独特的职业特点。 2. 产品专员 关键词【产品需求/原型/文…

栈和队列相关

栈的顺序存储结构 #define maxsize 50 typedef int ElemType; typedef struct {ElemType data[maxsize];int top; }SqStack; 顺序栈的基本算法 初始化栈 void InitStack(SqStack *s){s.top-1;return; } 判断栈空 bool IsEmptyStack(SqStack *s){if(s.top-1){return true;…

广度优先搜索(BFS)算法详解

文章目录 广度优先搜索(BFS)算法详解与C实现BFS的工作原理BFS的实现C中BFS的实现 BFS的应用场景注意事项 广度优先搜索(BFS)算法详解与C实现 广度优先搜索(Breadth-First Search,BFS)是一种遍历…

《QDebug 2024年3月》

一、Qt Widgets 问题交流 1. 二、Qt Quick 问题交流 1.Qt5 ApplicationWindow 不能使用父组件 Window 的 transientParent 属性 ApplicationWindow 使用 transientParent 报错: "ApplicationWindow.transientParent" is not available due to compone…

集合框架——Map

双列集合 特点: 双列集合一次需要存一对数据,分别为键和值键不能重复,值可以重复键和值是一一对应的,每个键只能找到自己对应的值键值这个整体 称为:键值对 键值对对象 Entry对象 Map集合的常用方法 public class …

ssm框架配置文件例子

emmm。。。。 就是说&#xff0c;正常ssm的配置文件长啥样&#xff1f; 就最基础的&#xff1f; 贴一下&#xff0c;备忘吧。 第一个&#xff1a;applicationContext.xml <beans xmlns"http://www.springframework.org/schema/beans"xmlns:context"http…

软考 - 系统架构设计师 - 敏捷开发方法

前言 敏捷开发方法是一种以人为核心、迭代、循序渐进的软件开发方法。它强调团队合作、客户需求和适应变化&#xff0c;旨在通过快速迭代和反馈来快速交付高质量的软件产品。 敏捷开发方法的优势在于能够快速响应变化、提高开发效率和质量、增强团队协作和沟通&#xff0c;并降…

Python程序设计 多重循环

教学案例六 多重循环 1.n之内的素数 输入n&#xff0c;显示n之内的所有素数 每行显示10个素数 例如&#xff0c;若输入500&#xff0c;结果如图所示 neval(input()) #代码开始 c 0for i in range(2, n1):for j in range(2, i):if i % j 0:breakelse:c 1print("{:5d}…

四年旅程,一路成长——小雨的创作纪念日

四年旅程&#xff0c;一路成长——小雨的创作纪念日 收到来信&#xff0c;回顾与再开始回首起点&#xff0c;初探技术世界持续前行&#xff0c;从坚持到自信今日之感&#xff0c;持续分享与感恩【3.19故事对话】我一定可以&#xff01;“新”认知状态变化感受复盘 朝着未来&…

Kubernetes(K8s)技术解析

1. K8s简介 Kubernetes&#xff08;简称K8s&#xff09;是一个开源的容器编排平台&#xff0c;旨在简化容器化应用程序的部署、扩展和管理。为开发者和运维人员提供了丰富的功能和灵活的解决方案&#xff0c;帮助他们更轻松地构建、部署和管理云原生应用程序。以下是关于Kubern…

C# OpenCvSharp-HoughCircles(霍夫圆检测) 简单计数

目录 效果 项目 代码 下载 效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using O…

http模块 服务器端如何响应(获取)静态资源?

一、静态资源与动态资源介绍&#xff1a; &#xff08;1&#xff09;静态资源 内容长时间不改变的资源。eg&#xff1a;图片、视频、css js html文件、字体文件... &#xff08;2&#xff09;动态资源 内容经常更新的资源。eg&#xff1a;百度首页、淘宝搜索列表... 二、服…

vue3从精通到入门7:ref系列

Vue 3 的 Ref 是一个集合&#xff0c;包括多个与响应式引用相关的功能&#xff0c;这些功能共同构成了 Vue 3 响应式系统的重要组成部分。以下是更全面的介绍&#xff1a; 1.ref ref 接受一个内部值并返回一个响应式且可变的 ref 对象。这个对象具有一个 .value 属性&#xf…

每天学习一个Linux命令之uniq

每天学习一个Linux命令之uniq 介绍 在Linux操作系统中&#xff0c;有许多强大的命令可以帮助我们提高工作效率。本篇博客将详细介绍一个非常有用的命令&#xff1a;uniq。uniq命令用于从已排序的文件或标准输入中删除重复的行&#xff0c;并将结果输出到标准输出中。 命令格…

【小熊猫 ide】更新支持mingw 支持c++20

没有format 头文件 GCC版本对C++的支持情况即使我使用11,也没有format 头文件小熊猫 ide https://wwe.lanzoui.com/b01os0mwd最新11可以自己更新https://royqh1979.gitee.io/redpandacpp/docsy/docs/gcc13 才支持format [7GCC 13 has added support for std::format.](https:/…