缓慢变化维 常用的处理方法

news2024/11/27 14:37:25

什么是缓慢变化维

维度

在数仓中,表往往会被划分成两种类型,一种是 事实表,另一种是维度表,举个例子,比如说:

2024年2月14日,健鑫在12306上买了两张火车票,每张火车票400元,一共花了800元

在这个过程中,可以这样划分:

事实:买火车票、买两张、一张400、一共800;也就是买了多少东西、花了多少钱

维度:2024年2月14日、健鑫、12306、火车票;也就是在哪买的、谁买的,啥时候买的

缓慢变化维

我们会将分析的各种角度存储在维度表当中,但是维度数据是会发生变化的,而且时间跨度非常久

比如部门的变更,一个员工最初是在部门a工作,后面由于一些原因转到了部门b

这是缓慢变化维的一种可能

这种维度变化,业务系统往往不会保存历史数据,但是站在分析的角度上,我们要保留这种变化的痕迹

处理方法

重写

和业务数据保持一致,直接更新到最新的数据

这种方法可以用于以下两种情况:

  1. 必须正确的数据。比如说身份证号,这种数据需要更改只能证明之前数据错了

  2. 不需要考虑历史变化。比如用户更换头像,这种历史头像往往不具备分析价值

优点: 省事(直接update就行了)、节省内存空间(不需要保存历史数据)

缺点: 不保存历史数据

添加新行

如果只需要保存历史数据,可以使用更新时间戳的形式记录新值,也就是拉链表

在这里随便找了一个制作拉链表过程的图片

自然键即指有业务意义的唯一ID,例如数据库ID、表ID、用户ID等。代理键则可以简单理解为该表的自增ID值

在上面图片中ID就是自然键,开始和结束时间就是代理键

维度值更新之后可以根据代理键就可以获取最新或者历史的数据

增加属性

如果分析的场景同时包含旧值和新值,那么前两种方法就不能满足要求

比如部门的名称突然出现变化,但是想暂时保留旧名称用于同比/环比的分析

也就是,通过新名称可以进行分析,同时通过旧名称也可以进行分析,好像什么都没发生过

如果使用第一个方法,只有新值无法满足用旧值进行分析的场景

如果使用第二个方法,旧的事实保存旧的维度,新的事实保存新的维度,满足不了上面任何一个场景

这时可以新增一个字段来保存新值

idnamedept_2023dept_2024
1jx部门a部门aa

总结

本文写了缓慢变化维最常见的处理方法,但是不包含所有的方法,希望可以帮助到你

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

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

相关文章

系统架构26 - 软件架构设计(5)

特定领域软件体系结构 定义不同定义必备特征领域 基本活动领域分析领域设计领域实现 参与人员建立过程 特定领域软件体系结构的主要目的是在一组相关的应用中共享软件体系结构。 定义 DSSA (Domain Specific Software Architecture) 就是在一个特定应用领域中为一组应用提供组…

基于BitVM的乐观 BTC bridge

1. 引言 前序博客: 区块链互操作协议Bitcoin Bridge:治愈还是诅咒?BitVM:Bitcoin的链下合约 基于BitVM的乐观 BTC bridge: Trust-minimized two-way peg 机制 BitVM BTC bridge背后的主要思想是: 为比…

【芯片设计- RTL 数字逻辑设计入门 12 -- verilog 有符号数加减法】

文章目录 多功能数据处理器描述verilog 无符号数与有符号数8d100 8d1558d100 8d1568d100 8d157verilog 代码实现TestBench 代码VCS 仿真结果 多功能数据处理器描述 根据指示信号select的不同,对输入信号a,b实现不同的运算。输入信号a,b为8bit有符号数&#xff1…

ucosIII下创建任务读取DS18B20采集到的温度数据

学习链接:ucosIII下创建任务读取并输出DHT11采集到的温湿度数据 相关代码及事项: 首先,需要添加下面两个文件, 其次,main.c 中如下的代码: #include "led.h" #include "delay.h" #…

CPython:表达式的求值顺序(evaluation order)

相关阅读 Pythonhttps://blog.csdn.net/weixin_45791458/category_12403403.html?spm1001.2014.3001.5482 C中表达式的求值 C语言针对表达式的计算,设置了操作符的优先级和结合性这两个特性,优先级用于解析不同优先级的符号,结合性用于解析…

波奇学Linux:软硬链接

ln指令建立链接 软链接 硬链接 所属者的前的数字表示硬链接数,引用计数,file.txt和soft_link是软链接所以都为2 软链接有独立inode,硬链接没有,所以硬链接不是独立文件,软链接是独立文件,且硬链接的属性会…

大模型Layer normalization知识

Layer Norm 的计算公式 Layer Norm(层归一化)是一种用于神经网络中的归一化技术,用于提高模型的训练效果和泛化能力。 RMS Norm 的计算公式 RMS Norm 的作用是通过计算输入 X 的均方根,将每个样本的特征进行归一化,使…

【51单片机】LCD1602(江科大)

1.LCD1602介绍 LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符,还可以有8个自定义字符 显示容量:162个字符,每个字符为5*7点阵 2.引脚及应用电路 3.内部结构框图 屏幕: 字模库:类似于数码管的数…

基于 Python 的大数据的电信反诈骗系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

C++:继承与派生基础

引入: 由自然界的动物繁衍的规律(eg: 动物继承父类的一切属性,由父类派生并增加自己的新特征)我们引入C语言在类的使用中描述此类问题。 为解决代码重复使用、提升效率,引入继承机制:允许保留原有类的特性…

STM32 寄存器操作 systick 滴答定时器 与中断

一、什么是 SysTick SysTick—系统定时器是属于CM3内核中的一个外设,内嵌在NVIC中。系统定时器是一个24bit的向下递减的计数器, 计数器每计数一次的时间为1/SYSCLK,一般我们设置系统时钟SYSCLK等于72M。当重装载数值寄存器的值递减到0的时候…

Java:什么是多态,重载与重写?重载与重写有何不同?(带图详解)

目录 一、什么是多态 1、多态的概念 2、多态实现的条件 3、多态的优缺点 二、什么是重写 1、重写的概念 2、方法重写的规则 三、什么是重载 四、重写与重载的不同 一、什么是多态 1、多态的概念 多态通俗来说就是多种形态,具体点就是去完成某个行为&#x…

flask+python儿童福利院管理系统pycharm毕业设计项目

本系统解决了儿童福利院管理事务中的主要问题,包括首页、个人中心、爱心人士管理、员工管理、后勤人员管理、儿童信息管理、院所风采管理、活动管理、食谱管理、领养流程管理、政策法规管理、楼栋管理、宿舍管理、领养申请管理、义工申请管理、捐赠信息管理、宿舍物…

vue3中Pinia

一、pinia的简单使用 vuex和pinia的区别 参考网址:[Vuex] Vuex 5 by kiaking Pull Request #271 vuejs/rfcs GitHub 1.pinia没有mutations,只有:state、getters、actions 2.pinia分模块不需要models(之前vuex分模块需要models…

C++-带你深度理解string类的常见接口

1. 为什么学习string类? C语言中,字符串是以\0结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需…

幻兽帕鲁开服教程:零基础服务器搭建超简单!

幻兽帕鲁官方服务器不稳定?自己搭建幻兽帕鲁服务器,低延迟、稳定不卡,目前阿里云和腾讯云均推出幻兽帕鲁专用服务器,腾讯云直接提供幻兽帕鲁镜像系统,阿里云通过计算巢服务,均可以一键部署,鼠标…

加固平板电脑丨三防智能平板丨工业加固平板丨智能城市管理

随着智能城市的不断发展,人们对于城市管理的要求也在不断提高,这就需要高效、智能的城市管理平台来实现。而三防平板就是一款可以满足这一需求的智能设备。 三防平板是一种集防水、防尘、防摔于一体的智能平板电脑,它可以在复杂的环境下稳定运…

点云旋转(基于PCL)

实现代码为&#xff1a; //以中心化点进行旋转double theta atan(maindirection.a);//计算的是弧度单位for (int i 0; i < origipts.size(); i){pcl::PointXYZ tempone;tempone.x aftercenerlizepts[i].x*cos(theta) aftercenerlizepts[i].y*sin(theta) center.x;temp…

【网工】华为设备命令学习(综合实验一)

实验要求和实验成果如图所示。 LSW2不需要其他配置&#xff0c;其下就一台设备&#xff0c;不需要区分。 LSW3配置如下&#xff1a; <Huawei>sy Enter system view, return user view with CtrlZ. [Huawei]un in en //关闭系统提示信息 Info: Information …

四、OpenAI之文本生成模型(Text Generation)

文本生成模型 OpenAI的文本生成模型(也叫做生成预训练的转换器(Generative pre-trained transformers)或大语言模型)已经被训练成可以理解自然语言、代码和图片的模型。模型提供文本的输出作为输入的响应。对这些模型的输入内容也被称作“提示词”。设计提示词的本质是你如何对…