微软 BI 系列随笔 - SSIS 2012 基础 - SSIS 基础知识


SSIS 介绍

SSIS - SQL Server Integration Services 是用于实现企业级数据集成和数据转换解决方案的平台。 使用 Integration Services 可解决复杂的业务问题,具体表现为:复制或下载文件,发送电子邮件以响应事件,更新数据仓库,清除和挖掘数据以及管理 SQL Server 对象和数据。 这些包可以独立使用,也可以与其他包一起使用以满足复杂的业务需求。Integration Services 可以提取和转换来自多种源(如 XML 数据文件、平面文件和关系数据源)的数据,然后将这些数据加载到一个或多个目标。

Integration Services 包含一组丰富的内置任务和转换、用于构造包的工具以及用于运行和管理包的 Integration Services 服务。 可以使用 Integration Services 图形工具来创建解决方案,而无需编写一行代码;也可以对各种 Integration Services 对象模型进行编程,通过编程方式创建包并编写自定义任务以及其他包对象的代码。

SSIS 的基本概念

包 - Package

包是一个有组织的集合,其中可包括连接(Connection Managers)、控制流元素(Control Flow)、数据流元素(Data Flow)、事件处理程序(Event Handlers)、变量(Variables)、参数和配置(Parameters and Configurations). 包是可被检索、执行和保存的工作单元。包可以部署到 SSIS 服务器或者文件系统执行。

以下关系图显示了一个简单包,其中包含一个带有数据流任务的控制流,而数据流任务中又包含数据流。

连接管理器 - Connection Managers

SSIS提供项目级别的连接管理器和包级别的连接管理器。

项目级别的连接管理器可以在各个包之间共享。对于使用相同配置的连接来说,只需要在项目级别配置一次,就可以在多个包之间使用了。

包级别的连接管理器只能在包级别使用。同一个包内部的不同的任务和数据流任务之间可以共享同一个连接。在包级别的连接管理器可以看到项目级别的连接管理器。

控制流 - Control Flow

控制流是一个包含各种任务(Task)的容器。这些任务之间可以通过各种优先级约束(成功,失败,完成)链接以实现顺序序执行。任务之间也可以不使用任何优先级约束,这样的任务对其他的任务没有依赖或者不被别的任务依赖,他们可以平行执行。常见的任务有Execute SQL Task和Data Flow Task。

控制流中可以使用容器(Containers)来包含和组织任务。常见的容器有For Loop容器,Foreach容器 和 Sequence容器。

下图包含了一个顺序执行的任务和一个与之平行任务。

数据流 - Data Flow

数据流是以数据为导向的数据流任务(Data Flow Task)的具体实现。数据流通常包含数据源(Source)、转换(Transform)和目的地(Destination)。在一个数据流中数据从数据源采集,经过转换(矫正、分离、合并)并最终到达目的地。虽然所有的数据都是按照这个过程(依赖于设计)处理,但是整个过程中每条数据之间是并行执行的关系。比如第一条数据已经在转换了,第二条数据才刚刚被采集到。

下图说明了一个从不同的数据源采集数据并处理到不同的目的地的数据流。

参数 - Parameters

SSIS中参数分为项目(Project)参数和包(Package)参数。

项目参数可用于向项目中的一个或多个包提供项目接收的任何外部输入。通常定义一些基本的数据,比如数据库连接字符串,服务器连接字符串。

包参数可以用于给一个包提供接收的外部输入。通常定义一些包级别特定的数据,比如包处理的筛选条件,数据源所在的文件夹等。

使用参数可以实现快速的执行和部署包或者整个项目。但是如果是要部署单个的包,则尽量避免使用参数而应该使用配置。

下图列出了一些项目级别的参数。

事件处理程序 - Event Handlers

在运行时,可执行文件(包以及 Foreach 循环容器、For 循环容器、序列容器和任务宿主容器)会引发事件。 例如,错误发生时会引发 OnError 事件。 可以为这些事件创建自定义事件处理程序,以扩展包的功能并使包在运行时更容易管理。 事件处理程序可以执行诸如下列任务:

当包或任务运行完成时清除临时数据存储。
在包运行前检索系统信息,以便评估资源可用性。
在引用表中的查找失败时刷新表中的数据。
当发生错误或警告时,或者当任务失败时,发送电子邮件。
如果事件没有事件处理程序,则将该事件提升到包中容器层次结构中的上一级容器。 如果此容器具有事件处理程序,则该事件处理程序当事件发生时运行。 如果没有,则将该事件提升到容器层次结构中的上一级容器。

下图列出了所有可用的事件处理程序。

变量 - Variables

变量是在包内部使用的作为控制或者传递的信息。每个变量都有自己的作用域(Scope),父容器级别的变量可以被子容器使用,子容器级别的变量对父容器不可见。

SSIS中的变量分为系统变量和用户变量。系统变量是系统内置的,对用户来说是只读的。用户定义变量由包开发人员定义,可以使用参数、配置信息、表达式和常量来赋值。通过设置用户变量的只读属性(ReadOnly)让变量不可修改。

日志 - Loggin

