从 SQL Server Integration Services 创建报表数据集

可以创建使用由运行 Integration Services 包而生成的数据的 Reporting Services 报表。该包必须满足本主题中说明的最低要求。

注意注意

不支持 SSIS 数据处理扩展插件。此数据处理扩展插件为非生产功能且默认情况下处于关闭状态。此时,建议不要在生产服务器上使用 SSIS 数据处理扩展插件。如果您选择启用该功能并在报表服务器上使用该功能,应注意在运行时将在报表服务器 Windows 服务帐户或报表服务器 Web 服务帐户的安全标识下处理包。这对如何保护包访问的数据源有一定影响。有关详细信息,请参阅配置 Reporting Services 以使用 SSIS 包数据

以下事件流说明了对使用包数据的报表的数据处理过程:

  • 当用户打开报表或报表服务器通过预定操作生成报表时,将初始化报表处理进程。

  • 报表服务器连接到存储在文件系统或 msdb 数据库中的包 (.dtsx) 文件。报表中的连接字符串必须指定该包文件的完全限定路径。

  • 报表服务器将报表中定义的查询传递至 Integration Services 进行处理。该查询是 DataReader 目标的名称。

  • 报表服务器将进行检索,然后将数据合并到报表布局并按指定设置进行显示。

无法从 Integration Services 事件触发报表处理。产品的事件模型未集成。报表处理必须从 Reporting Services 进行初始化。

在选择 SSIS 作为数据源类型之前,必须配置无人参与的执行帐户和 SSIS 数据处理扩展插件。有关详细信息,请参阅配置无人参与的执行帐户配置 Reporting Services 以使用 SSIS 包数据

设计包

并不是所有的包皆可用于为报表提供数据。对报表数据的包要求包括必须使用可提供内存中目标的 DataReader 目标。下面的列表说明其他要求以及创建包和报表的步骤。

  1. 在 Integration Services 中,创建一个包,该包至少具有一项填充一个或多个 DataReader 目标的数据流任务。目标对象必须包含要在报表中使用的输入列。

  2. 配置与外部数据源的连接。如果包连接到 SQL Server 关系数据源,则可以在 Windows 身份验证和 SQL Server 身份验证之间进行选择。配置连接时,请使用存储密码进行 SQL Server 身份验证。

  3. 运行该包可以验证是否返回所期望的数据。有关如何设置用于显示包所返回数据的数据查看器,请参阅如何将数据查看器添加到数据流

  4. 将包保存到文件系统或 SQL Server 中的文件夹。不支持将包保存到 SSIS 包存储区。

  5. 请记下特定 DataReader 目标的名称,该目标包含要在报表中使用的结果集。随后您需要将此名称指定为报表查询。

在报表中定义连接和查询

定义包之后,可以创建使用 SSIS 数据处理扩展插件的报表。报表必须包括指定了到包的连接的数据集。该数据集查询是 DataReader 目标的名称。使用数据集中定义的凭据来运行包。下面的列表提供了必须在报表数据集中指定的连接和查询定义的相关详细信息:

  • 数据源类型必须为 SSIS。

  • 凭据类型可以为**“无凭据”或 Windows 凭据。不能使用数据库身份验证。首次在报表数据集中创建连接时,凭据将被自动设置为“无凭据”。发布报表之后,可以使用报表管理器或 SQL ServerManagement Studio 将凭据类型切换为 Windows 集成安全性或已存储的 Windows 用户帐户。如果存储凭据,则请务必选择“在与数据源建立连接时用作 Windows 凭据”**选项。不支持提示凭据。

  • 指向包的连接字符串必须为文件系统或 msdb 中包 (.dtsx) 文件的完全限定路径。使用 dtexec 实用工具的 -file-sql 参数。无需指定实用工具本身。SSIS 数据处理扩展插件将该实用工具作为后台进程运行。有关命令行参数的详细信息,请参阅 dtexec 实用工具。下面的示例说明了可用于从文件系统中检索的包的连接字符串语法:

    -f c:\datafiles\packages\reportdatapackage.dtsx
    
  • 该查询是 DataReader 目标的名称。默认情况下,名称为 DataReaderDest。可以替换为其他名称。