计算列包示例

计算列示例是处理归档销售事务的包。此包使用一个 OLE DB 源、两个派生列转换、一个排序转换和一个聚合转换。通过使用平面文件目标将结果发送至平面文件。

计算列示例包说明了如何从表中提取数据、对数据执行数学运算、聚合数据值、对数据进行排序并将数据写入文件。示例包还使用一个包配置、一个变量和一个属性表达式来动态更新示例写入的文件的位置并将该文件复制到此位置。

如果在非英语版本的 Windows 上运行该示例,则可能需要替换 Program Files 文件夹的本地化名称,才能打开或运行该示例。

ms161567.note(zh-cn,SQL.90).gif重要提示:
提供的示例仅供学习使用。这些示例不是针对生产环境设计的,也没有在生产环境中进行测试。对于这些示例,Microsoft 不提供相关的技术支持。

要求

运行此示例具有以下要求:

  • 示例数据包及其使用的数据文件必须安装在本地硬盘驱动器上。
  • 您必须安装了 AdventureWorks 数据库并对其具有管理权限。此示例从示例 AdventureWorks 数据库的 TransactionHistoryArchive 表中检索数据。默认情况下,此表随 AdventureWorks 数据库一起安装。
  • 如果仅需要从命令行运行示例包,则必须安装 SQL Server 2005 Integration Services (SSIS)。
  • 若要在 SSIS 设计器中打开包并运行示例包,则必须安装 Business Intelligence Development Studio。

有关如何安装示例的详细信息,请参阅 SQL Server 联机丛书中的“Installing Sample Integration Services Packages”。若要获取最新版本的示例(包括自 SQL Server 2005 首次发布之后发布的新示例),请参阅 SQL Server 2005 示例和示例数据库(2006 年 4 月)

示例包的位置

如果这些示例安装在默认安装位置,则计算列示例包将位于以下文件夹中:

C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\CalculatedColumns Sample\CalculatedColumns\。

运行此示例包需要下列文件:

文件 说明

CalculatedColumns.dtsx

示例包。

results.txt

平面文件示例数据。

运行示例

可以使用 dtexec 实用工具从命令行运行包,或在 Business Intelligence Development Studio 中运行包。

如果您使用的是非英语版本的 Windows,则可能需要更新包中使用的所有文件连接管理器的 ConnectionString 属性,才能成功地运行示例包。请验证在您的计算机上连接管理器所用的路径是有效路径。如果需要,可以修改此路径以使用 Program Files 文件夹的本地化名称。

对于此示例,可能必须更新 results.txt 连接管理器的 ConnectionString 属性中的“Program Files”。

使用 dtexec 运行包

  1. 打开命令提示符窗口。

  2. 使用**“更改目录”**命令 cd 将目录更改为 C:\Program Files\Microsoft SQL Server\90\DTS\Binn,即 dtexec 所在的位置。

  3. 键入下列命令:

    dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx"
    
  4. Enter

有关如何使用 dtexec 实用工具运行包的详细信息,请参阅 SQL Server 2005 联机丛书中的“dtexec 实用工具”主题。

在 Business Intelligence Development Studio 中运行包

  1. 打开 Business Intelligence Development Studio。

  2. 在**“文件”菜单上,指向“打开”,再单击“项目/解决方案”**。

  3. 找到 CalculatedColumns 示例文件夹,再双击名为 CalculatedColumns.sln 的文件。

  4. 解决方案资源管理器中,右键单击 SSIS Packages 文件夹中的 CalculatedColumns.dtsx,再单击**“执行包”**。

示例中的组件

下表列出了示例中使用的任务、容器、数据源和目标以及转换。

元素 用途

数据流任务

数据流任务(Calculate Values)在包中执行数据流。

文件系统任务

文件系统任务(Copy File)将 results.txt 从 Program Files 中的安装文件夹(通常用户对此文件夹没有写访问权限)复制到用户的 Temp 文件夹。

OLE DB 源

数据流中的第一个组件是名为 Extract Data 的 OLE DB 源。它从 AdventureWorks 数据库的 TransactionHistoryArchive 表中加载归档销售事务源。

派生列转换

第一个派生列转换名为 Calculate LineItemTotalCost。此转换通过将每个销售事务的成本与数量相乘并将其结果存储在新列中来创建一个新列 LineItemTotalCost。然后,此新列会添加至每个输出行中。

聚合转换

聚合转换(Sum Quantity and LineItemTotalCost)按 ProductID 列对数据进行分组,并且对于每一个 ProductID,都计算其 Quantity 列的和来作为 QuantitySum 列,然后计算 LineItemTotalCost 列的和作为 TotalCostByID 列。

派生列转换

第二个派生列转换(Calculate Average Cost)向每一个输出行添加一个新列 AvgCostByID。此列包含由每一个 ProductID 的 QuantitySum 得来的 TotalCostByID

排序转换

排序转换(Sort by ProductID)按 ProductID 列对结果进行排序。

平面文件目标

平面文件目标(Load Data)将数据保存至平面文件 results.txt。

文件连接管理器

三个文件连接管理器分别与源、result.txt 文件的副本和 Temp 目录连接。

OLE DB 连接管理器

OLE DB 连接管理器 (local).AdventureWorks,连接到本地服务器上的 AdventureWorks 数据库。

示例结果

计算列示例包的执行结果保存在 temp 目录中的文本文件中。若要找到计算机中的 temp 目录,请依次单击**“启动”“运行”并键入 %temp%,然后单击“确定”**。这样将打开 temp 文件夹。在此文件夹中,找到并打开 results.txt。 此文件的内容应与位于 C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\CalculatedColumns Sample\CalculatedColumns 文件夹中的 results.txt 文件的内容匹配。在运行包之前,包含此预填充的 results.txt 文件可以供您打印或查看。