为 SQL Server Integration Services 中的包数据定义报表数据集
在 Microsoft SQL Server 2005 中,可以创建 Reporting Services 报表,该报表使用的数据是通过运行 Integration Services (SSIS) 包生成的。该包必须满足本主题中说明的最低要求。
以下事件流说明了对使用包数据的报表的数据处理过程:
- 当用户打开报表或报表服务器通过预定操作生成报表时,将初始化报表处理进程。
- 报表服务器连接到存储在文件系统或 msdb 数据库中的包 (.dtsx) 文件。报表中的连接字符串必须指定指向该包文件的完全限定路径。
- 报表服务器将报表中定义的查询传递至 Integration Services 进行处理。该查询是 DataReader 目标的名称。
- 报表服务器将进行检索,然后将数据合并到报表布局并按指定设置进行显示。
您无法从 Integration Services 事件触发报表处理。产品的事件模型未集成。报表处理必须从 Reporting Services 进行初始化。
在选择 SSIS 作为数据源类型之前,必须配置无人参与的执行帐户和 SSIS 数据处理扩展插件。有关详细信息,请参阅配置用于无人参与的报表处理的帐户和配置 Reporting Services 以使用 SSIS 包数据。
设计包
并不是所有的包皆可用于为报表提供数据。对报表数据的包要求包括必须使用可提供内存中目标的 DataReader 目标。下面的列表说明其他要求以及创建包和报表的步骤:
- 在 Integration Services 中,创建一个包,该包至少具有一项满足一个或多个 DataReader 目标的数据流任务。目标对象必须包含要在报表中使用的输入列。
- 配置与外部数据源的连接。如果包连接到 SQL Server 关系数据源,则可以在 Windows 身份验证和 SQL Server 身份验证之间进行选择。配置连接时,请使用存储密码进行 SQL Server 身份验证。
- 运行该包可以验证是否返回所期望的数据。有关如何设置用于显示包所返回数据的数据查看器,请参阅如何将数据查看器添加到数据流。
- 将包保存到文件系统或 SQL Server 中的文件夹。不支持将包保存到 SSIS 包存储区。
- 请记下特定 DataReader 目标的名称,该目标包含要在报表中使用的结果集。随后您需要将此名称指定为报表查询。
在报表中定义连接和查询
定义包之后,可以创建使用 SSIS 数据处理扩展插件的报表。报表必须包括指定了到包的连接的数据集。该数据集查询是 DataReader 目标的名称。使用数据集中定义的凭据来运行包。下面的列表提供了必须在报表数据集中指定的连接和查询定义的相关详细信息:
数据源类型必须为 SSIS。
凭据类型可以为**“无凭据”或 Windows 凭据。不能使用数据库身份验证。首次在报表数据集中创建连接时,凭据将被自动设置为“无凭据”。发布报表之后,可以使用报表管理器或 SQL Server Management Studio 将凭据类型切换为 Windows 集成安全性或已存储的 Windows 用户帐户。如果存储凭据,则请务必选择“在与数据源建立连接时用作 Windows 凭据”**选项。不支持提示凭据。
指向包的连接字符串必须为文件系统或 msdb 中包 (.dtsx) 文件的完全限定路径。使用 dtexec 实用工具的 -file 或 -sql 参数。无需指定实用工具本身。SSIS 数据处理扩展插件将该实用工具作为后台进程运行。有关命令行参数的详细信息,请参阅 dtexec 实用工具。下面的示例说明了可用于从文件系统中检索的包的连接字符串语法:
-f c:\datafiles\packages\reportdatapackage.dtsx
该查询是 DataReader 目标的名称。默认情况下,名称为 DataReaderDest。可以替换为其他名称。
请参阅
概念
其他资源
教程:创建基本报表
DataReader 目标
设计和创建 Integration Services 包