数据仓库——维度表更新
维度表的更新
维度表修改规律:
- 绝大部分维度表都是不变的
- 很多维度虽然会变化,但是变化的很缓慢
- 源记录产品键不会改变
- 产品描述及其他属性的改变都很缓慢
- 在源OLTP 系统中,新的值会覆盖旧的值
- 在数据仓库中,覆盖维度表的属性并不总是适当的做法
- 修改维度表的方法依赖于变化的属性,以及数据仓库必须保存什么信息
对维度表修改的类型
进入维度表中的信息,在操作系统中仍有可能发生改变,在维度设计方案时,确定数据源的变化情况在维度表中如何表示非常重要,这一想想称为缓慢变化的维度,简称缓慢变化维。
改正错误
修改原则
- 这些修改与改正源系统中的错误有关
- 这种修改在源系统中有时没有影响
- 源系统中旧数值不应保留
- 源系统中修改不需要在数据库中保存
修改方法 - 新的值覆盖维度表中旧数值
- 属性的旧数值不需要保留
- 对维度表没有其他修改
- 维度表中的键或任何其他键值均不受影响
- 这类修改是最容易实施的
保存历史数据
修改原则
- 他们通常与源系统中的修改相关
- 需要在数据仓库中保留历史数据
- 这一类修改将数据仓库的历史分区
- 对同一属性的每一个修改都要保留
修改方法 - 在维度表中增加一条新记录,该记录有修改后的数值
- 维度表中可以包含一个有效的日期字段
- 对维度表中原来数据不做修改
- 原来记录的键不受影响
- 插入新的记录,该记录有一个新的替代键
暂时的修改
几乎所有的对维度表的修改都属于前两类修改,第一类是最常见的,第二类修改保留了历史数据。
修改原则
- 它们通常与源系统的临时修改有关
- 需要利用新旧属性值跟踪历史数据
- 新旧两个值用于比较改变所带来的效果
- 它提供了向前向后追踪的能力
修改方法 - 对受影响的属性,在维度表加入旧的字段
- 将现有的字段赋值给旧的字段
- 将新的值赋值给现有的字段
- 加入一个现有的有效日期
- 记录的键不受影响
- 不需要增加新的维度表记录
- 现有的查询可以无缝转换到现有的值
- 所有使用到旧的值的查询需要做相应的修改
- 只对一次只做一个临时修改更为适用
- 如果还有后续的修改,则需要使用更复杂的技术
对所有的维度属性,选择并文档化适当地缓慢变化的响应方式,如果难以确定,选择变化类型2是最安全的。
应该认识到对缓慢变化的处理对ETL开发人员来说充满艰辛这一事实,无论是复杂性是从处理时间考虑,缓慢变化的需求对加载过程的每个部分都会造成影响,ETL开发人员可能需要面对确定是否所有变化都完全发生的挑战。
时间戳维度
当需要支持对维度值特定时间分析,与事实无关的时采用时间戳维度
时间戳维度允许三种形式的特定时间分析:
- 方便地按照时间顺序对变化的历史情况进行排序
- 快速选择影响特定日期的维度行
- 容易确定当前收到影响的维度行
- 类型2缓慢变化维度保留了属性值的历史,并允许每个事实与正确版本关联,尽管它保存了事实的历史,但却不足以提供对特定时间的分析。
- 通过事实表追踪历史的变化
- 时间戳维度用于追踪维度表自身变化的历史,而不是通过另外的事实表,维度配置额外的列用于为一行获取有效日期和截止日期。额外的列可以追踪变化的原因。
- 如果需要跟踪更细粒度的变化,则可以通过添加列来捕获记录变为生效和截止日期来完成
- 时间戳维度的构建将会给负责加载和维护维度表的开发人员增加额外的负担,当发生类型2变化时,需要识别先前行,并更新时间戳列。
- 对那些表示密切关注的实体的维度表来说,时间戳用来补充类型2变化的追踪,这将获得高效地ETL处理,当未来需要增加额外的事实表时,时间戳会极大地简化加载过程。
- 为每个维度表都构建时间戳没有必要,如果不需要开展时间点分析,就无须增加额外的工作。
- 与其他维度表一样,时间戳维度表能够链接一个事实表用来分析。
混合技术
当需求冲突,需要采用多种响应方式时,采用混合技术。
采用混合技术的原因:
- 类型1和类型2混合
- 不能应用类型3,记得属性的每个版本都不能用来区分变化前后的事实,每个值都能用来研究所有事实,但是没办法区分在单个事务繁盛时那个版本是有效的
通过提供两个不同的维度列,类型1和类型2混合设计可以处理相同来源的属性,一个被指定为类型1属性,用于按照新值对所有的事实进行分组,另一个被指定为类型2属性,用于按照历史值对所有事实进行分组。
只有在存在真实分析需求时才能实施混合变化,操作型报表可以留给操作型系统来做。
凝固属性
分析型需求偶尔需要保护其原始状态,对修改的属性,什么事情也不做。
相关文章:
数据仓库——维度表更新
维度表的更新 维度表修改规律: 绝大部分维度表都是不变的很多维度虽然会变化,但是变化的很缓慢源记录产品键不会改变产品描述及其他属性的改变都很缓慢在源OLTP 系统中,新的值会覆盖旧的值在数据仓库中,覆盖维度表的属性并不总是适当的做法…...
Web3创作整理 - 2024-02-23 ~ 2024-03-25
Web3 创作整理 - 2024-02-23 ~ 2024-03-25 整理下3月份的文章,方便大家阅读 分类文章地址🫑ETH什么是Dapp🎼ETH什么是以太坊🎵ETH如何才能拥有ETH🎶ETHBTC网络 vs ETH网络🎙️ETHETH网络中的区块链…...

