You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SAS EG/Viya中如何传入不同参数并行运行同一SAS程序

SAS多周期脚本并行运行方案解答

SAS EG 环境下的多参数并行支持

SAS EG 支持传入不同参数实现同一脚本的并行运行,你不需要调整单月%run_script的内部逻辑,两种常用落地方式:

  • 流程画布并行分支:在EG流程设计界面,将核心计算脚本多次拖入画布,为每个脚本副本单独配置程序参数,绑定对应月份的period宏变量值;将所有脚本副本的上游依赖统一指向公共初始化节点(比如Oracle连接配置、公共宏编译节点),在流程设置中开启「并行执行独立分支」,提交后EG会为每个分支分配独立SAS会话,自动实现多月份任务并行计算。
  • SAS/CONNECT 远程提交:如果觉得手动搭上百个月份的分支太麻烦,可以写一个控制脚本,通过signon语句创建多个独立的SAS远程会话,循环为每个会话传入不同月份参数,用rsubmit块提交对应月份的%run_script调用,还可以自定义最大并发数,避免资源占满。

针对你现有任务逻辑的补充说明:因为每个月份任务只会删除、写入Oracle Result表中对应月份的独立数据范围,只要Oracle侧没有跨月的表锁,并行运行不会出现写入冲突,按月分区的Oracle表还能进一步降低并行IO争抢的概率。

SAS Viya Background Submit 功能适配性

你提到的Viya后台提交功能完全可以用来实现多周期并行,适配性比传统EG方案更好:

  • 你只需要把包含公共宏定义、Oracle连接配置、%run_script调用逻辑的代码保存为独立的.sas程序,每次提交后台任务前传入对应月份的period宏参数即可,多次提交不同参数的任务会自动调度到独立的计算节点运行,互不干扰。
  • 官方备注提到的「后台任务生成的库表不在SAS Studio导航窗格显示」对你的场景没有任何影响:你的中间计算结果都存在后台会话的临时WORK库,会话结束自动释放,最终计算结果直接写入Oracle Result表,不需要依赖SAS侧的持久化库表做导航展示。

实操注意事项:不要一次性提交全部100+月份的任务,建议初始并发设置为8-12,压测观察SAS计算节点、Oracle服务器的CPU、IO、连接数负载,再逐步调整到最优并发值。建议给每个后台任务加上对应月份的命名后缀,方便在监控面板快速定位失败任务、查看单月运行进度。

内容的提问来源于stack exchange,提问作者Kermit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 15:30:53