[原创]微软BI专题-渐变维度Type2进化三部曲

【信息科学与工程学】【通信工程】第十八篇 企业网、园区网、数据中心、广域网各类业务网络02 模型类别基本假设网络表示耦合函数渗透方程临界条件物理意义一对一依赖​每个交通节点与一个通信节点相互依赖双层网络:交通层G_T=(V_T,E_T),通信层G_C=(V_C,E_C),层间一一对应边E_I依赖函数:RT​=fT​(RC​,p),RC​=fC​(RT​,p)自洽方程: RT​=p[1−GT​0(1−RT​)][1−GC​0(1−RC​)] RC​=p[1−GC​0(1−RC​)][1−GT​0(1−RT​)]pc​=⟨kT2​⟩⟨kC2​⟩​1​ ⟨k²⟩=⟨k(k-1)⟩对称耦 阅读详情
  在ETL过程中,对于渐变维度的处理,一直是大家比较关注的问题。关于渐变维度的概念,我们在2007年8月的“渐变维度转换及其实现”一文中有所介绍。本文将在实际应用的对比中,提供三种处理渐变维度的方法,并比较其效率。

      第一代:SSIS控件时代
      对于一些会在原业务系统中进行修改/添加维度,不需要记录记录历史属性的维度,我们通常会选择SSIS中控件“渐变维度”来完成这项工作。应对这种情况我们选用Type2。

Type2:变化的属性
说明:如果更改后的值应当覆盖现有值,则选择该类型。
解析:既需要更改又不用记录历史属性的类型。

 

      选择好数据源,设置好“业务键”和“非键列”之后(如图1),我们再对需要进行更新的“非键列”设置“更改类型”即可,如图2。

 
图1

 
图2

之后SSIS会帮我们生成数据流。简单快捷,3分钟完成一张表格,如图3。

 
图3

      第二代:SQL语句时代
      但是,对于稍微大一些的数据量,源1万条,目标几万条的时候就会非常的慢。对于这种情况,我们可以采用自己手写渐变维度的方式完成。需要分为两部分——更新原有数据和添加新增数据。如表1、表2所示。


表1


表2

1、更新原有数据
使用控件“执行SQL任务”。直接实行SQL语句:

以下是代码片段:

Update Dim_Team set Team_DisplayName = ss. Team_DisplayName

, Sort_ID = ss. Sort_ID

From Dim_Team dim inner join SS_Team ss

  On ss. Team_InternalName = dim. Team_InternalName

 

2、添加新增数据
使用控件“数据流任务”。数据源使用如下语句:

以下是代码片段:

Select Team_InternalName , Team_DisplayName , Sort_ID

  from SS_Team

 Where Team_InternalName not in (

select distinct Team_InternalName from Dim_Team )

 

然后将结果输入到Dim_Team即可。
插曲:有的表格业务建不止一个,并且not in的效率也不够高,所以采用not exists
则使用如下语句作为数据源:

以下是代码片段:

Select Team_InternalName , Team_DisplayName , Sort_ID ,a

from SS_Team ss

