当前位置: 首页 > news >正文

5. Kimball维度建模常用术语及概念(一)

文章目录

      • 维度建模过程相关概念
        • 1. 收集业务需求与数据实现
        • 2. 协作维度建模研讨
        • 3. 四步骤维度设计过程
        • 4. 业务过程
        • 5. 粒度
        • 6. 描述环境的维度
        • 7. 用于度量的事实
        • 8. 维度模型
      • 事实表技术术语
        • 1. 事实表结构
        • 2. 可加、半可加、不可加事实
        • 3. 事实表中的空值
        • 4. 一致性事实
        • 5. 事务事实表
        • 6. 周期快照事实表
        • 7. 累积快照事实表
        • 8. 无事实的事实表
        • 9. 聚集事实表
        • 10. 合并事实表

维度建模过程相关概念

1. 收集业务需求与数据实现

  开始维度建模工作前,项目组需要通过与业务代表交流,理解业务需求(包括关键性能指标、商业问题、决策制定过程等),同时,与源系统专家交流数据实际情况,分析数据访问、及分析可行性。

2. 协作维度建模研讨

  维度模型应该由主题专家与企业数据管理代表合作设计而成。工作由数据建模者负责,但模型应该通过与业务代表开展一系列高级别交互讨论而获得,而不应该由不懂业务需求的人来设计。

3. 四步骤维度设计过程

  维度模型设计期间主要涉及4个主要的决策:
  (1) 选择业务过程;
  (2) 生命粒度;
  (3) 确认维度;
  (4) 确认事实;
  要回答上述问题,需要考虑业务需求以及底层数据源。按照业务过程、粒度、维度、事实声明的流程,确定表明和列名、示例领域值以及业务规则,业务数据管理者必须参与详细的设计活动,以确保涵盖正确的业务。

4. 业务过程

  业务过程是组织完成的操作型活动,多数事实表都会关注某一业务过程的结果。过程的选择是非常重要的,因为它定义了他特定的设计目标以及对粒度、维度、事实的定义。每个业务过程对应企业数据仓库总线矩阵的一行。

5. 粒度

  在选在维度或事实前必须声明粒度,且每个候选维度或事实必须与定义的粒度保持一致。在所有维度设计中强制实行一致性是保证BI应用性能和易用性的关键。
  在从给定的业务过程获取数据时,原子粒度是最低级别的粒度。我们强烈建议从原子粒度的数据开始设计,因为只有原子粒度数据能够承受无法预期的用户查询。

6. 描述环境的维度

  维度提供围绕某一业务过程事件所设计的“谁、什么、何时、何处、为什么、如何”等背景。维度表是数仓的灵魂,因其包含确保DW/BI系统能够被用作业务分析的入口和描述性标识。

7. 用于度量的事实

  事实是来自业务过程事件的度量,基本上都是以数量值表示。一个事实表行与按照事实表粒度描述的度量事件之间存在一对一关系,因此事实表对应一个物理可观察的事件。

8. 维度模型

  维度模型对数据关系发生变化具有灵活的适应性。当发生以下变化时,不需要改变现存的BI查询或应用:
  当事实与存在的事实表粒度一致时,可以创建新列;
  通过建立新的外键列,可以将维度关联到已经存在的事实表上;
  可以在维度表上通过建立新列添加属性;
  可以使事实表的粒度更原子化,方法是在维度表上增加属性,然后以更细的粒度重置事实表;

事实表技术术语

1. 事实表结构

  事实表的设计完全依赖于物理活动,不收可能产生的最终报表的影响。除数字度量外,事实表总是包含外键,用于关联与之相关的维度,也包含可选的退化维度键和时间戳。查询请求的主要目标是基于事实表开展计算和聚集操作。

2. 可加、半可加、不可加事实

  最灵活、最有用的事实是完全可加的,可加事实可以按照与事实表关联的任何维度汇总。
  半可加事实可以对某些维度汇总,但不能对所有维度汇总。“差额”是常见的半可加事实,除了时间维度外,可以跨所有维度进行加法操作。
  最后,一些事实是完全不可加的,例如“比率”。对非可加事实,一种好的方法是,存储非可加事实的完全可加分量,并在计算出最终的非可加事实前,将这些分量汇总到最终的结果集合中。

3. 事实表中的空值

  事实表中可以存在空度量值,然而,事实表中的外键不能存在空值。一旦遇到外键(维度)未知或无法应用的情况,需要用默认值(代理键)而不是空值填充。

4. 一致性事实

  如果需要比较或计算不同事实表中的度量值,则必须保证这些事实表的定义是一致的,如果它们不兼容,则应该有不同的命名用于告诫用户和BI应用。

5. 事务事实表

  事务事实表的一行对应空间或时间上某点的度量事件,仅当存在度量时才会建立行。它总是包含一个与维度表关联的外键,也可能包含精确的时间戳和退化维度键。度量数字事实必须与事务粒度保持一致。

6. 周期快照事实表

  周期快照事实表中的每行汇总了发生在某一标准周期,如某天、周、月的多个度量事件。粒度是周期性的,而不是个体事务。这些事实表的外键是均匀的,即使周期内没有活动发生,也会在事实表中为每个事实插入包含0或空值的行。

7. 累积快照事实表

  累积快照事实表的行汇总了发生在过程开始和结束之间可预测步骤内的度量事件。管道或工作流过程(例如,订单)具有定义的开始点,标准中间过程,定义的结束点,它们在此类事实表中都可以被建模。

8. 无事实的事实表

  无事实事件的存在是为了记录一些列某一时刻发生的多为实体。如,在给定的某天发生的学生参加课程事件,本身没有度量,但记录了事件的多维外键。

9. 聚集事实表

  聚集事实表是对原子粒度事实表数据进行简单的数字化上卷操作,目的是为了提高查询性能。

10. 合并事实表

  通常,来自多个业务过程的,以相同粒度表示的事实可以合并为一个单一的合并事实表,这样做会增加ETL的负担,但降低了BI应用的分析代价。合并事实表特别适合那些经常需要共同分析的多过程度量。

相关文章:

5. Kimball维度建模常用术语及概念(一)

文章目录维度建模过程相关概念1. 收集业务需求与数据实现2. 协作维度建模研讨3. 四步骤维度设计过程4. 业务过程5. 粒度6. 描述环境的维度7. 用于度量的事实8. 维度模型事实表技术术语1. 事实表结构2. 可加、半可加、不可加事实3. 事实表中的空值4. 一致性事实5. 事务事实表6. …...

内核调试之Panic-Oops日志分析

这部分我们接着之前的思考,看看内核异常日志的分析。 1 Panic 调试 2 Oops调试 内核出现Panic或Oops错误,如何分析定位问题原因? 首先,保留现场,如下所示为一次非法虚拟地址访问错误。 EXT4-fs (sdc3): recovery c…...

论文解读 | [AAAI2020] 你所需要的是边界:走向任意形状的文本定位

目录 1、研究背景 2、研究的目的 3、方法论 3.1 Boundary Point Detection Network(BPDN) 3.2 Recognition Network 3.3 Loss Functions 4、实验及结果 论文连接:https://ojs.aaai.org/index.php/AAAI/article/view/6896 1、研究背景 最近,旨在…...

数据挖掘流程简单示例10min

数据挖掘流程简单示例10min 套路: 准备数据实现算法测试算法 任务1:亲和性分析 如果一个顾客买了商品X,那么他们可能愿意买商品Y衡量方法: 支持度support : 所有买X的人数 置信度confidence : 所有买X和Y的人数所有买X的人数…...

KDJB1200六相继电保护测试仪

一、概述 KDJB1200继电保护测试仪是在参照电力部颁发的《微机型继电保护试验装置技术条件(讨论稿)》的基础上,广泛听取用户意见,总结目前国内同类产品优缺点,充分使用现代新的的微电子技术和器件实现的一种新型小型化微机继电保护测试仪。可…...

从WEB到PWA 开发-发布-安装

见意如题!本文主要来说说PWA开发!作为一个前端程序员,在没有任何Android/IOS的开发情况下,想想我们有多少种方法来开发一个原生移动应用程序!我们可以有非原生、混合开发,PWA等等手段。类似uniapp&#xff…...

FPGA纯vhdl实现MIPI CSI2 RX视频解码输出,OV13850采集,提供工程源码和技术支持

