毎月SASクエリを実行していますが、実行にかなりの時間がかかります。毎月特定の日付に特定の順序で実行するようにこれらのスケジュールを設定する方法があるかどうか疑問に思っていましたか?自動スケジュールされたSASクエリ
ありがとうございました!
毎月SASクエリを実行していますが、実行にかなりの時間がかかります。毎月特定の日付に特定の順序で実行するようにこれらのスケジュールを設定する方法があるかどうか疑問に思っていましたか?自動スケジュールされたSASクエリ
ありがとうございました!
あなたはcronジョブをバッチモードで実行するようにプログラムを設定することができます。
あなたが使用できるトリックは、すべてを実行するためのマスターSASプログラムをセットアップすることです。 毎月変更する必要のあるグローバル変数だけを含む1つのプログラムを作成し、次にincludesを使用して毎月のプログラムを呼び出します。 何かのように:次に
%let globalvar1 = ThisMonth;
%let globalvar2 = LastMonth;
%include '/path/to/sas/program1';
%include '/path/to/sas/program2';
あなたはバッチでこれだけのプログラムを実行する...それは正しい順序でそれらを実行すると、自動的に次のプログラムに移動する前に実行を完了するために彼らのために待機します(別のcronを設定しますあなたが争うことがないように、それぞれの所要時間を過大評価する必要があります)。
これはすべてを1つのログファイルにダンプします。これは良いか悪いかを示します。 別のオプションは、実行ごとにOSからプログラムを呼び出すためにX
を使用することです。
私は構文上100%ではありませんが、あなたのOSに正しい構文を使用すると、これはうまくいくはずです(これはUNIXやWindowsで動作するので、1つのプログラムをスケジュールするだけです)。各プログラムの終わりに
はちょうど追加:X "Path/to/sas.exe" -batch -noterminal nextProgram.sas
これは、彼らが終了した後、実行している次のいずれかを起動するように、あなたが一緒にプログラムをチェーンできるようになります。ただ、SAS.exeを指すように http://www.iopus.com/guides/winscheduler.htm
:次に、あなただけの「sas.exe -batch -noterminal firstProgram.sas」ここ
私は、Windowsのタスクスケジューラで見つかったランダムなチュートリアルがあるを開始するには、タスクスケジューラ/ cronを使用しますステップ#2でオプションを-batch -noterminal /path/to/Program.sas
のように変更してください。Windows sasの正しい構文であることを95%確信しています(私はUNIXを使用しているため、チェックできません)。
どのシステムで作業しているかによって、方法が異なる場合があります。
主な考え方は、すべてのクエリをSAS処理ファイルに保存してから、システムのスケジューラ(Windowsのタスクスケジューラなど)を使用して毎月実行できることです。
(Windows用)クイックヘルプ:UNIX上で http://analytics.ncsu.edu/sesug/2006/CC04_06.PDF
各インクルードの前に 'proc printto = '/ path/to/log/logfile.txt'; run;'を付けて、ログを別のファイルにリダイレクトすることができます。ログをデフォルトの場所にリセットするには、最後に 'proc printto; run;'を実行してください。 –
窓でこれを行う方法の詳細を教えてください。申し訳ありませんが、私はSAS初心者です。 – Adam
私はあまりにも(私はUNIX上でcronでそれを行うことができます)ウィンドウのタスクをスケジューリングに慣れていると言うことはできませんが、基本的にWindowsタスクスケジューラを使用して "C:/SasDir/sas.exe" batch -noterminal C:/ Programdir/program.sas'を実行するか、同じコマンドを実行するバッチファイルを実行します。 – orh