Where not exists ( select distinct Team_InternalName

 

      第三代:Lookup时代
      虽然上述语句可以高效地完成渐变维度Type2的运行,但是在实际运行中,发现由于目标表被用在了数据源表中,导致数据流产生了死锁。
解决方法1:在目标表中去掉表锁。选择“数据访问模式”为“表或试图-快速加载”,将“检查约束”钩选去掉,如图4。

 
图4

解决方法2:利用lookup的错误输出,如图5。


图5

SS_Dimteam:

以下是代码片段:

Select Team_InternalName , Team_DisplayName , Sort_ID

from SS_Team

Lookup:

以下是代码片段:

__select distinct  Team_InternalName from Dim_Team


设置Lookup错误输出为重新定向,如图6。


图6

输入目标:Dim_Team
至此,完成了渐变维度Type2的“进化”。效率也提高了不少。

立创开源Link Hub多功能USB扩展坞:CH339F主控+4层板设计,实测网口/存储性能 本文深度评测了立创开源Link Hub多功能USB扩展坞,其采用CH339F主控芯片与4层PCB板设计,并严格进行阻抗匹配。实测表明,该扩展坞的USB接口与microSD读卡器性能均接近USB 2.0理论极限,百兆以太网口转换效率高,性能损失极小。设计上注重电源保护与信号完整性,是一个兼顾稳定性与成本的高完成度开源硬件项目。 阅读详情

相关推荐

PyQt5混搭qfluentwidgets实战:用FramelessWindow快速打造现代化界面

本文详细介绍了如何将PyQt5与qfluentwidgets组件库结合,利用FramelessWindow快速打造现代化无边框界面。通过环境配置、核心特性解析、组件混用技巧及高级样式定制,帮助开发者提升桌面应用的用户体验和美观度,特别适合需要现代UI设计的Python开发者。

sugar的博客 969

数据仓库基本概念-缓慢变化维

1.1     缓慢变化维 1.1.1      概念 维度建模的数据仓库中,有一个概念叫Slowly Changing Dimensions,中文一般翻译成“缓慢变化维”,经常被简写为SCD。缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流失发生缓慢的变化。这种随时间发生变化的维度我们一般称之为缓慢变化维,并且把处理维度表的历史变化信息的问题称为处理缓慢变化维的问

1200

ThingsBoard入门实战(二):ThingsBoard 设备接入

文章目录ThingsBoard 设备接入一、设备配置/设备类型二、设备三、设备接入HTTPCOAPMQTT四、下一步 ThingsBoard 设备接入 设备接入并不一定需要真正的设备,我们可以通过程序。或者命令来模拟设备,向平台发送信息。 这节我们先为用户分配一个设备,然后通过模拟设备命令更新设备的状态(遥测值)。 一、设备配置/设备类型 添加一个叫"路灯"的设备配置。 设备配置听起来比较抽象,可以认为是设备类型或者是设备类型的配置。实际上,ThingsBoard 中很多时候让选择设备类型,就是选的这个。

AIGC搞起 1万+

什么是SCD?

渐变维度什么是渐变维度?渐变维度 (SCD) 是在数据仓库中随着时间的推移存储和管理当前数据和历史数据的维。它被视为并实现为跟踪维记录历史过程中最关键的 ETL 任务之一。SCD 分为三种类型,您可以使用 Warehouse Builder 定义、部署并加载这三种类型的 SCD。SCD 分为哪三种类型?SCD 的三种类型分别为:Type 1 SCD — 覆盖在 Type

RainyLin-SunnyLin的专栏 7763

android广告SDK原理详解(附源码)

广大的开发者吃糠咽菜开发了一两款APP,获取了一些流量后自然就会想到流量变现,一般情况下大家会选择到百度联盟或者Google Admob这些广告服务提供商注册开发者账号,在自己的APP里面加上几行广告位代码,集成他们的广告SDK包。然后谋事在人,成事在天,只有每天看报表查查收益。   也有一些开发者为了能够提高自己的变现水平,同时接入了好几家的sdk,哪家出的收益高一点我就出哪家的广告,但是这

rmcgogo的博客 1万+

【Neo4j × Python】基于知识图谱的电影问答系统(含问题记录与解决)附:源代码(含Bug解决)

此前,曾介绍过Neo4j的一些基础知识,本篇将在PyCharm中与Neo4j建立关联,从0到1实现一个基于知识图谱的电影问答系统,实现过程中,没有一帆风顺,而是遇到了一些问题,因此也包含问题的记录与解决。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 3165

[分享]微软BI专题-渐变维度转换及其实现

 在SQL Server 2005中,BI(Business Intelligence,商业智能)模块功能得以大大的增强。其中有一个重要的模块,被称为SQL Server Integrated Services(SSIS),即SQL Server数据库集成服务,其主要作用是对业务数据库或OLTP数据库中的数据进行抽取、转换和加载(Extract-Transform- Load,ETL)到数据仓库(

jackfor001的专栏 1548

YOLOv11增量学习数据回放优化:解决新类别引入时的灾难性遗忘问题

本文提出了一种基于生成式潜在回放和提示学习的YOLOv11增量学习系统,旨在解决目标检测中的灾难性遗忘问题。系统采用改进的YOLOv11骨干网络,结合条件变分自编码器生成旧类别特征,并通过渐进式提示调优模块实现高效参数更新。关键技术包括:1) C3k2模块和C2PSA注意力增强特征提取;2) CLIP引导的VAE潜在空间数据回放;3) 类特定与超类别提示相结合的增量调优策略;4) 自适应特征金字塔与显式视觉中心融合机制。实验表明,该方法在保持原有检测性能的同时,显著降低了增量学习过程中的遗忘现象。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 2101

