使用 Python 执行 SAS 存储过程

Execute SAS Stored Process with Python

我知道有一种方法可以通过 SAS 存储过程 Web 应用程序调用存储过程,但我想知道是否有一种方法可以直接调用存储过程服务器。

目标是尽可能高效地调用存储过程,将数据(通过 _webout 文件?)传送到 python。所以也许它可以通过跳过 SAS Web 应用程序来减少处理时间。

我认为 SASPy 不可能(似乎正在使用 Workspace 服务器)。

此致。

有两种方法可以在代码中调用存储过程服务器,使用 Java 库和使用 .NET 库。

就我个人而言,我使用 .NET 创建了一个调用存储过程的命令行应用程序,并 returns 将流传输到 STDOUT。从 Python,您刚刚读取了该输出。您可以从 Java 复制它(但 .NET 库更易于使用)。

另一种方法是使用一个库,该库允许您从 Python 的风格中调用 Java(如果您使用的是 MS Python,则为 .NET)和以这种方式整合它。

最后,对于大多数用例,使用 STP Web 应用程序更容易。您可以登录一次,存储授权令牌,然后将其传回,从而消除每次调用重新登录的开销。

最好的办法是安装 saspy,配置 sascfg_personal.py 文件,打开一个会话,然后 运行 存储过程。像这样:

import saspy
sas = saspy.SASsession(cfgname='winiomwin')
stp = 'proc stp program="/Shared Data/Stored_Processes/your_SP"; run;'
sas_output = sas.submit(stp)
sas_log = sas_output['LOG']