【发布时间】:2018-06-28 07:26:51
【问题描述】:
我有一个 SSIS 包,我目前正在使用 Visual Studio 运行它。我想知道python中是否有任何机制可以让我执行这些SSIS包。
【问题讨论】:
我有一个 SSIS 包,我目前正在使用 Visual Studio 运行它。我想知道python中是否有任何机制可以让我执行这些SSIS包。
【问题讨论】:
您可以执行调用 dtsx 包执行的 Transact-SQL 脚本。
这比其他答案有一个优势,因为您不需要访问 DTExec(这需要访问运行 SSIS 服务的机器)并且适用于其他编程语言(如果不是全部的话,大多数都允许执行 TSQL)。
唯一的要求是:
微软快速入门: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
【讨论】:
您可以使用DTExec 来运行 SSIS 包。您基本上启动了一个外部进程来运行包。您可以执行存储在 SQL Server 上的包以及文件系统上的包。这是一个非常灵活的工具,带有命令行参数以支持许多场景。
【讨论】:
DTexec 或从 Python 运行存储过程,在服务器上执行您的包。
您可以使用“执行流程任务”来执行此操作。使用以下条目
仍在努力清理错误处理,以便它可以更好地报告错误,但它正在正确处理脚本。
【讨论】:
SSIS -> Python,问题是Python -> SSIS
您可以使用批处理文件作为执行 SSIS 包的工具。首先,您需要设置批处理文件,然后在 python 中使用以下代码:
import subprocess
subprocess.call([r'full_path_to_batch_file_directory/batch_file.bat'])
【讨论】: