【问题标题】:SQL Server Integration Services SSIS 2005 - How to Let Users Run the Package?SQL Server Integration Services SSIS 2005 - 如何让用户运行包?
【发布时间】:2010-02-02 21:42:13
【问题描述】:

所以我在 SSIS 中制作了一个包,用于从文本文件中读取数据并将其加载到数据库表中。

为非技术性最终用户在需要时运行此设置的最佳方式是什么?

我的老板正在考虑让一个 SP 启动它,然后让一个报告服务中的报告启动存储过程。当然还有更好的方法!

【问题讨论】:

    标签: sql-server reporting-services ssis dts


    【解决方案1】:

    ASP.NET 是一个很好的解决方案:http://www.codeproject.com/KB/aspnet/SSIS_DOTNET.aspx

    【讨论】:

    • 虽然这对于小包来说可能是一个很好的解决方案,但我认为你会遇到大包的问题。使用这种方法,您将在 HTTP 请求的上下文中运行包,这意味着如果您的包运行时间超过 HTTP 超时值,它将被终止。此外,由于设置了内存/cpu 限制,IIS AppPool 可能会自动重新启动,您的包将再次被杀死。如果你真的想从 .NET 运行包,我建议构建一个带有 WCF 端点的 Windows 服务,用于启动包和接收状态。
    【解决方案2】:

    您还可以创建一个 SQL 代理作业来运行具有空计划的包。然后创建一个web前端调用EXEC msdb.dbo.sp_start_job N'Your SSIS Job Name';

    【讨论】:

    • 这听起来很有希望。我能得到任何可以在 Web 前端显示的反馈吗?例如,错误、加载的行等?
    • 是的。您可以围绕轮询作业状态的 sp_help_job 存储过程开发一个包装器。对于插入的行,您需要构建一个自定义审核表并将其键入包执行 ID。
    【解决方案3】:

    这并不完全简单,并且带有许多健康警告,但可以配置为 SSRS 报告以使用 SSIS 包作为数据源 - 请参阅http://msdn.microsoft.com/en-us/library/ms345250.aspx

    启用此功能后,您可以在 SSIS 包中添加一个额外步骤,以将一个(或多个)report datasets 输出到 SSRS 报告。

    【讨论】:

    • 谢谢埃德。我设置了这个,很酷。问题。如果包失败,例如,有人删除了输入文件,报告只会显示“包失败...”。有什么方法可以获取详细的故障信息吗?准确地告诉用户出了什么问题。
    • @Greg - 好问题!也许一种方法是使用 SSIS 错误处理程序将“错误”数据集(保存失败的详细信息)返回到可以有条件地显示的 SSRS?我认为这应该可行,但我还没有尝试过。
    • 我的 SSIS 包将一个文件写入网络共享,但由于一些身份验证问题,我无法让它工作。在我放弃并使用 PowerShell 之前,我在 Kerberos 上摆弄了很长时间。
    【解决方案4】:

    从命令提示符:

    DTEXEC.EXE /F "C:\YOUR_PACKAGE.dtsx"

    此处的完整语法:http://msdn.microsoft.com/en-us/library/ms162810.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多