运行 在 SAS Enterprise Miner 中的持续时间

Run Duration in SAS enterprise miner

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

谢谢,翁贝托

只需将时间戳写到日志中(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 中的日志,使用正则表达式查找这些字符串。

方案二:

其他选项是在库中创建一个 table,例如从 EM 和 EG 可见,并在您的过程的 beginning/end 插入 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;

Table 布局可以随心所欲地复杂,只要您可以访问它就可以获得统计信息。

希望对您有所帮助