【问题标题】:How to execute SSIS ETL package using Python如何使用 Python 执行 SSIS ETL 包
【发布时间】:2018-06-28 07:26:51
【问题描述】:

我有一个 SSIS 包,我目前正在使用 Visual Studio 运行它。我想知道python中是否有任何机制可以让我执行这些SSIS包。

【问题讨论】:

    标签: python ssis etl


    【解决方案1】:

    您可以执行调用 dtsx 包执行的 Transact-SQL 脚本。

    这比其他答案有一个优势,因为您不需要访问 DTExec(这需要访问运行 SSIS 服务的机器)并且适用于其他编程语言(如果不是全部的话,大多数都允许执行 TSQL)。

    唯一的要求是:

    • 能够在 python(pyodbc 或类似)中连接到 SQL Server 数据库服务
    • 在 SQL Server 数据库服务中配置集成服务目录

    微软快速入门:SSIS with TSQL

    存储过程文档:catalog.create_execution

    代码示例,摘自快速入门:

    Declare @execution_id bigint
    EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Package.dtsx',
        @execution_id=@execution_id OUTPUT,
        @folder_name=N'Deployed Projects',
          @project_name=N'Integration Services Project1',
        @use32bitruntime=False,
          @reference_id=Null
    Select @execution_id
    DECLARE @var0 smallint = 1
    EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
        @object_type=50,
          @parameter_name=N'LOGGING_LEVEL',
          @parameter_value=@var0
    EXEC [SSISDB].[catalog].[start_execution] @execution_id
    GO
    
    

    【讨论】:

    • 我相信这也是最好的方法
    【解决方案2】:

    您可以使用DTExec 来运行 SSIS 包。您基本上启动了一个外部进程来运行包。您可以执行存储在 SQL Server 上的包以及文件系统上的包。这是一个非常灵活的工具,带有命令行参数以支持许多场景。

    【讨论】:

    • 谢谢,但我想用python实现它
    • @mao 我知道,但是 Python 没有任何包可以做到这一点。您最好的选择是从 Python 代码运行 DTexec 或从 Python 运行存储过程,在服务器上执行您的包。
    • @MarcelN。不确定这是否是最佳选择,我不同意,我已经添加了自己的答案。
    【解决方案3】:

    您可以使用“执行流程任务”来执行此操作。使用以下条目

    • 可执行文件:pythonw.exe
    • 参数:这将是您的脚本文件

    仍在努力清理错误处理,以便它可以更好地报告错误,但它正在正确处理脚本。

    【讨论】:

    • 问题与您的答案相反。你的答案是SSIS -> Python,问题是Python -> SSIS
    【解决方案4】:

    您可以使用批处理文件作为执行 SSIS 包的工具。首先,您需要设置批处理文件,然后在 python 中使用以下代码:

     import subprocess
     subprocess.call([r'full_path_to_batch_file_directory/batch_file.bat'])
    

    【讨论】:

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