我有以下问题。我们在 Enterprise Miner 中有几个流,我们希望能够知道每个流运行了多长时间。我试图创建一个可以保存开始和结束时间/日期的宏,但问题是在节点中定义的全局变量在后续节点中不再可见(因此仅在节点内部是全局变量,而不是在节点之间)。人们通常如何解决问题?有什么想法或建议吗?
谢谢,翁贝托
我有以下问题。我们在 Enterprise Miner 中有几个流,我们希望能够知道每个流运行了多长时间。我试图创建一个可以保存开始和结束时间/日期的宏,但问题是在节点中定义的全局变量在后续节点中不再可见(因此仅在节点内部是全局变量,而不是在节点之间)。人们通常如何解决问题?有什么想法或建议吗?
谢谢,翁贝托
只需将时间戳写入日志(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;
表格布局可以随心所欲,只要您可以访问它,您就可以获得统计信息。
希望能帮助到你