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

使用RSUBMIT并行执行SAS任务,如何获取远程服务器详细运行日志?

SAS并行执行获取远程任务详细日志解决方案

问题分析

当前代码中,远程SAS会话通过-nonotes参数抑制了详细日志输出,且RSUBMIT未正确配置日志存储路径,导致仅能看到任务启动/完成状态,无法获取%dataprep宏内数据步的运行细节。直接添加log=mylog报错通常是因为路径指向本地而非远程,或远程路径无读写权限。

解决步骤

  1. 移除远程SAS的日志抑制参数
    将主宏中的sascmd参数修改为:

    options fullstimer sascmd ='!sascmd -nonews' autosignon;
    

    去掉-nonotes,让远程SAS会话输出完整日志信息。

  2. 为每个远程任务指定独立日志文件
    在RSUBMIT语句中添加log参数,指定远程服务器上的有效路径(需确保该路径存在且当前用户有读写权限):

    rsubmit ts&num wait=no connectpersist=no inheritlib=(ACAPS  central arcinp ALSCO ALSleg ALSDTLTB ALSEXTRA ALSSPLIT ALSCOMMT ALSMONTH prjlib pop) sysrputsync=yes log="/remote/logs/ts&num._&date..log";
    

    每个远程任务生成独立日志,避免日志覆盖。

  3. 强制开启宏内日志输出
    在%dataprep宏内添加options notes;,确保数据步的详细信息被记录:

    %macro dataprep;
    options notes;
    DATA ACAPS_CONCATENATION_&date.; SET acaps.ACAPS_ASOF&def_mth_end.; DROP ACCT_NUM PROD_CD_APPRV; RUN;
    DATA ACAPS_LEGACY_&date.; SET acaps.ACAPS_LEGACY_DTL; RUN;
    %mend dataprep;
    
  4. (可选)将远程日志下载到本地
    在endrsubmit后添加PROC DOWNLOAD,把远程日志文件同步到本地,方便查看:

    proc download data=none infile="/remote/logs/ts&num._&date..log" outfile="/local/logs/ts&num._&date..log" server=ts#
    run;
    

修改后的完整代码

%MACRO BAD_LEGACY(START= , END= );
options fullstimer sascmd ='!sascmd -nonews' autosignon;

%DO DATE = &START %TO &END;
%let num=%SYSEVALF((%SUBSTR(&DATE,1,4) -%SUBSTR(&start,1,4))*12 + (%SUBSTR(&DATE,5,2) -  %SUBSTR(&start,5,2))+1 );
%IF %SUBSTR(&DATE,5,2) GE 01 AND %SUBSTR(&DATE,5,2) LE 12 %THEN
%DO;

signon ts&num signonwait=YES;
%syslput def_mth_end = &def_mth_end;
%syslput START= &start;
%syslput end= &end;
%syslput date= &date;

%SYSLPUT _LOCAL_/REMOTE=ts#
rsubmit ts&num wait=no connectpersist=no inheritlib=(ACAPS  central arcinp ALSCO ALSleg ALSDTLTB ALSEXTRA ALSSPLIT ALSCOMMT ALSMONTH prjlib pop) sysrputsync=yes log="/remote/logs/ts&num._&date..log";
%INCLUDE '$SASUSER_HOME/parmfile.inc';
LIBNAME CCRD ORACLE USER=&eid_CCRD. PASSWORD =&PWD_CCRD. PATH=F3RDPROD SCHEMA='OPS$F3RDPROD';

%macro dataprep;
options notes;
DATA ACAPS_CONCATENATION_&date.; SET acaps.ACAPS_ASOF&def_mth_end.; DROP ACCT_NUM PROD_CD_APPRV; RUN;
DATA ACAPS_LEGACY_&date.; SET acaps.ACAPS_LEGACY_DTL; RUN;
%mend dataprep;
%dataprep;
endrsubmit;

/* 可选:下载远程日志到本地 */
proc download data=none infile="/remote/logs/ts&num._&date..log" outfile="/local/logs/ts&num._&date..log" server=ts#
run;

%END;
%END;
waitfor _all_ ;
signoff _all_ ; 
%MEND;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 14:35:38