SSIS从理论到实战,再到应用(2)----SSIS包的控制流

原文:SSIS从理论到实战,再到应用(2)----SSIS包的控制流

前文回顾:

SSIS从理论到实战,再到应用(1)----创建自己的第一个包

上次说到创建了自己的第一个包,完成了简单的数据从数据库=>数据库,以及Excel文件=>数据库过程,这一次咱们回看看一个包里面到底有哪些好玩的元素构成:

咱们一般写过代码的人都知道,很多的看似很复杂的功能都是由:顺序,选择,循环构成的。SSIS也不例外,咱们可以看到SSIS包里面工具选项卡里面已经写出他的本质了:

SSIS包里面功能元素包含以下图所示:

控制流元素:控制包的整体执行顺序,以及执行方式

数据流元素:控制数据Load(数据从哪里来,到哪里去)

我们先来看看控制流元素:SQL
Server Integration Services
提供包中结构的容器、提供功能的任务以及将可执行文件、容器和任务连接为已排序控制流的优先约束三个组成部分:

一个包就这样通过拖拖控制,连连鼠标就实现了,是不是很简单?

图中的线表示:连接两个容器(控件),按照线(约束)的条件实现执行按照箭头所指的执行方向。和我们画的流程图没有太大的区别

图中的容器:指的是一个可执行的功能,表示该控件可以执行某种功能。

MSDN关于控制流是如下解释的:

创建控制流包含下列任务:

  • 添加在包中实现重复的工作流或将控制流划分为子集的容器。

  • 添加支持数据流、准备数据、执行工作流和商业智能功能以及实现脚本的任务。

    Integration
    Services 包含了多种任务,可以用其创建满足包的业务要求的控制流。 如果包必须使用数据,则控制流必须包含至少一个数据流任务。
    例如,包可能必须提取数据、聚合数据值,然后将结果写入到数据源。
    Integration Services Tasks and Add or Delete a Task or a Container in a Control Flow.‘>有关详细信息,请参阅
    Integration
    Services 任务
    在控制流中添加或删除任务或容器


  • 使用优先约束把容器和任务连接为有序控制流。

    Control Flow tab, SSIS Designer automatically adds a connector to the item.‘>将任务或容器添加到“控制流”选项卡的设计图面后,SSIS 设计器自动将连接线添加到项。 如果包中包含两个或更多项、任务或容器,则可以通过将它们的连接线从一项拖动到其他项而将它们联接成控制流。

    两个项之间的连接器表示优先约束。
    优先约束定义了两个连接项之间的关系。
    它指定了运行时任务和容器的执行顺序以及任务和容器的运行条件。
    例如,优先约束可以指定某任务必须成功,才能运行控制流中的下一个任务。
    Precedence Constraints.‘>有关详细信息,请参阅优先约束


  • 添加连接管理器。

    多个任务需要连接到数据源,因此必须将任务需要的连接管理器添加到包。
    根据所使用的枚举器类型,Foreach
    循环容器可能也需要连接管理器。 可以在逐项构造控制流时或开始构造控制流前添加连接管理器。
    Integration Services (SSIS) Connections and Create Connection Managers.‘>有关详细信息,请参阅
    Integration
    Services (SSIS) 连接
    创建连接管理器

下一期,SSIS包控制流的变量,约束,常用容器详解

时间: 2024-10-14 00:20:31

SSIS从理论到实战,再到应用(2)----SSIS包的控制流的相关文章

SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器

原文:SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器 上期回顾: SSIS从理论到实战,再到应用(2)----SSIS包的控制流 首先我们来看看包里面的变量 SSIS包变量分为两种,一种是系统的内置变量,是一个SSIS包初使化都会自带的,一种是用户自己定义的变量. 在SSIS包中,常用的变量的类型包含以下:Int32,String,Boolean,DateTime,Object...... 二,让我们来看看包里面的约束(线) 如图中所示的线就是约束,官方的解释是这样

SSIS从理论到实战,再到应用(6)----SSIS的自带日志功能

原文:SSIS从理论到实战,再到应用(6)----SSIS的自带日志功能 上期回顾: SSIS从理论到实战,再到应用(5)----流程控制之Foreach循环 博主最近新负责了一个ssis大项目的架构,压力山大,所以都没有怎么正儿八经的更文章了,给园友们说声抱歉,接下来的一些文章可能都比较偏重于实用技巧方面^_^. 我们都知道,不论在任何一个项目,日志系统的重要意义都是不言而喻的. 如果你的SSIS项目管理到了以百为级别,那很有必要去为它专门构建一个日志管理平台,这个时候你可以参考@BIWork

