在第 1 课:创建项目和基本包时,你创建了一个包,该包从单个平面文件源中提取数据,使用查找转换转换数据,最后将数据加载到 AdventureWorksDW2012 示例数据库的 FactCurrency 事实数据表中。
但是,提取、转换和加载 (ETL) 进程很少使用单个平面文件。 典型的 ETL 过程将从多个平面文件源中提取数据。 从多个源提取数据需要采用迭代控制流。 Microsoft Integration Services 最期待的功能之一是能够轻松地向包添加迭代或循环。
Integration Services 为循环遍历包提供了两种容器类型:Foreach 循环容器和 For 循环容器。 Foreach 循环容器使用枚举器来执行循环,而 For 循环容器通常使用变量表达式。 本课使用 Foreach 循环容器。
Foreach 循环容器使包能够对指定枚举器的每个成员重复执行控制流。 使用 Foreach 循环容器,可以枚举:
ADO 记录集行
ADO .Net 架构信息
文件和目录结构
系统、包和用户变量
变量中包含的可枚举对象
集合中的项
XML Path 语言 (XPath) 表达式中的节点
SQL Server 管理对象 (SMO)
在本课中,你将修改第 1 课中创建的简单 ETL 包,以利用 Foreach 循环容器。 你还将设置用户定义的包变量,使教程包能够循环访问文件夹中的所有平面文件。 如果尚未完成上一课,还可以复制本教程随附的已完成的第 1 课包。
在本课中,你不会修改数据流,只修改控制流。
重要
本教程需要 AdventureWorksDW2012 示例数据库。 有关如何安装和部署 AdventureWorksDW2012 的详细信息,请参阅 CodePlex 上的 Reporting Services 产品示例。
课程任务
本课程包含以下任务: