`
feiliboos
  • 浏览: 672355 次
文章分类
社区版块
存档分类
最新评论

Integration Services 学习 (2)

 
阅读更多

变量和表达式

变量,作为程序员的我们,是一个多么熟悉的概念,从开始学习编程的第一天起,就要了解什么是变量?如何定义一个变量?变量的使用范围等。现在还有必要在这里大费口舌来讨论“变量”吗?不错,我们今天谈的变量,也脱离不了这个范畴:如何定义一个变量?如何使用变量?变量的使用范围等。但是在ETL的发展过程中,从以前Sql Server 97、Sql Server 2000的DTS到后来的Sql server Integration Services 2005 ,再到现在的Sql Server Integration Services 2008,变量也发生了巨大的变化,其作用也变得越来越重要了。SSIS 包中各组件原本是想互独立,彼此分割的,就需要通过变量来进行信息传递与交流。就象生活在这座城市中的我们,回家同居一小区,出门同乘一班车,但是老死不相往来,每日相逢不相识,彼此从不沟通,从不交流。现在突然来了一位美丽的使者(Variable),挨门挨户地传递信息,把大家凝聚在一起,彼此的沟通和交流多起来了,从此这个小区就变得热闹起来,相互间和谐多了。

  Integration Services 中的变量,同其它编程语言中的变量非常相似----它们都是用于临时存储数据。但是也有一些区别:Integration Services 变量,它还是一个对象,有自已的属性(property),有自已的响应事件。下面我们就看看如何定义变量。

  打开Integration Services Solution ,打开菜单SSIS(S)---变量(S),就会弹出如图所示的窗口。


  从这个窗口中,我们可以明白变量以下几方面的情况:

  (1)、变量的分类,在Integration Services 中,变量有两种类型:系统变量和用户自定义变量。其中系统变量,比如:TaskID,TaskName,CreateName,CreateDate等,提供包运行时的一些基本属性,可供包中的组件或者代码使用。这些变量一般是只读的,在运行的过程中,根据包的运行环境默认生成,不可以修改。而自定义变量呢?两种情况都可以定义了:只读、读写。

  (2)、变量的作用域。有基于包的全局变量,也有基于某一组件的局部变量。这与以前的DTS有较大的差异,以前DTS包中的变量,都是基于包的全局变量。

  (3)、变量的名称、变量的数据类型、默认值等与其它编程语言没有什么差异,在此就不多说了。

  (4)、Raise Change Event 。这是Integration Services 的一个新属性。它是一个Bool 值,如果其值为True,每当变量的值发生改变,VariableValueChangedEvent 将会响应,否则,这个事件将不会响应。(SSIS中的事件,以后会讲到,这里暂不深入).

  除了上面提到的这些属性外,变量还有一个重要的属性--变量的可继承性。前面提到变量有全局变量与局部变量,而局部变量是针对某一个组件可见的变量,但是Integration Services 中的组件是分层的,即有祖先级组件,也有子孙级组件,那么子孙组件就会继承祖先组件的变量,可以引用,可以修改,也可以触发变量VariableValueChangedEvent 事件。如图:


二、表达式。

  前面讲述了表变量的定义、变量的命名空间、变量的作用范围等,但是却没有提及如何使用变量。这就是我们这一节要介绍的内容--表达式。

  “在SSIS解决方案中,对于表达式的强大功能怎么表述都不过分。在SSIS中,我最喜欢的功能就是表达式”--Jamie Thomson

  正如Jamie 所言,表达式的功能在SSIS简直是太强大了,组件的属性、变量、优先级约束、For/Foreach循环容器等,都可以用表达式进行设置。从而使用包变得更加强大、灵活。下面我们将讲一讲常见的几种表达式的应用。

  (一)、属性表达式。

  在Integration Services 中,大多数组件都有Expressions 这个属性,如图:


  Expressions 就是为组件定义表达式的属性,点击“...”按钮,打开“属性表达式编辑器”对话框,如图:


我们可以简单地比较一下,一个文本文件连接对象,基本上大多数属性都可以通过表达式来定义,这就是它的强大的之处。表达式的定义,也非常方便,有一个功能全面的“表达式生成器”窗口,如图:


  这个窗口有四个区域,左上角为“变量”区域,包含了全局变量和该对象可见的局部变量。右上角为“函数”和“运算符”区域,中间为表达式编辑区域,下面为表达式结果显示区,每当一个表达式定义完成,我们为了验证表达式定义是否正确,点击“计算表达式”按钮,就可以模拟计算出表达式的结果。请大家别小看了这个按钮,在Debug 表达式时,非常有用哦。

  (二)、变量表达式。

  变量表达式的定义同属性表达式的定义完全相同,选择变量的“Expressions ”属性,打开属性编辑器,进行编辑即可。

  (三)、优先约束表达式。

  一般在控制流中有多个任务组件,比如有Script 任务,有数据流任务,有SQL脚本任务等,我们有时并不需要这些任务全部都要执行,而是需要根据前面一个任务的执行结果,动态地决定后面的任务是否执行,这就需要用到优先约束表达式。如图:


  优先约束控制着包的工作流,它会判断包的约束是否满足,然后再按照约束条件来选择包是继续运行,还是停止运行。在以前的DTS中,优先约束仅限于前面的任务是“成功”、“失败”、“完成”这三种状态,而现在除了以上三种状态外,还多了一个“表达式和约束”,即我们可以通过定义表达式来定义约束,比如上图所示,如果我们需要定义当错误数量超过5次以后,包才失败,停止运行。这就要用到表达式约束了。

  (四)、循环容。

  “For 循环”是一个容器组件,它可以让某些组件在此容器中,重复运行指定的次数。在这个容器中,我们要定义初值、定义表达式、定义赋值语句,如图:


  

  常用的表达式应用,就是以上这些了,当然还有其它一些类型的表达式定义,我们就不一一列举了,使用方法都大同小异,只要撑握了前面几种,这些定义也就一目了然了。

  今天我们讲述了两个内容:变量和表达式,这两方面的内容,在SSIS包中扮演了非常重要的角色,只要我们充分、灵活地运用,它可以让包更有弹性,更灵活,更加有生命力。如果大家在以后的工作中遇到了,仔细琢磨琢磨,一定不会让你失望的。

分享到:
评论

相关推荐

    Hands-On Microsoft SQL Server 2008 Integration Services

    一本不错的SQL Server Integration Services学习用书。要下载的趁热! 注:英文版

    Integration Services教程

    数据仓库课程资源,帮助学习如何运用Integration Service

    Microsoft SQL Server 2008 Integration Services Problem, Design, Solution.pdf

    ssis 这个是 学习的重点 不看都不行

    Apress.Pro.SQL.Server.2005.Integration.Services.Dec.2007.pdf

    Apress.Pro.SQL.Server.2005.Integration.Services ,学习SSIS的好书

    [SQL.Server.2005一体化指导手册].Microsoft.SQL.Server.2005.Integration.Services.Step.by.Step part1

    一本学习SQL Server 2005解决方案的好书 共6个压缩包

    SSIS入门介绍及示例.docx

    SSIS(SQL Server Integration Services)是 Microsoft SQL Server 的一部分,用于生成高性能数据集成解决方案的平台。SSIS 具有可视化环境,在熟悉了 SSIS 的可视化操作后,几乎所有的 ETL 操作都能通过简单的拖拽...

    SSIS教程(SQL Server 2005)

    SSIS(SQL Server Integration Services)是一种功能强大且灵活的数据integration 工具,由 Microsoft 开发,主要用于数据integration、数据transform 和数据load。SSIS 可以帮助用户快速、可靠地将数据从各种来源...

    SSIS 微软网站教程.pdf

    SQL Server Integration Services ,简称SSIS,本资源是根据微软官网学习时做的笔记,可以为需要学习SSIS的小白提供帮助

    SAP PO/PI教程 Process Orchestration The Comprehensive Guide

    1.1.1 SAP Process Integration 1.1.2 SAP Composition Environment 1.1.3 SAP Process Orchestration 1.1.4 SAP Process Orchestration 7.5 Highlights 1.2 SAP Process Orchestration Components 1.2.1 SAP ...

    一步一步学习SQL Server BI.pdf

    在ETL过程中,我们使用了SQL Server Integration Services(SSIS)来实现数据抽取、加载和转换。首先,我们来新建一个Integration Services项目。接着,新建一个ImportDimGamePackage.dtsx的SSIS包。拖放一个数据流...

    大数据工程师简历模板参考

    数据仓库和ETL工具(如Talend, Informatica, SQL Server Integration Services等) 数据分析和可视化工具(如Tableau, PowerBI, QlikView等) 机器学习和人工智能框架(如TensorFlow, PyTorch等) 云服务平台(如AWS...

    SSIS列子入门

    SSIS(SQL Server Integration Services)是一款功能强大且灵活的数据集成工具,提供了多种功能,如生成和调试包的图形工具和向导、执行工作流函数、提取和加载数据的数据源和目标、用于清理、聚合、合并和复制数据...

    数据库应用技术第二版习题参考答案.doc

    服务组件主要有 SQL Server 数据库引擎、Analysis Services、Reporting Services、Notification Services、Integration Services 等。 4. 实例就是 SQL 服务器引擎,每个 SQL Server 数据库引擎实例各有一套不为...

    SAP-HANA全面介绍和学习路线交流.pdf

    2. SAP HANA R Integration:一种用于集成R语言的开发技术。 3. SAP HANA XS:一种用于开发Web应用程序的开发框架。 六、SAP HANA系统和对象管理 SAP HANA提供了多种系统和对象管理工具,包括: 1. SAP HANA ...

    商务智能应用实例简介.pptx

    1. SQL Server Integration Services(SSIS):用于数据integration和数据transform。 2. SQL Server Analysis Services(SSAS):用于多维数据分析和数据挖掘。 3. SQL Server Reporting Services(SSRS):用于...

    ServiceMix学习笔记

    WSDL(Web Services Description Language)是一种用于描述基于网络的服务接口的语言。基于WSDL的消息模型是JBI架构中的一个关键组件,它提供了一个标准化的方式来描述服务接口和消息交换。 JBI 架构的高层组件交互...

    SAP PI/SAP PO 详细教程(手把手教学)

    1 文档详细举例让使用者更容易理解; 2 包含详细演示步骤截图; 3 从Enterprise Services Repository(ESR)到 Integration Directory(IR),并且有接口监控详细步骤;

    SQL Server 2014数据库项目案例教程习题参考答案

    SQL Server 2014 的体系结构由四个组件组成,分别是数据库引擎、Analysis Services、Reporting Services 和 Integration Services。数据库引擎是 SQL Server 2014 的核心服务,负责完成数据的存储、处理、查询和安全...

    springboot学习思维笔记.xmind

    springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...

Global site tag (gtag.js) - Google Analytics