当前位置:首页 > 系统运维 > 正文内容

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

a8116255310年前 (2015-10-16)系统运维4

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。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/22531.html

分享给朋友:

“微软 BI 系列随笔 - SSIS 2012 基础 - SSIS 基础知识” 的相关文章

windows 7系统的电脑发出嘟嘟嘟的声音该怎么解决?

windows 7系统的电脑发出嘟嘟嘟的声音该怎么解决?

在某些电脑中,机器内部蜂鸣器与系统的声音输出方案是相关联的,这样一来会导致当系统输出声音时,即使电脑没有连接外部音响或耳机,也会通过内置蜂鸣器发出“嘟嘟哔哔”的声音。这个问题主要出现在Windows 7电脑中,假如你的电脑恰好遇到了这样的问题,可参考下面的方法来解决: 1、在桌面“计算机”图标上右...

Skylake平台不能通过USB接口装windows 7系统

Skylake平台不能通过USB接口装windows 7系统

Intel会在2015年推出Broadwell、Skylake两代14nm处理器,前者可以使用9系芯片组,Skylake升级到了LGA1151插槽,需要搭配新的100系列芯片组,但初期的Skylake-S又不能超倍频,所以今年Q2季度开始会很混杂。Skylake一代会支持DDR4,100系列芯片组升...

ubuntu14.04打开个几个应用窗口最小化后怎么切换呢?

ubuntu14.04打开个几个应用窗口最小化后怎么切换呢?

ubuntu14.04应用窗口列表在哪里?在ubuntu下打开个几个应用窗口最小化后怎么切换呢,应用窗口列表在哪里呢? 1、多打开几个chrome浏览器窗口。 2、然后都做最小化处理。 3、现在我们在桌面左边的面板上找到"左右两边有小白点"的chrome浏览器应用图标,这就是chr...

Ubuntu 14.10上安装新的字体图文教程

Ubuntu 14.10上安装新的字体图文教程

像Ubuntu这种开源系统,一般都自带有好多漂亮的字体,不过假如您想使用您熟悉的字体,可以通过在Ubuntu或其它Linux系统上安装字体,帮助用户在使用开源OS平台上更好的视图体验。 软件名称:Ubuntu 14.04 官方正式版软件大小:752MB更新时间:2014-05-07 Ubun...

windows 7启动后检测到硬盘出错提示请立即备份文件

windows 7启动后检测到硬盘出错提示请立即备份文件

许多朋友的Windows 7系统每次启动到桌面后,都会收到一个提示:Windows检测到一个硬盘问题,请立即备份文件以防信息丢失,并联系计算机制造商以确定是否需要修复或更换硬盘。如下图情况: 碰到这种情况的朋友就需要注意了,虽然不知道当前硬盘是碰到什么问题,但在电脑还能使用的情况下,我们首先要...

windows 7禁用粘滞键(连续按 Shift 五次)的方法

windows 7禁用粘滞键(连续按 Shift 五次)的方法

我们都知道连续按 Shift 五次可以启用或关闭粘滞键,但是假如我们不需要粘滞键,想要将它禁用该怎么设置呢?现在小编就教你解决这个问题的方法吧。 具体操作步骤如下: 1、首先依次点击“开始—控制面板—轻松访问中心—使键盘更容易进行使用”项; 2、在弹出来的界面中,取消勾选“启用粘滞键”...