SSIS中通过配置包的日志,可以详细记录包以及内部任务的运行时信息。可以为包内的任何可执行文件()任务记录日志,日志的内容包括各种事件及时间的属性。可以为一个包定义多个日志类型。例如可以为同一个包指定Text Files和SQL Server级别的日志记录,一旦SQL Server出现问题,Text Files记录的日志可以很好的帮助我们诊断出错信息。使用SQL Server类型的日志记录会在数据库的系统表中创建一张sysssislog的表。该表记录了包执行的ID,任务的执行ID,起止时间及状态信息。

包配置 - Package Configurations

包配置在SSIS 2012之前的版本中非常重要,在SSIS 2012的版本中使用包级别部署的时候也非常有用(包配置可用于包部署模型。 对于项目部署模型,参数用于代替配置。)

包配置具有下列优点:

  • 使用配置可以更轻松地将包从开发环境转移到生产环境中。 例如,配置可以更新源文件的路径,或者更改数据库或服务器的名称。
  • 将包部署到多台不同的服务器时,配置非常有用。 例如,用于每个已部署包的配置中的变量可以包含不同的磁盘空间,并且如果可用磁盘空间不满足此值,包将不会运行。
  • 配置可以使包更加灵活。 例如,配置可以更新在属性表达式中使用的变量的值。

Integration Services 支持几种不同的存储包配置(例如 XML 文件、SQL Server 数据库中的表以及环境变量和包变量)的方法。

每个配置都是一个属性/值对。 XML 配置文件和 SQL Server 配置类型可以包括多个配置。
在创建用于安装包的包部署实用工具时将会包括这些配置。 在安装包时,可以在安装包的过程中更新配置。

Integration Services 提供了直接配置和间接配置。 如果直接指定配置,Integration Services 会在配置项和包对象属性之间创建直接链接。 如果源的位置不更改,则直接配置是较好的选择。 间接配置使用环境变量。 配置不直接指定配置设置,而是指向环境变量,环境变量又包含配置值。 如果对于包的每个部署,配置的位置都可以更改,则使用间接配置是较好的选择。例如,在数据库中直接指定包级别的配置,而在环境变量中(或者XML、参数)中简介指定包级别配置所在的数据库。SSIS在执行时,首先加载环境变量(直接配置),通过直接配置找到包级别的配置信息(间接配置)并加载运行。

包浏览器 - Package Explorer

包浏览器包含了整个包里面的所有内容,并且以折叠数的方式展现,通过包浏览器可以快速的找到并定位包级别的任何元素(可执行文件、条件表达式、参数、事件处理程序、变量、连接管理器以及日志)。

总结

本文介绍了微软SSIS的基本概念,希望能够帮助初学SSIS的开发者更好的理解SSIS。

//
//
//

SSIS 基础知识的更多相关文章

  1. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  2. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  3. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  4. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  5. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  6. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  7. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  8. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  9. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

随机推荐

  1. Django1.9开发博客(7)- 实现功能

    到目前为止我们已经完成了一个django应用的所有基础部分. 包括url配置.视图.模型和模板.接下来开始继续完善我们的博客系统了. 首先我们需要一个显示每篇文章的详细页面,对不? 文章详情 对于首页 ...

  2. css3旋转倾斜3d小动画

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  3. 请把不听话的【return】关进【class】这个笼子

    请把不听话的[return]关进[class]这个笼子 问:powershell 最垃圾的语句是什么?答:(函数中的)return #例子1:函数中的return有时会返回所有内容,而不是你想要的内容 ...

  4. 实现手机扫描二维码页面登录,类似web微信-第一篇,业务分析

    转自:http://www.cnblogs.com/fengyun99/p/3541249.html 关于XMPP组件的文章,先休息两天,好歹已经完整的写了一份. 这两天,先实现一套关于web微信扫描 ...

  5. java面试准备之基础排序——冒泡与选择排序

    选择排序:     [java]    public void select(int[] arr){            for(int i=0;i<arr.length;i++){      ...

  6. php变量函数,回调函数

    一,变量可以直接传递函数 <?php function demo($num , $n )//$n是个函数 { for($i=0;$i<$num;++$i) { if($n($i)) { e ...

  7. goldengate 12.2中通过restful查看OGG状态

    安装ogg 12.2之后 GGSCI>create datestore 然后重启mgr 和其它进程, 通过浏览器http://ogg-server-ip:mgr-port/groups 可以看到 ...

  8. CSS中相对定位与绝对定位

    看了几个讲解定位的博客,觉得还不错,分享之: 博客一:http://blog.sina.com.cn/s/blog_4bcf4a5e010008o0.html 文章中,主要需要参考的有两点: 1,相对 ...

  9. E1_1 用邻接矩阵存储有向图,并输出各顶点的出度和入度

    参考书:图论算法理论.实现及应用(北京大学出版社) 输入数据:(test.txt) 程序: /* 邻接矩阵存储有向图 */ #include <cstring> #include < ...

  10. [GodLove]Wine93 Tarining Round #1

    比赛链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=44664#overview 题目来源: 2011 Asia Regional ...