在 dbo.Contact中添加一行记录 Use AdventureWorks go Insert Into dbo.Contact (FirstName, MiddleName, LastName, Email) Values ('Andy', 'Ray', 'Leonard', 'andy.leonard@gmail.com') 把 Data Flow Task 改名为 “Insert and Update Rows.” 然后再拖一个 Data Flow task 并改名为 “Delete…
在本文中, 我们说下增量更新数据:即将数据源中更新了的数据替换掉目标表中对应的数据. 更新代码 操作之前我们先把目标表e (dbo.Contact). 的数据改掉 Use AdventureWorks go Update dbo.Contact Set MiddleName = 'Ray' Where MiddleName Is NULL 打开 My_First_SSIS_Project. 点击  Data Flow 标签. 我们把Level 3的项目文件修改下.双击 Lookup Transf…
让我们打开之前的项目:My_First_SSIS_Project_After_Step_2.zip 之前项目中我们已经向dbo.contact 导入了19972行,如果再次执行包会重复导入,让我们来解决这个问题. 增量导入目标 (Incremental Load Goals) 在我们批量处理之前,先来明确下增量导入的目标: 如果数据源中有新纪录,我们要把这些记录导入目的地. 如果数据源中有记录变更,我们要把之前导入目的地的相关记录更新. 如果数据源中的记录被删除,我们要把之前导入目的地的相关记录…
介绍 在本文中我们将利用SSIS参数,变量 以及 Foreach Loop Container 从多个源动态导入数据. 开始前我们先下载一些数据.WeatherData_Dec08_Apr09.zip  解压以后我们看到有三个目录数据 Figure 1 每个月年目录包含一个子目录 TH.每个TH 目录包含文件 sensor1-all.csv.  这些文件是 December 2008 至 April 2009 温度和湿度数据. February 2009 的文件包括December 2008 至…
介绍 本文中,我们将结合之前学习的时间冒泡,日志记录,以及复制模型.建立一个自定义的SSIS包日志模型. SSIS Task事件回顾    Reviewing SSIS Task Events 在做实验之前我们更改一下 Precedence.dtsx SSIS 包的设置. 把 Precedence.dtsx SSIS 包的 DisableEventHandlers 属性改为True Figure 2 屏蔽内置日志   Disable Built-In Logging 首先我们要移除已经存在的日志…
介绍 在本文中,我们会实验 MaximumErrorCount和ForceExecutioResult 故障容差属性,并且还要学习Control Flow task errors, event handlers 和 containers 的联系 关于 SSIS Task Errors 打开 Precedence.dtsx 包. 你的Control Flow 显示如下: 图 1 再做测试前我们先调整两个优先约束.   Script Task 4 和 Script Task 3  调整如下: 图 2…
介绍 在本文中,我们要创建一个SSIS Catalog 实例,部署我们的项目,并且运行 weather data loader 包. SSIS 2012 部署模型   SSIS 2012 Deployment Models SQL Server 2012 Integration Services 支持两种部署模型: 包部署模型  Package Deployment Model 项目部署模型  Project Deployment Model 包部署模型是向后兼容的,支持SSIS 2012以前的…
简介 在之前的章节中,我们学习了增量载入数据. 本文中.我们通过优先约束(Precedence Constraints)来管理SSIS的工作流. 添加一个SSIS包 图 1 将新建的Package1.dtsx 改为 Precedence.dtsx  : 图 3 添加 Script Task 拖个 Script Task 到Control Flow: 图 5 Script Task估计是SSIS 里面最强大的组件了.你可以创建很多功能. 同样的,你能通过Script Task 控制SSIS工作流.…
介绍 在本文中我们会研究SSIS变量姐妹: SSIS 变量. 我们会演示参数配置,通过包参数管理动态属性值,然后会演示SSIS包执行的时候参数怎么被配置的. SSIS Parameters 101 SSIS参数和SSIS变量很像.  在SSIS 2012里面 变量和参数是可以互换的. 不过有重要的不同点: SSIS包开始执行以后,参数是只读的. 参数的作用域为项目或者包级别. 参数有 Sensitive 属性. 参数有 Required 属性. 因为参数在SSIS包执行的之后参数是只读的.所以参…
介绍 在前一篇中我们组合了已经学过的事件冒泡 event bubbling, 日志记录 logging, 和父子模型 Parent-Child pattern 建立了自定义的SSIS包日志记录. 本文中, 我们会将我们的解决方案升级至 SQL Server 2012 Integration Services 并且展示 SSIS变量 (SSIS variables), 变量(variable configuration), 以及通过表达式处理动态值 (dynamic value managemen…
介绍 在前一个章节我们讨论了事先行为,分享了如何操作默认的行为和时间冒泡,并且介绍了父子模型. 本文中,我们会配置SSIS日志. 进行简单及高级日志配置,存储,和检索的实验.并且生成自定义日志信息. More About SSIS Task Events 打开 Precedence.dtsx 包,你 Control Flow 界面应该显示如下: 图 1 在测试之前,我们先来验证或修改一些设置.首先点击  Precedence.dtsx 包 Control Flow界面的空白处,然后在属性面板里面…
介绍 在前一篇文章中我们介绍了故障容差相关的 MaximumErrorCount 和 ForceExecutionResult 属性.  同时我们学习了SSIS Control Flow task errors, containers, 和event handlers联系 . 本篇中我们关注事件行为. 我们用两种方法操纵日志传递(冒泡)行为. 同时也介绍父子模式(Parent-Child pattern )并且演示事件在父子模式中的行为. 关于 SSIS 任务事件 About SSIS Task…
介绍 在前两个章节我们,建立了一个新的SSIS包,简单的使用了一下scripting还有优先约束,并且测试了MaxConcurrentExecutables 属性.  同时实验了  “On Success”, “On Completion”, 和“On Failure”几种类型的优先约束. 本文中我们继续深入SSIS工作流管理,学习SSIS变量并且通过表达式来处理复杂的优先约束. 关于变量 打开 Precedence.dtsx package,菜单栏点SSIS下拉菜单,然后选Variables.…
介绍 前一个章节我们对SSIS的优先约束做了初步了解,并且实验了MaxConcurrentExecutables 包属性的设置. 本文将测试“On Success”, “On Completion”, 和“On Failure”几种类型的优先约束. 约束评估 On Success 在此就不重复了,请看上篇文章 On Completion 右击优先约束,会显示配置选项: 图 5 点击 Completion, 优先约束的先会由绿色变为黑色: 图 6 当配置选项改为“On Completion”之后,…
介绍 本文中我们会用SSDT把第一个SSIS项目转换为 SSIS 2012, 为什么要升级到2012? 你可能想使用SSIS 2012新的特性. 又或者想使用 SSIS 2012 Catalog. 想要使用 Catalog, 你的项目必须转为 Project Deployment Model 我们会在本片文章中演示. 开发模型  Deployment Models 在Solution Explorer,里面我们注意到一段文字“(package deployment model)” : Figur…
本篇文章是Integration Services系列的第五篇,详细内容请参考原文. 在上一篇你学习了如何将更新从源传送到目标.你同样学习了使用基于集合的更新优化这项功能.回顾增量加载记住,在SSIS增量加载有三个使用案例:1.New rows-add rows to the destination that have been added to the source since the previous load.2.Updated rows-update rows in the destin…
本篇文章是Integration Services系列的第四篇,详细内容请参考原文. 回顾增量加载记住,在SSIS增量加载有三个使用案例:1.New rows-add rows to the destination that have been added to the source since the previous load.2.Updated rows-update rows in the destination that have been updated in the source…
本篇文章是Integration Services系列的第三篇,详细内容请参考原文. 增量加载是什么增量加载仅加载与先前加载差异的.差异包括:->新增的行->更新的行->删除的行通过它的性质,一个增量加载是可重复执行的,意味着你可以一遍遍的执行而不会损坏数据.更有意思是,加载被设计为执行多次,而不会引起服务器进行不必要的或重复的工作.在这一篇及接下来的两篇,我们会学习增加加载中的新增.更新.删除行.本篇我们集中在新增上.To The Keyboard让我们打开第二篇SSIS数据泵中的My…
本篇文章是Integration Services系列的第五篇,详细内容请参考原文. 在上一篇你学习了如何将更新从源传送到目标.你同样学习了使用基于集合的更新优化这项功能.回顾增量加载记住,在SSIS增量加载有三个使用案例:1.New rows-add rows to the destination that have been added to the source since the previous load.2.Updated rows-update rows in the destin…
本篇文章是Integration Services系列的第四篇,详细内容请参考原文. 回顾增量加载记住,在SSIS增量加载有三个使用案例:1.New rows-add rows to the destination that have been added to the source since the previous load.2.Updated rows-update rows in the destination that have been updated in the source…
本篇文章是Integration Services系列的第三篇,详细内容请参考原文. 增量加载是什么增量加载仅加载与先前加载差异的.差异包括:->新增的行->更新的行->删除的行通过它的性质,一个增量加载是可重复执行的,意味着你可以一遍遍的执行而不会损坏数据.更有意思是,加载被设计为执行多次,而不会引起服务器进行不必要的或重复的工作.在这一篇及接下来的两篇,我们会学习增加加载中的新增.更新.删除行.本篇我们集中在新增上.To The Keyboard让我们打开第二篇SSIS数据泵中的My…
本篇文章是Integration Services系列的第十篇,详细内容请参考原文. 简介在前一篇, we introduced fault tolerance by examining methods of task execution state management using the MaximumErrorCount and ForceExecutionResult properties.我们还学习了SSIS控制流任务错误.事件处理程序和容器之间的关系.这一篇我们重点关注事件的行为.在…
本篇文章是Integration Services系列的第六篇,详细内容请参考原文. 简介在前几篇文章中,我们关注使用增量加载方式加载数据.在本篇文章,我们将关注使用优先约束管理SSIS控制流中的工作流.你将添加一个新SSIS包到已存在的解决方案.添加SSIS包SSIS控制流包含任务.容器和优先约束.在SSIS控制流中任务和容器是可执行对象,优先约束用于控制任务和容器何时/是否执行.为了操作控制流,打开叫做My_First_SSIS_Project解决方案.打开后在解决方案资源管理器右击SSIS…
本篇文章是Integration Services系列的第十五篇,详细内容请参考原文. 简介在前一篇,我们使用SSDT-BI将第一个SSIS项目My_First_SSIS_Project升级/转换到SSIS 2012.在这一篇,我们将探讨SSIS变量的姊妹:SSIS参数.我们将展示参数配置,通过包参数管理动态属性值,以及在SSIS包执行期间参数是如何配置和使用的.首先在SSDT-BI打开转换过的My_First_SSIS_Project,如图15.1所示:图15.1My_First_SSIS_P…
本篇文章是Integration Services系列的第十四篇,详细内容请参考原文. 简介在前一篇,我们查看了SSIS变量,变量配置和表达式管理动态值.在这一篇,我们使用SQL Server数据商业智能工具(SSDT-BI)或Visual Studio 2012将我们的第一个SSIS项目转换为SSIS 2012.为什么你想升级我们的SSIS项目到2012?你可能想使用SSIS 2012中的新特性.你可能还希望利用SSIS 2012目录.要使用目录,你的项目必须遵循项目部署模型,我们也将在这篇文…
本篇文章是Integration Services系列的第十三篇,详细内容请参考原文. 简介在前一篇我们结合了之前所学的冒泡.日志记录.父子模式创建一个自定义的SSIS包日志记录模式.在这一篇,我们将升级我们的解决方案到SQL Server 2012 Integration Services,演示SSIS变量,变量配置和表达式管理动态值.在前面的练习中我们已经使用过变量,但我们没有深入学习,这一篇,我们将关注SSIS变量.……Getting Starting with the Visual St…
本篇文章是Integration Services系列的第十二篇,详细内容请参考原文. 简介在前一篇文章我们配置了SSIS内置日志记录,演示了简单和高级日志配置,保存并查看日志配置,生成自定义日志消息.在第十篇我们讨论了bubbling事件的行为,分享操纵事件冒泡默认行为的方法,并介绍了父子模式.在这一篇,我们将结合已经学到的知识事件冒泡.日志记录.父子模式创建一个自定义的SSIS包日志记录模式.回顾SSIS任务事件打开Precedence.dtsx包.你的控制流面板应该如图12.1所示:图12…
本篇文章是Integration Services系列的第十一篇,详细内容请参考原文. 简介在前一篇,我们讨论了事件行为.我们分享了操纵事件冒泡默认行为的方法,介绍了父子模式.在这一篇,我们会配置SSIS内置日志记录.我们会演示简单和高级日志配置,保存和查看日志配置,生成自定义日志消息.SSIS任务事件打开Precedence.dtsx包.你的控制流面板应该如图11.1所示:图11.1在第九篇和第十篇,我们关注在序列容器1.我们在Script Task 4和序列容器1上创建了OnError事件处…
本篇文章是Integration Services系列的第九篇,详细内容请参考原文. 简介在前面三篇文章,我们创建了一个新的SSIS包,学习了脚本任务和优先约束,并检查包的MaxConcurrentExecutables属性.我们检查.演示并测试优先约束赋值为"成功"."完成"."失败"时对工作流的影响.我们学习了SSIS变量和表达式,并将它们应用到优先约束.这一篇,we introduce fault tolerance by examinin…
本篇文章是Integration Services系列的第八篇,详细内容请参考原文. 简介在前面两篇文章,我们创建了一个新的SSIS包,学习了SSIS中的脚本任务和优先约束,并检查包的MaxConcurrentExecutables属性.我们检查.演示并测试优先约束赋值为"成功"."完成"."失败"时对工作流的影响.在这一篇,我们继续深入SSIS工作流管理——学习SSIS变量和优先约束表达式.关于变量打开Precedence.dtsx包.点击BI…