SSIS:通过设置 CheckPoints 检查点来增强 SSIS Package 流程的重用性

通常一个 ETL Package 是由多个控制流和数据流共同组成,有的时候 ETL 的步骤可能会比较多,整 个流程执行下来的时间可能比较长。假设在 ETL Package 中包含5个Task,前3个Task执行超过1个小时 ,到了第4个Task的时候发生失败。如果下次执行的时候重新从第1个任务开始执行,那么又要花费1个小 时等待 1-3 任务执行,无疑在效率上讲是非常低的。特别是在数据仓库的应用上,往往从数据源到 Staging的过程中有千万级甚至亿级的数据要加载,加载完毕之后再进入到维度和事实表。如果在进入维 度和事实表的过程中发生失败,就意味着下次需要重新加载数据到Staging表。而通过检查点CheckPoint 的设置可以解决这个问题,通过合理的设置可以跳过上一次已经成功执行过一些步骤而直接从失败的地 方重新开始执行,这样大大的提高了包的执行效率。

下面这个 ETL 示例简单的模拟了从一个数据源抽取数据然后输出到一个数据表和一个平面文件的过 程,之后再看 CheckPoint 的使用。

USE BIWORK_SSIS
GO

IF OBJECT_ID('CK_Address') IS NOT NULL
DROP TABLE CK_Address
GO

IF OBJECT_ID('CK_AddressAudit') IS NOT NULL
DROP TABLE CK_AddressAudit
GO

CREATE TABLE CK_Address
(
    AddressID INT,
    AddressLine1 NVARCHAR(60),
    AddressLine2 NVARCHAR(60),
    City NVARCHAR(30)
)

CREATE TABLE CK_AddressAudit
(
    ID INT PRIMARY KEY IDENTITY(1,1),
    CityName NVARCHAR(60),
    Counts INT
)

ETL 过程 -

EST_TruncateAddress - TRUNCATE TABLE dbo.CK_Address  TRUNCATE TABLE dbo.CK_AddressAudit

DFT_LoadAddress - 从 AdventureWorks2012.People.Address 中抽取数据到 dbo.CK_Address 中

DFT_SaveAddressAudit - 对 CK_Address 表中的数据做出一些统计然后写入到 dbo.CK_AddressAudit 中

DFT_OutputAddressAudit - 将 dbo.CK_AddressAudit 中的数据输出到一个文本文件中

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据
, table
, ssis
, 数据源
, dft
, 一个
, nvarchar
检查点
ssis package、checkpoints、ssis 教程、ssis包、sql server ssis 教程,以便于您获取更多的相关知识。

时间: 2024-11-01 03:48:36

SSIS:通过设置 CheckPoints 检查点来增强 SSIS Package 流程的重用性的相关文章

通过设置 CheckPoints 检查点来增强 SSIS Package 流程的重用性

通常一个 ETL Package 是由多个控制流和数据流共同组成,有的时候 ETL 的步骤可能会比较多,整个流程执行下来的时间可能比较长.假设在 ETL Package 中包含5个Task,前3个Task执行超过1个小时,到了第4个Task的时候发生失败.如果下次执行的时候重新从第1个任务开始执行,那么又要花费1个小时等待 1-3 任务执行,无疑在效率上讲是非常低的.特别是在数据仓库的应用上,往往从数据源到Staging的过程中有千万级甚至亿级的数据要加载,加载完毕之后再进入到维度和事实表.如果

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

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

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

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

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

在SSIS体系中,控制流可能经常会遇到,比如你取得一列数据,需要循环这列数据然后做相应的操作时,就需要用到循环,下面,我来操作两种循环方式,FOR循环和Foreach循环. 一,For循环 写过代码的知道,For循环的常用写法是这样的:For(var i = 0 ; i < 10 ; i++){  //do sth;}; 这里面包含三个动作,初使化循环量,设定循环的终止值,循环更新值.那我们相应的看一下For循环容器里面是否含有相应的动作: InitExpression => Var i  =

在IBM Rational开发产品设置构建时JPA增强的过程

JPA 增强是修改实体类,添加监视它们之中的更改并持久保存这些更改的能力的过程.在使用 IBM WebSphere Application Server 所提供的 OpenJPA 时,此增强过程使用了一种称为字节码编织 (byte-code weaving) 的技术.通常,对于 WebSphere Application Server,JPA (Java Persistence API) 实体的增强是在初始化 Java EE 应用程序期间执行的. 尽管不需要使用构建时增强,但它确实提供了一定的优

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

上一期讲了For循环,Foreach循环相比而言要更复杂一点,里面涉及变量的类型,数据接收问题,下面我用一个简单的示例来演示Foreach循环容器: 假设我们有这样一个需求: 从数据库中取出一列数据,循环输出这列数据的每个值 一,拖入sql任务,定义一个Object类型的变量接收取到的数据 二,设置好接收变量

PHP 面向对象详解_php技巧

对象的主要三个特性 对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为. 对象的形态:当施加那些方法是对象如何响应,颜色,尺寸,外型. 对象的表示:对象的表示就相当于身份证,具体区分在相同的行为与状态下有什么不同. 面向对象模型 面向对象的概念: oop(面向对象的编程)它能是其代码更加简洁易于维护并且具有更强的可重性 什么是类: 类是具有相同属性和服务的一组对象的集合比如说人,书,轮船,车都属于类,他为属于该类的对象做了一个统一的抽象描述,在编程的语言中类是一个单独的程序,它应该有一个类

JUnit源码分析(二)

    在上面我们已经提到了junit.extentions包中的内容TestSetup.来看看整个包的结构吧. 先简要的介绍下包中各个类的功能.ActiveTestSuite对TestSuite进行了改进,使得每个test运行在一个单独的线程里面,并且只到所有的线程都结束了才会结束整个测试.ExceptionTestCase是对TestCase进行的改进,可以方便的判断测试类是否抛出了期望的异常.而剩下的三个类,大概你看的出来是使用了装饰模式来设计的.其中TestDecorator为具体装饰类

实例学习SSIS(三)--使用包配置

原文:实例学习SSIS(三)--使用包配置 导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习SSIS(四)--使用日志记录和错误流重定向 实例学习SSIS(五)--理论介绍SSIS 包配置是干嘛滴!          使用包配置可以从开发环境的外部设置运行时属性和变量. 目标:          从开发环境外部指定Foreach要遍历的文件夹,然后把该文件夹下相应的txt文件内容写入库中. 步骤: