我有以下问题。我们在Enterprise Miner中有几个流,我们希望能够分辨每次运行多长时间。我试图创建一个可以保存开始和结束时间/日期的宏,但问题是在节点中定义的全局变量在后续节点中不再被看到(因此仅在节点内部是全局的,但在节点之间不是)。人们通常如何解决问题?有什么想法或建议吗?
谢谢,翁贝托
答案 0 :(得分:1)
只写出时间戳记录(EM应该以与EG和DI相同的方式生成全局日志)
使用:
data _null_;
datetime = datetime();
put datetime= datetime20.;
run;
或宏语言:
%put EM node started at at %sysfunc(time(),timeampm.) on %sysfunc(date(),worddate.).;
使用高度自定义的消息,您已阅读SAS中的日志,使用正则表达式查找这些字符串。
解决方案2:
其他选项是在库中创建一个表,例如从EM和EG可见,并在进程的开头/结尾插入sql。
proc sql;
create table EM_logger
(jobcode char(100),
timestamp num informat=datetime20. format=datetime20.);
quit;
proc sql;
insert into EM_logger values('Begining Linear Reg',%sysfunc(datetime()));
quit;
data w;
do i=1 to 10000000;
output;
end;
run;
proc sql;
insert into EM_logger values('End Linear Reg',%sysfunc(datetime()));
quit;
表布局可以根据需要进行复杂化,只要您可以访问它,就可以获得统计信息。
希望有所帮助