运行 在 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 布局可以随心所欲地复杂,只要您可以访问它就可以获得统计信息。
希望对您有所帮助
我有以下问题。我们在 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 布局可以随心所欲地复杂,只要您可以访问它就可以获得统计信息。
希望对您有所帮助