0

我有以下问题。我们在 Enterprise Miner 中有几个流,我们希望能够知道每个流运行了多长时间。我试图创建一个可以保存开始和结束时间/日期的宏,但问题是在节点中定义的全局变量在后续节点中不再可见(因此仅在节点内部是全局变量,而不是在节点之间)。人们通常如何解决问题?有什么想法或建议吗?

谢谢,翁贝托

4

1 回答 1

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;

表格布局可以随心所欲,只要您可以访问它,您就可以获得统计信息。

希望能帮助到你

于 2016-06-13T10:03:31.433 回答