怎样执行SQL Server集成服务(SSIS)中的批处理

问题

我们很多年来都日常加载数据仓库,每次加载的都是真实记录。我们想批处理地执行这个过程并能够在发生错误的情况下重启失败时间点。你能够为我们提供一个例子介绍下我们该怎样在一个SSIS包中执行这个批处理功能吗?

专家解答

SSIS使用Toolbox中的现有组件能够很好地支持批处理。在SSIS中执行批处理的一个很简便的方法是将记录分组放到批处理中,处理每个批处理,然后将每个组更新为处理过的。首先让我们描绘一个场景然后执行一个SSIS包来完成这个工作。

在开发报表应用程序中,一个很常见的需求是聚合数据使得报表查询可以快速地执行。让我们假设我们想要按月份聚合数据。我们还想具有能够调整聚合数据并只重新计算调整过的按月聚合的能力。

我们可以假设一个SSIS包具有以下步骤:


Get Batch List(获得批处理列表)是一个Execute SQL任务,它将源数据分组在批处理中执行,创建一个每个批处理中包含一个单独记录的结果集。

Process Batch Loop(执行批处理循环)是一个Foreach Loop容器,它迭代这个结果集记录;例如,这个结果集中的每条记录执行一次。

Transaction Container(事务容器)是一个序列容器,它包含这个循环的每个迭代要执行的任务;它控制事务,如果成功就提交,如果失败就回滚。

Append Batch to Sales History(附加批处理到销售历史)是一个Execute SQL任务,它提取一批记录并将它们插入到一个历史表中。

Compute Aggregation(计算聚合)是一个Execute SQL任务,它对这个批处理执行聚合并更新聚合表。

Mark Batch as Processed(将批处理标记为处理过的)是一个Execute SQL任务,它更新源表中的记录以显示它们已经处理过了。

在下面的章节中,我们将详细讨论SSIS包中的每个步骤。从建立开始,然后逐步介绍。

时间: 2024-12-22 15:46:31

怎样执行SQL Server集成服务(SSIS)中的批处理的相关文章

SQL Server集成服务用于Oracle 10g

1.导言 这篇文章关注于使用SQL Server集成服务来从异构数据源提取数据以及将数据导入到Microsoft SQL Server用于商业智能(BI)分析和报表的好处.Oracle Database 10g数据作为主要数据源来使用. 这篇文章的读者包括IT专家.数据库管理员和系统架构师.读者应该具有对数据库和Microsoft SQL Server以及Oracle Database 10g的一般性了解.读者应该在他们喜欢的硬件平台上使用参考的数据库. SQL Server是Microsoft

SQL Server集成服务语句优化经验分享

SQL Serverhttp://www.aliyun.com/zixun/aggregation/14194.html">集成服务(SQL Server Integration Services,SSIS)在其前辈DTS(Data Transformation Services,数据转换服务)的基础上进步了不少,从可用性.性能和并行等方面来说,它已经成长为一个企业级ETL(Extraction, Transformation and Loading,抽取.转换和加载)产品,除了是一个ET

解读SQL Server分析服务中的数据挖掘功能

 数据挖掘是SQL Server 2000中最令人激动的新功能之一.我将数据挖掘看作是一个能够自动分析数据以获取相关信息的过程,数据挖掘可以和任一关系数据库或者OLAP数据源集成使用,但它和OLAP的集成所带来的好处却是极为显著的.因为结构化的数据源使得用户无需再向数据挖掘算法提供海量信息了.尽管不是什么专家,但我从同事Greg Bernhardt那里学到东西已经足够我来对数据挖掘作一翻解释了,我还希望由此使得分析服务的数据挖掘功能不再神秘并向你展示如何在分析应用中使用数据挖掘. 数据挖掘功能

在Microsoft SQL Server 2000数据仓库中使用分区

概述 本文讨论数据仓库中数据分区的作用.关系型数据仓库和分析服务多维数据集都支持数据分区.分区的逻辑概念在 Microsoft SQL Server 的两个引擎中是相同的:通过键(例如日期)对数据进行水平分区.在关系型数据库中,分区是通过创建单独的物理表(例如为每个月的数据创建一个表)并且定义一个成员表的联合视图来实现的.与此类似,SQL Server Enterprise Edition 中的分析服务支持显式的多维数据集分区.在关系型数据库和联机分析处理 (OLAP) 引擎中,物理存储的复杂性

SQL Server 2000/2005中数据库自动备份的设

SQL Server 2000的数据库自动备份的设置 1.首先要保证SQL Server Agent服务处于启动状态(在"SQL Server服务管理器"中可以查看和启动,或者在系统服务中) 2.打开"SQL Server 企业管理器"->"管理"->"数据库维护计划" 3.右键选"新建维护计划",选择要执行自动备份的数据库.调度时间.选择备份存放的路径,其他默认即可. 这是SQL Server

sql-【SQL求助】用SQL Server查询语句中,IN 的使用问题。

问题描述 [SQL求助]用SQL Server查询语句中,IN 的使用问题. 我想查询一辆车在一个月内的记录.于是编写了如下代码: select * from 北京车辆能耗数据.dbo.北京朝批商贸股份有限公司 where ( [列 0] in ('京AC3537') and CAST ([列 2] as datetime)>'2013/11/1 00:00:00' and CAST ([列 2] as datetime)<'2013/12/1 00:00:00' ) order by CAS

操作-分高悬赏答案!!sql server 2008 r2中怎样存储txt文件?

问题描述 分高悬赏答案!!sql server 2008 r2中怎样存储txt文件? 客户要求将大量TXT文件原封不动存入sql数据库,使用pb开发程序,通过pb可以实现文件的下载和上传,目前的问题就是,怎么才能将txt文件存入数据库?有几种方法?那种方法最简单易实现?具体操作怎么来?分高悬赏 解决方案 简单得很,先用编辑软件把字段之间用ascii码的t分隔,也就是tab那个键按出来的空白. 然后复制到excel,数据就从文本变成了表格形式.然后excel里面有拼接函数 那就拼接成一个inser

在SQL Server Management Studio中可以运行作业但是用T-SQL运行则失败

原文:在SQL Server Management Studio中可以运行作业但是用T-SQL运行则失败 问题: 在SQL Server Management Studio中可以运行作业但是用T-SQL运行则失败,反之亦然. 分析: 这种情况多数为执行时上下文(Context)安全性问题.在SSMS中执行的时候,T-SQL语句是在当前登录名下运行的.但是作业在SQL Server Agent中是以SQL Server Agent 服务(SQL Server Agent Service accou

SQL SERVER Transactional Replication中添加新表如何不初始化整个快照

原文:SQL SERVER Transactional Replication中添加新表如何不初始化整个快照 在SQL SERVER的复制(Replication)中,有可能出现由于业务需求变更,需要新增一张表或一些表到已有的复制(发布订阅)当中,这种需求应该是很正常,也很常见的.但是在已有的复制(发布订阅)当中增加新表/文章,往往需要将整个快照重新初始化,这样做虽然简单,但是往往在实际应用中会出现一些问题,例如,发布订阅的表比较多,数据量比较大,那么重新初始化快照往往需要很长一段时间,影响系统