CSS(一)---【CSS简介、导入方式、八种选择器、优先级】
零.前言 本系列适用于零基础小白,亦或是初级前端工程师提升使用。 知识点较为详细,如果追求非常详细,请移步官方网站或搬运网站。 1.CSS简介 CSS全称:“Cascading Style Sheets”,中文名:“层叠样式表”…...

智慧公厕解决方案打造更加智能的卫生空间
一、智慧公厕方案概述 智慧公厕方案旨在解决现有公厕存在的诸多问题,包括民众用厕困难、环境卫生状况不佳、管理效率低下等方面。针对民众的需求和管理方面的挑战,智慧公厕提供了一套综合解决方案,包括智能导航、环境监测、资源管理等功能&a…...

美团0316春招笔试题
下面是美团2024-03-16笔试真题,进行了VP,由于未参与评测,故不保证正确性,仅供参考。 第一题 小美点外卖 求和然后减去满减和红包即可。 #include <bits/stdc.h> using namespace std; using LL long long ; int n, t, x,…...

typescript 实现RabbitMQ死信队列和延迟队列 订单10分钟未付归还库存
Manjaro安装RabbitMQ 安装 sudo pacman -S rabbitmq rabbitmqadmin启动管理模块 sudo rabbitmq-plugins enable rabbitmq_managementsudo rabbitmq-server管理界面 http://127.0.0.1:15672/ 默认用户名和密码都是guest。 要使用 rabbitmqctl 命令添加用户并分配权限…...
怎样才能把重建大师的空三导进去CC?
导出空三文件xml两者都是通用的,cc和photoscan都可以兼容。 重建大师是一款专为超大规模实景三维数据生产而设计的集群并行处理软件,输入倾斜照片,激光点云,POS信息及像控点,输出高精度彩色网格模型,可一键…...

命令模式(请求与具体实现解耦)
目录 前言 UML plantuml 类图 实战代码 模板 Command Invoker Receiver Client 前言 命令模式解耦了命令请求者(Invoker)和命令执行者(receiver),使得 Invoker 不再直接引用 receiver,而是依赖于…...
开发一款MMOARPG难度到底有多大
开发一款MMOARPG难度到底有多大 MMORPG游戏开发到底有多难,我们按照过去开发的标准,就比如开发一款传奇,那时候哪会用什么别人的引擎,都是自研,从基础图形API开始。我们不考虑美术和策划,就单指程序&#x…...

