使用 Python 执行 SAS 存储进程



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

目标是调用一个存储进程,该进程尽可能高效地将数据(通过_webout文件?(传递给python。因此,也许可以通过跳过SAS Web应用程序来减少处理时间。

我认为SASPy是不可能的(似乎正在使用工作区服务器(。

问候。

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

就个人而言,我已经使用 .NET 创建了一个命令行应用程序,该应用程序调用存储进程并将流返回到 STDOUT。 从 Python 中,您只需阅读该输出。 您可以从 Java 复制它(但 .NET 库更易于使用(。

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

最后,对于大多数用例,使用 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']

最新更新