数据仓库_数据仓库_缓慢渐变维度实现的几种思路

数仓缓慢渐变维度表设计 缓慢渐变维度: 维度数据会随着时间发生变化,变化速度比较缓慢,这种维度数据通常称作缓慢渐变维; 由于数据仓库需要追溯历史变化,尤其是一些重要的数据,所以历史状态也需要采用一定的措施进行保存。 大致分为以下几种实现思路 1) 全量快照: 每天保存当前数据的全量快照数据,该方案适合数据量较小的维度,使用简单的方式保存历史状态。 ...

迎难而上 1555

2023 ICRA《Visual Language Maps for Robot Navigation》阅读笔记

视觉语言导航可以使用预先训练的现有的视觉语言模型来将图像与对象目标的自然语言描述相匹配,但它与绘制环境的过程仍然脱节,缺乏经典几何地图的空间精度。为了解决这个问题,我们提出了VLMaps,这是一种空间地图表示,它将预训练的视觉语言特征与物理世界的3D重建直接融合在一起。VLMaps可以使用标准探索方法从机器人上的视频馈送中自主构建,并在没有额外标记数据的情况下实现地图的自然语言索引。具体来说,当与大型语言模型(LLM)相结合时,VLMaps可以用于。

qq_44100524的博客 1990

Allegro如何设置走线自动删除重复走线操作指导

Allegro如何设置走线是自动删除重复走线操作指导在PCB布线的时候,点到点需要重复走一段线的时候,希望原来的线段自动被删除,Allegro设计的时候支持这个操作如下图,重复走中间的线段的时候,希望下方的走线自动删除具体操作如下This section is describe what the function allegro have ,helpfully could let user know more about allegroAllegro Design and Analysis includes

weixin_54787054的博客 4498

数据仓库实践杂谈(十六)——渐变维

渐变维也叫缓慢渐变维度。这个概念提出来,其实也就直接意味着,我们分析的角度并不是一成不变,而是会变化的。前面谈增量/拉链的时候,更多讨论“事实”数据的变化。业务每天都在发生这个是必然的。但对应的分析维度也一定会变化。

cfy_fantasyxx的博客 2538

r3live 使用前提 雷达-相机外参标定 livox_camera_lidar_calibration

港科大livox_camera_calib虽然操作方便,但是使用mid360雷达会有视角问题(投影三维点到相机),尝试了很多场景,标定效果都不理想(推荐场景是楼梯间),看来港大的更适合avia之类窄角度的雷达。如果标定效果不好的话,就使用 getExt2节点,getExt1节点只优化外参,而getExt2节点在计算的时候会将一开始计算的内参作为初值和外参一起优化。一般使用getExt1节点即可,如果在外参初值验证过,并且异常值已经剔除后,优化还是有较大的残差,那么可以使用getExt2试一试。

z1872385的博客 2399

斜率图实战指南:用两点连线讲清业务变化

斜率图是一种专用于表达两个时间点或状态间变化关系的基础可视化技术,其核心原理是通过线条斜率直观映射变化率,绕过数值读取直接触发人眼对‘快慢’‘逆转’‘强弱’的本能识别。相比折线图强调连续趋势、条形图侧重静态对比,斜率图的技术价值在于以极简视觉语法承载高密度比较语义,显著降低业务用户的认知负荷。它广泛应用于BI仪表盘中的同比分析、绩效追踪、竞对监测等场景,尤其适合回答‘谁在加速?谁被甩开?’这类决策型问题。本文基于Power BI落地经验,聚焦数据准备、排序逻辑、跨量纲处理与交互增强等关键实践环节。