RTSP应用:实现视频流的实时推送
在实现实时视频流推送的项目中,RTSP(Real Time Streaming Protocol)协议扮演着核心角色。本文将指导你通过安装FFmpeg软件,下载并编译live555,以及配置ffmpeg进行视频流推送,来实现一个基本的RTSP流媒体服务…...

Java八股文(数据结构)
Java八股文の数据结构 数据结构 数据结构 请解释以下数据结构的概念:链表、栈、队列和树。 链表是一种线性数据结构,由节点组成,每个节点包含了指向下一个节点的指针; 栈是一种后进先出(LIFO)的数据结构&a…...

ActiveMQ Artemis 系列| High Availability 主备模式(消息复制) 版本2.19.1
一、ActiveMQ Artemis 介绍 Apache ActiveMQ Artemis 是一个高性能的开源消息代理,它完全符合 Java Message Service (JMS) 2.0 规范,并支持多种通信协议,包括 AMQP、MQTT、STOMP 和 OpenWire 等。ActiveMQ Artemis 由 Apache Software Foun…...

QGIS插件系列--WhiteBox Tools
WhiteBox Tools(官网机翻): WhiteboxTools是由圭尔夫大学地貌测量和水文地理信息学研究小组(GHRG)开发的高级地理空间软件包和数据分析平台。该项目始于2017年<>月,并在分析能力方面迅速发展。WhiteboxTools的一…...

SpringMVC设置全局异常处理器
文章目录 背景分析使用ControllerAdvice(RestControllerAdvice)ExceptionHandler实现全局异常全局异常处理-多个处理器匹配顺序存在一个类中存在不同的类中 对于过滤器和拦截器中的异常,有两种思路可以考虑 背景 在项目中我们有需求做一个全…...

Acwing_795前缀和 【一维前缀和】+【模板】二维前缀和
Acwing_795前缀和 【一维前缀和】 题目: 代码: #include <bits/stdc.h> #define int long long #define INF 0X3f3f3f3f #define endl \n using namespace std; const int N 100010; int arr[N];int n,m; int l,r; signed main(){std::ios::s…...

docker 部署 gitlab-ce 16.9.1
文章目录 [toc]拉取 gitlab-ce 镜像创建 gitlab-ce 持久化目录启停脚本配置配置 gitlab-ce编辑 gitlab-ce 配置文件重启 gitlab-ce配置 root 密码 设置中文 gitlab/gitlab-ce(需要科学上网) 拉取 gitlab-ce 镜像 docker pull gitlab/gitlab-ce:16.9.1-ce.0查看镜像是不是有 Vo…...
29.Python从入门到精通—Python3 面向对象继承 多继承 方法重写 类属性与方法
29.从入门到精通:Python3 面向对象继承 多继承 方法重写 类属性与方法 继承多继承方法重写类属性与方法 继承 在面向对象编程中,继承是指通过继承现有类的属性和方法来创建新类的过程。新类称为子类(或派生类),现有类…...
jQuery如何获取元素宽高?
在jQuery中,获取元素的宽和高有多种方法,取决于你是否需要包括边框、内边距或其他额外空间。以下是几种常用的方式: 获取元素内容区域的宽和高(不包括边框和内边距): var width $(#yourElement).width(); …...

springdata框架对es集成
什么是spring data框架 Spring Data是一个用于简化数据库、非关系型数据库、索引库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持 map-reduce框架和云计算数据服务。Spring Data可以极大的简化JPA(Elasticsearch…)的…...

jvm(虚拟机)运行时数据区域介绍
Java虚拟机(JVM)运行时数据区域是Java程序在运行过程中使用的内存区域,它主要包括以下几个部分: 程序计数器(Program Counter Register): 程序计数器是一块较小的内存区域,是线程私有…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

理想汽车5月交付40856辆,同比增长16.7%
6月1日,理想汽车官方宣布,5月交付新车40856辆,同比增长16.7%。截至2025年5月31日,理想汽车历史累计交付量为1301531辆。 官方表示,理想L系列智能焕新版在5月正式发布,全系产品力有显著的提升,每…...