目录1、前言2、Xilinx官方主推的MIPI解码方案3、纯Vhdl方案解码MIPI4、vivado工程介绍5、上板调试验证6、福利:工程代码的获取1、前言 FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI协议了,MIPI解码难度之高,令无数英雄竞折腰…...

《NFL橄榄球》:卡罗来纳黑豹·橄榄1号位

卡罗来纳黑豹(英语:Carolina Panthers)是一支位于北卡罗来纳州夏洛特的职业美式橄榄球球队。他们是国家美式橄榄球联合会的南区其中一支球队。他们与杰克逊维尔美洲虎在1995年加入NFL,成为扩充球队。 2018年球队市值为23亿美元&am…...

我说我为什么抽不到SSR,原来是这段代码在作祟...

本文是龚国玮所写,熊哥有所新增修改删减,原文见文末。 我说我为什么抽不到SSR,原来是加权随机算法在作祟 阅读本文需要做好心理准备,建议带着深究到底的决心和毅力进行学习! 灵魂拷问 为什么有 50% 的几率获得金币&a…...

MySQL MGR 集群新增节点

前言 服务器规划现状(CentOS7.x) IP地址主机名部署角色192.168.x.101mysql01mysql192.168.x.102mysql02mysql192.168.x.103mysql03mysql192.168.x.104proxysql01proxysql、keepalived192.168.x.105proxysql02proxysql、keepalived 新增服务器IP&#x…...

【单目标优化算法】蜣螂优化算法(Dung beetle optimizer,DBO)(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

【C++】类和对象入门必知

面向过程和面向对象的初步认识类的引入类的定义类的访问限定符封装类的作用域类的实例化类对象模型this指针C语言和C实现Stack的对比面向过程和面向对象的初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解…...

day38 动态规划 | 509、斐波那契数 70、爬楼梯 746、使用最小花费爬楼梯

题目 509、斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n - 1) F(n - 2),其…...

2023年备考软考必须知道的6件事

不知不觉,距离2023年上半年软考也只有不到100天的时间了,报名入口也将在3月13日正式开通,你是正在犹豫是否参加考试? 还是已经开始着手准备复习? 关于软考考试你还有哪些疑问? 2023年备考软考必须知道的6件事,建议收藏&#xf…...

GLOG如何控制输出的小数点位数

1 问题 在小白的蹩脚翻译演绎型博文《GLOG从入门到入门》中,有位热心读者提问说:在保存日志时,浮点型变量的小数位数如何设置? 首先感谢这位“嘻嘻哈哈的地球人”赏光阅读了小白这不太通顺的博客文章,并提出了一个很…...

2022年全国职业院校技能大赛(中职组)网络安全竞赛试题A(6)

目录 模块A 基础设施设置与安全加固 一、项目和任务描述: 二、服务器环境说明 三、具体任务(每个任务得分以电子答题卡为准) A-1任务一:登录安全加固(Windows) 1.密码策略 a.密码策略必须同时满足大小…...

Safety-Gym环境配置与安

官网: https://github.com/openai/safety-gym https://github.com/openai/safety-starter-agents 一、安装依赖环境配置 建议使用python 3.7及以下环境,因为官方的safety-rl是基于tensorflow1.13.1实现,而tensorflow1.13.1只能支持python…...

3月再不跳槽,就晚了

从时间节点上来看,3月、4月是每年跳槽的黄金季! 以 BAT 为代表的互联网大厂,无论是薪资待遇、还是平台和福利,都一直是求职者眼中的香饽饽,“大厂经历” 在国内就业环境中无异于一块金子招牌。在这金三银四的时间里&a…...

HTTP cookie格式与约束

cookie是前端编程当中经常要使用到的概念,我们可以使用cookie利用浏览器来存放用户的状态信息保存用户做了一些什么事情。session是服务器端维护的状态。session又是如何和cookie关联起来。后面介绍cookie和session的使用。Cookie 是什么?RFC6265, HTTP …...

docker基础

docker基础 docker概述 docker的出现?docker解决思想docker历史docker链接docker能干什么?开发-运维 docker安装 镜像(image)容器(container)仓库(repository)底层原理 docker命令 帮助命令镜像命令 docker-images查看所有本地主机上的镜像docker-searc…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 &#xff08;1&#xff09;输入单引号 &#xff08;2&#xff09;万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...