weixin_34265814的博客 434

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

模板驱动型文档自动化:让非技术人员3分钟生成专业PDF/Word

模板驱动型文档自动化是一种将业务逻辑固化在可读、可维护模板中的工程方法,其核心在于解耦数据、逻辑与呈现,使市场、法务、销售等非技术人员无需编程即可动态生成合规、品牌一致的合同、提案与报告。它依托条件判断、循环渲染、交叉引用、样式切换与合规校验五大能力,以JSON为安全数据载体,通过类Handlebars语法实现业务规则的可视化表达。相比大模型自由生成易出错、规则驱动需频繁开发迭代,模板驱动兼顾准确性、可控性与敏捷性,广泛应用于SaaS报价单、服务协议、课程方案等高频文档场景。

weixin_30251829的博客 372

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

数据可视化底层逻辑:认知效率驱动的设计铁律

数据可视化不是图表美化,而是面向人类认知系统的信息翻译工程。其本质是降低工作记忆负荷、匹配视觉感知特性、对齐业务决策节奏的技术实践。核心原理包括数据墨水比优化、色彩语义编码、坐标轴认知引导等,直指信息传递效率这一根本目标。在金融风控、电商运营、工业IoT等高频应用场景中,高信噪比的可视化能将分析结论转化为即时行动,显著提升决策速度与准确率。本文聚焦被长期忽视的底层设计逻辑,结合塔夫特认知理论与一线项目血泪经验,系统拆解从问题定义到交付落地的可复用方法论。

Ferrerooo 成长 601

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

渐变维度(Slowly Changing Dimension)及其处理方法

渐变维度(Slowly Changing Dimension)及其处理方法

lpxuan151009的专栏 4627

缓慢变化维 (Slowly Changing Dimension) 常见的三种类型及原型设计(转)

开篇介绍 在从 OLTP 业务数据库向 DW 数据仓库抽取数据的过程中,特别是第一次导入之后的每一次增量抽取往往会遇到这样的问题:业务数据库中的一些数据发生了更改,到底要不要将这些变化也反映到数据仓库中?在数据仓库中,哪些数据应该随之变化,哪些可以不用变化?考虑到这些变化,在数据仓库中的维度表又应该如何设计以满足这些需要。 很显然在业务数据库中数据的变化是非常自然和正常的,比如顾客的联系方式,...

weixin_33919950的博客 843

【数据仓库】渐变维度(SCD)类型选择与应用指南:从理论到实践

是管理维度属性随时间变化的核心技术。不同的SCD类型适用于不同场景,错误选择可能导致历史分析失真或资源浪费。本文通过系统性框架与实战案例,解析如何科学选择SCD类型。不同的SCD类型适用于不同场景,错误选择可能导致历史分析失真或资源浪费。本文通过系统性框架与实战案例,解析如何科学选择SCD类型。通过科学选择SCD类型,企业可在历史数据准确性与系统性能之间找到最佳平衡,为数据驱动决策提供坚实基石。通过科学选择SCD类型,我们可在历史数据准确性与系统性能之间找到最佳平衡,为数据驱动决策提供坚实基石。

我的博客 1901

[数据仓库--ETL]渐变维度(Slowly Changing Dimension)及其处理方法

渐变维度(Slowly Changing Dimension)及其处理方法要讨论什么是渐变维度,或者缓慢变化维度,就要先说说什么是维度。虽然经常挂在嘴边的词,但解释起来确实有难度,更不要说给出一个概念了。我们平时提到的0维的点,一维的线,二维平面,三维的立体空间已经挺复杂了,撇开不提,我们看看BI领域的维度是什么意思。个人的理解,维度就是观察数据的不同角度。比如有一个魔方,我们从一个面

