[原创]微软BI专题-渐变维度Type2进化三部曲
在ETL过程中,对于渐变维度的处理,一直是大家比较关注的问题。关于渐变维度的概念,我们在2007年8月的“渐变维度转换及其实现”一文中有所介绍。本文将在实际应用的对比中,提供三种处理渐变维度的方法,并比较其效率。
第一代:SSIS控件时代
对于一些会在原业务系统中进行修改/添加维度,不需要记录记录历史属性的维度,我们通常会选择SSIS中控件“渐变维度”来完成这项工作。应对这种情况我们选用Type2。
Type2:变化的属性 说明:如果更改后的值应当覆盖现有值,则选择该类型。 解析:既需要更改又不用记录历史属性的类型。 |
选择好数据源,设置好“业务键”和“非键列”之后(如图1),我们再对需要进行更新的“非键列”设置“更改类型”即可,如图2。
图1
图2
之后SSIS会帮我们生成数据流。简单快捷,3分钟完成一张表格,如图3。
图3
第二代:SQL语句时代
但是,对于稍微大一些的数据量,源1万条,目标几万条的时候就会非常的慢。对于这种情况,我们可以采用自己手写渐变维度的方式完成。需要分为两部分——更新原有数据和添加新增数据。如表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 |
以下是代码片段:
Select Team_InternalName , Team_DisplayName , Sort_ID from SS_Team |
以下是代码片段:
__select distinct Team_InternalName from Dim_Team |
输入目标:Dim_Team
至此,完成了渐变维度Type2的“进化”。效率也提高了不少。
[原创]微软BI专题-渐变维度Type2进化三部曲相关推荐
- 数据仓库系列 - 缓慢渐变维度SCD (Slowly Changing Dimension) 常见的三种类型及原型设计
开篇介绍 在从 OLTP 业务数据库向 DW 数据仓库抽取数据的过程中,特别是在第一次导入之后的每一次增量抽取往往会遇到这样的问题:业务数据库中的一些数据发生了更改,到底要不要将这些变化也反映到数据仓 ...
- 微软bi 架构 服务器,微软BI体系结构.
<微软BI体系结构.>由会员分享,可在线阅读,更多相关<微软BI体系结构.(41页珍藏版)>请在人人文库网上搜索. 1.Data Warehouse Data Access 前 ...
- 【原创】BI解决方案选型之ETL数据整合工具对比
[原创]BI解决方案选型之ETL数据整合工具对比 参考文章: (1)[原创]BI解决方案选型之ETL数据整合工具对比 (2)https://www.cnblogs.com/xiongnanbin/p/ ...
- 微软BI 之SSIS 系列 - MVP 们也不解的 Scrip Task 脚本任务中的一个 Bug
开篇介绍 前些天自己在整理 SSIS 2012 资料的时候发现了一个功能设计上的疑似Bug,在 Script Task 中是可以给只读列表中的变量赋值.我记得以前在 2008 的版本中为了弄明白这个配 ...
- 微软BI 之SSRS 系列 - 解决Pie Chart 中控制标签外部显示与标签重叠的问题
微软BI 之SSRS 系列 - 解决Pie Chart 中控制标签外部显示与标签重叠的问题 参考文章: (1)微软BI 之SSRS 系列 - 解决Pie Chart 中控制标签外部显示与标签重叠的问题 ...
- BIDS Helper (Free)微软BI开发辅助工具--非常棒
用了就知道,非常好,分享给微软BI开发的同仁们. /Files/sxfmol/BIDSHelper2005Setup.rar /Files/sxfmol/BIDSHelper2008Setup.rar ...
- 记忆的天空:智能进化三部曲
作者:钟振余,宁波大学 相对于人工智能的快速发展,人类对于生命智能的理解显得很肤浅.由于缺失大脑活动原理的理论指导,人们只能用知识考试去评判一个人的智能,用相当于几岁孩子的智能去比对某些高级动物的智能 ...
- 进化三部曲,从互联网大脑发育看产业互联网的未来
导言:从互联网的左右大脑发育看,产业互联网可以看做互联网的下半场,但从互联网大脑的长远发育看,互联网依然处于大脑尚未发育成熟的婴儿时期,未来还需要漫长的时间发育.参考互联网右大脑的发育历程,可以判断产 ...
- 为移动通信争一先:Massive MIMO的进化三部曲
在围棋中,"先手"是一个十分重要的概念.谁先落子就具有颇大的优势,由此产生了"让先""执先"等概念,也引申出了"敢于争先" ...
最新文章
- 通知 | 2017年清华-青岛数据科学研究院“RONG”奖学金即将开放申请
- 韦东山虚拟机中arm-Linux-gcc的安装方法
- Git关于pull,commit,push的总结
- iOS开发-面试总结(十四)
- 如何通过调试找到自己需要的ABAP增强
- .Net5发布在即,当心技术断层!
- Numpy 之 copies and Views
- jenkins集成sonar
- java 方法详解_Java方法详解
- 深度学习笔记(二)——VGG
- 成人高考计算机专业,成人高考计算机类里的哪个专业好找工作?
- 【webpack】windows10 局部安装webpack,配置环境变量
- 大数据是什么,大数据的特点主要有哪些,应该怎么运用?
- 【RPA自动化|提升办公效率】无需代码的傻瓜式爬虫
- MySQL高级篇知识点——MySQL 事务日志
- USACO4.1 篱笆回路Fence Loops
- MEMC 是什么意思?
- 清分系统层即综合中央计算机,轨道交通AFC系统介绍
- 180512 tensorboard高维数据可视化
- 与东极岛和山东岛的相遇
热门文章
- 我的EOS 400D
- 24 solar terms隐私条款
- server2008服务器可以远程桌面连接,但是ping不通
- 南大通用GBase8s 常用SQL语句(289)
- 中国科学院计算机博士张弛,张驰(中国科学院地质与地球物理研究所副研究员)_百度百科...
- 张驰咨询:某齿轮有限公司首期六西格玛项目成功关闭
- [C/C++/C#] 系统策略禁止这个安装,请与系统管理员联系
- 把word文档转化成pdf文档
- 如何获取苹果设备UDID?
- ftp-serv文件服务软件下载