Data Flow ->> Slow Changing Dimension

这里简单讲下SCD

在讲之前贴上两个有用的链接地址。作者的两篇文件讲解了SCD是什么以及应用

http://www.cnblogs.com/biwork/p/3363749.html

http://www.cnblogs.com/biwork/p/3371338.html

Slow Changing Dimension翻译过来就叫缓慢渐变维度。它被应用于数据仓库中对维度表数据的加载。因为数据总是在不断增长和变化的,在第一次完全加载数据后需要处理增量加载数据的处理场景,以及数据是否需要保留历史数据的问题。Slow Changing Dimension必须满足这些技术层面的问题。SSIS中有一个叫Slow Changing Dimension的组件,但是它的实现功能其实是可以有其他的方法来替代的。SCD的三种常见的类型参考:http://www.cnblogs.com/biwork/p/3363749.html。其实就是:只更新保留一条记录、保留过往的历史记录(通过时间字段或者标签字段来标示有效行)、只保留当前行和”最新的旧行“。

替代Slow Changing Dimension组件的方法:

1)纯T-SQL的MERGE方法来实现

2)在 SSIS 中使用 Lookup, Conditional Split, Multicast 等控件实现 SCD 效果(其中的Lookup也可以用Merge组件来代替,只是要提前对数据进行排序)

为什么要替代Slow Changing Dimension组件?

Slow Changing Dimension组件不管是与查找表(Lookup table)的键匹配,还是后面需要用到OLE Command来更新Change Attitude分支的输出行、Insert到destination table也不是fast load(因为insert和update存在锁冲突,所以都是逐行逐行插入的)。由此可以性能上Slow Changing Dimension组件在处理数据集大的情况下肯定不佳或者说不及其他两种方法。(来自Professional Microsoft SQL Server 2012 Integration Services)

时间: 2024-11-05 19:42:13

Data Flow ->> Slow Changing Dimension的相关文章

使用SSIS Slow Changing Transformation组件管理缓慢变化维

最近尝试用SSIS自带的 Slow Changing Transformation组件处理缓慢变化维,看到有一篇文章写的很详细,就按照步骤进行操作同时进行翻译.原网址来自:Managing Slowly Changing Dimension with Slow Changing Transformation in SSIS. 介绍 作为数据库专家或者ETL的开发者你可能偶尔会碰到需要维护和管理缓慢变化唯的场景.在SQL Server中有多种方法来实现,最简单的是使用SSIS 数据流组件中的Slo

监控 Data Flow Execution Performance

在每个Package执行时,SSIS Engine都会记录日志信息,Logging Level共有四个:无,基本,性能,详细.如果想监控Data Flow Execution的性能,可以将Logging Level设置为性能,这样就能收集每个数据流组件的“活动时间(以秒为单位)”. step1,设置日志记录级别为性能 2,查看package执行日志 3,点击“执行性能”,查看package的Execution Performance 查看数据路组件的各个组件的活动时间 如果数据流存在问题,那么可

Data Flow ->> Import Column & Export Column

这两个transformation的作用是把DT_TEXT, DT_NTEXT, DT_IMAGE类型的数据在文件系统和数据库间导出或者导入.比如把某个数据库表的image类型的字段导出到文件系统成为img文件.做法是在导入导出的时候必须提供完全文件名和路径.需要注意的地方是需要在Import Column组件的Input and Output Properties页面加一个output字段来导入比如img文件,然后columnn的id必须在input column和output column间

UVA 10594 Data Flow (最小费用流)

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=116&page=show_problem&problem=1535 Problem F Data Flow Time Limit 5 Seconds   In the latest Lab of IIUC, it requires to send huge amount of data from the local s

Intel® Threading Building Blocks (Intel® TBB) Developer Guide 中文 Parallelizing Data Flow and Dependence Graphs并行化data flow和依赖图

https://www.threadingbuildingblocks.org/docs/help/index.htm Parallelizing Data Flow and Dependency Graphs In addition to loop parallelism, the Intel® Threading Building Blocks (Intel® TBB) library also supports graph parallelism. It's possible to cre

SSIS的 Data Flow 和 Control Flow

一,Control Flow 在Control Flow中,Task是最小的单元,Task通过Precedence Constraint来保持同步. 1,Control Flow 不能在组件之间传递数据,用于串行或并行执行任务,担当Task的调度者. 如果两个Task之间没有设置precedence constraint,那么这两个Task是并发执行的.在design package时,最大限度地提高task的并发处理能力,能够充分利用server的资源,有助于减少ETL执行的时间. 2,Con

Redux:data flow

我们使用react,是为了构建可复用的高性能的视图层,学习redux是为了处理视图组件中随应用复杂度提升而变得难以控制的state.说白了,是为了视图. 在了解了action.reducer和store之后,文档并不继而介绍怎么应用到视图层,而是带我们先了解data flow这概念. react中data的传递经常是单向的,由上一级组件通过props传给子孙组件. redux的设计结构也是围绕着严格的单项数据流模式. This means that all data in an applicat

Data Flow ->> Multiple Excel Sheet Loaded Into One Table

同个Excel文件中多个Sheet中的数据导入到单张表中,参考了文章:http://www.cnblogs.com/biwork/p/3478778.html 思路: 1) ForEach Loop组件获得Excel文件中的各个Sheet的名字,然后复制给variable 2) Loop里层的Data Flow再读取variable的值来加载数据 需要注意的点: 1) 一般新建一个Excel文件会默认生成3个Sheet,如果你滞留了某个空的Sheet在里面,就会报错 [SSIS.Pipeline

uva 10594 Data Flow (最小费最大流+题目给的数据有错)

uva 10594 Data Flow 题目大意:给出一张图,以及D, K,D代表所要传送的数据量,K代表每条边可以传送的数据量(就是容量),问在可以传送所有数据的前提下,最小耗费时间. 解题思路:建一个超级源点连向源点1,容量为D,然后求该图的最小费最大流.最后将求出的最大流与D比较,比D小输出inpossible,否则输出最小费. #include <cstdio> #include <cstring> #include <algorithm> #include &