小旭的技术博客 5142

SSIS高级转换任务—渐变维度(Slowly Changing Dimension)

渐变维度(SCD)转换提供了一种维护渐变维度或渐变表的方法,渐变维度的分析处理是一个很大的话题。一般一个维度表通常包含一些描述其他信息的离散值,例如,价格,重量,销售地区。问题是如果随着时间的推移这些信息改变我们将如何维护这个表,特别是在数据转移的过程中。例如我们查看AdventureWorks中的product表,如图1 图1    通常在联机事务处理(OLTP)数据库中,我们会用一行...

weixin_34168880的博客 880

渐变维度入门.

有一张内容提供商表. 如图, 需要做维度渐变. 渐变列这里做了简化, 只有Cpname. 维度表如下 多了三列, 维度开始时间, 结束时间, 以及是否是当前值. 渐变的设置如下. 1.. 2.. 在这里我们强调一下图2的几列意思. 固定的属性, 用的比较少, 不做解释. 变化的属性就是, 假设有某行记录该列发生了改变, 那么就执行一条sql语句 update ta...

weixin_30730053的博客 182

缓慢渐变维度的处理方式

缓慢渐变维度的处理方式 维度可以根据变化剧烈程度主要分为无变化维度、缓慢变化维度和剧烈变化维度。例如一个人的相关信息,身份证号、姓名和性别等信息数据属于不变的部分,政治面貌和婚姻状态属于缓慢变化部分,而工作经历、工作单位和培训经历等在某种程度上属于急剧变化字段。 对于剧烈变化维度,通常情况下都是一分为二进行处理的,把其中不常变动的部分单独抽出来作为一个维表,按照缓慢变化维方式进行处理;另外一部

无风听海 2275

使用 Apache Hudi 实现 SCD-2(渐变维度)

数据是当今分析世界的宝贵资产。在向最终用户提供数据时,跟踪数据在一段时间内的变化非常重要。渐变维度 (SCD) 是随时间推移存储和管理当前和历史数据的维度。在 SCD 的类型中,我们将特别关注类型 2(SCD 2),它保留了值的完整历史。每条记录都包含有效时间和到期时间,以标识记录处于活动状态的时间段。这可以通过少数审计列来实现。例如:生效开始日期、生效结束日期和活动记录指示器。让我们了解如何使用 Apache Hudi 来实现这种 SCD-2 表设计。Apache Hudi 是下一代流数据湖平台。

weixin_47367099的博客 351

数据仓库系列 - 缓慢渐变维度 (Slowly Changing Dimension) 常见的三种类型及原型设计...

开篇介绍 在从 OLTP 业务数据库向 DW 数据仓库抽取数据的过程中,特别是第一次导入之后的每一次增量抽取往往会遇到这样的问题:业务数据库中的一些数据发生了更改,到底要不要将这些变化也反映到数据仓库中?在数据仓库中,哪些数据应该随之变化,哪些可以不用变化?考虑到这些变化,在数据仓库中的维度表又应该如何设计以满足这些需要。 很显然在业务数据库中数据的变化是非常自然和正常的,比如顾客的联系方式,...

weixin_34291004的博客 622

微软BI 之SSIS 系列 - 数据仓库中实现 Slowly Changing Dimension 缓慢渐变维度的三种方式...

开篇介绍 关于 Slowly Changing Dimension 缓慢渐变维度的理论概念请参看 数据仓库系列 - 缓慢渐变维度 (Slowly Changing Dimension) 常见的三种类型及原型设计 本篇文章总结了实现缓慢渐变维度的几种方式,并且分析了 Changing Attribute 和 Historical Attribute 输出的逻辑过程。 示例一:SSIS 中使...

weixin_33933118的博客 384
上一篇: [原创]微软BI专题-一种动态显示Matrix中Total背景颜色的方法
下一篇: [原创]微软BI专题-Reporting Service 实用技巧之用背景图美化报表
jackfor001
博客等级 码龄22年 41粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值