SSIS从理论到实战,再到应用(7)----常用的数据类型转换操作

上期回顾: SSIS从理论到实战,再到应用(6)----SSIS的自带日志功能 在抽取各种应用的数据时候,经常会遇到数据需要转换类型的操作,比如日期在源数据库是dbtime类型,在本地需要用到字符串,这个时候有两种常用的方案来解决: 1.通过语法在源数据库进行类型转换,类似sqlserver的convert(要转换的类型,长度).... 2.利用ssis自带的组件进行类型转换 本期选用第二种方案做演示.(背景,将excel的数据导入数据库中) 1)拖入数据流任务控件,双击进入具体的设计 2)拖入

SSIS从理论到实战,再到应用(4)----流程控制之For循环

原文:SSIS从理论到实战,再到应用(4)----流程控制之For循环 上期回顾: SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器 在SSIS体系中,控制流可能经常会遇到,比如你取得一列数据,需要循环这列数据然后做相应的操作时,就需要用到循环,下面,我来操作两种循环方式,FOR循环和Foreach循环. 一,For循环 写过代码的知道,For循环的常用写法是这样的:For(var i = 0 ; i < 10 ; i++){  //do sth;}; 这里面包含三个

SSIS从理论到实战,再到应用(5)----流程控制之Foreach循环

原文:SSIS从理论到实战,再到应用(5)----流程控制之Foreach循环 上期回顾: SSIS从理论到实战,再到应用(4)----流程控制之For循环 上一期讲了For循环,Foreach循环相比而言要更复杂一点,里面涉及变量的类型,数据接收问题,下面我用一个简单的示例来演示Foreach循环容器: 假设我们有这样一个需求: 从数据库中取出一列数据,循环输出这列数据的每个值 一,拖入sql任务,定义一个Object类型的变量接收取到的数据 二,设置好接收变量 三,拖入Foreach循环容器

SSIS从理论到实战,再到应用

原文:SSIS从理论到实战,再到应用 一,是什么(What?) 1.SSIS是Microsoft SQL Server Integration Services的简称,是生成高性能数据集成解决方案(包括数据仓库的提取.转换和加载 (ETL) 包)的平台. 以上的这段文字来自于百度,脱离这个概念,我一直再思考如何向普通人解释SSIS这一套体系:我觉得我自己解释很有可能不到位,所以特意去知乎里面问了这个问题: 如何解释SSIS 貌似没有很好的效果,我所理解的SSIS是这样的: 一个强壮的肌肉男,能搬

SSIS从理论到实战,再到应用(1)----创建自己的第一个包

原文:SSIS从理论到实战,再到应用(1)----创建自己的第一个包 其实,如果你使用sql2008的导出导入工具的时候,你就已经在使用包了. 目标:使用sql2008 导入导出工具,导入excel数据,并得到一个package,然后查看package的设置 ====>最后得到SSIS包 我们梳理一下,我们的目标是什么:将excel的数据导入到了数据库中,那必然有这几个动作 1.创建表 2.将数据导入到我们创建的表中 Ok,这样我来将这个包打开来看看是否有至少两个动作 首先,我们新建一个SSIS

Docker最全教程——从理论到实战(八)

在本系列教程中,笔者希望将必要的知识点围绕理论.流程(工作流程).方法.实践来进行讲解,而不是单纯的为讲解知识点而进行讲解.也就是说,笔者希望能够让大家将理论.知识.思想和指导应用到工作的实际场景和实践之中,而不是拿着字典写文章,抱着宝典写代码.至于很多具体的语法.技术细节,除了常用的知识点,笔者更希望大家阅读官方文档——毕竟看官网比看书靠谱多了,官网会一直更新和改进,而书和教程自出版或发布之后,基本上就“死“了. 本系列教程预计全部完成还需要2到3个月的时间.在这个过程中,您可以加入我们一起讨

Docker最全教程——从理论到实战(五)

原文:Docker最全教程--从理论到实战(五) 往期内容链接 Docker最全教程——从理论到实战(二) Docker最全教程——从理论到实战(三) Docker最全教程——从理论到实战(四) 本篇教程持续编写了3个星期左右并且一直在完善.补充具体的细节和实践,预计全部完成需要1到2个月的时间.由于编写的过程中极其费时,并且还需要配合做一些实践(有些实践存在一些坑,而且极其费时费事).因此目前产出的速度已经跟不上发布的速度了,后续的发布节奏会放慢,请大家多多理解和多多包含. 在这个过程中,我们