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 に答える