用Python执行SAS存储进程

用Python执行SAS存储进程,python,sas,sas-stored-process,saspy,Python,Sas,Sas Stored Process,Saspy,我知道有一种方法可以通过SAS存储过程Web应用程序调用存储过程,但我想知道是否有一种方法可以直接调用存储过程服务器 目标是调用一个存储进程,该进程(通过_webout文件?)将数据尽可能高效地传递给python。因此,也许它可以通过跳过SAS Web应用程序来减少处理时间 我认为使用SASPy(似乎使用工作区服务器)是不可能的 注意。有两种方法可以在代码中调用存储的process server,使用Java库和.NET库 就我个人而言,我使用.NET创建了一个命令行应用程序,它调用存储的进程并

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

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

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


注意。

有两种方法可以在代码中调用存储的process server,使用Java库和.NET库

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

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


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

您最好安装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']

谢谢你有任何参考教程或例子来做这件事吗?不熟悉C#或Java。请查看SAS文档。如果您对此有任何疑问,我建议您与SAS技术支持部门联系。