Автоматические Запланированные Запросы SAS - PullRequest
2 голосов
/ 20 января 2012

Я запускаю несколько запросов SAS ежемесячно, и все они выполняются довольно долго.Мне было интересно, есть ли способ запланировать их выполнение на определенную дату каждый месяц в определенном порядке?

Спасибо за помощь!

Ответы [ 2 ]

3 голосов
/ 20 января 2012

В Unix вы можете настроить запуск программ в пакетном режиме с заданием cron.

Один из приемов, который вы могли бы использовать, - настроить основную программу SAS для запуска всего. Создайте одну программу, которая содержит только глобальные переменные, которые нужно менять каждый месяц, а затем вызовите ваши ежемесячные программы с помощью include. что-то вроде:

%let globalvar1 = ThisMonth;
%let globalvar2 = LastMonth;

%include '/path/to/sas/program1';
%include '/path/to/sas/program2';

Затем вы запускаете только одну программу в пакетном режиме ... она будет запускать их в правильном порядке и автоматически ждать, пока они завершат выполнение, прежде чем перейти к следующей программе (настройка отдельных заданий cron потребует от вас переоценки продолжительности каждый берет, чтобы они не конфликтовали).

Это сбросит все в один файл журнала ... который может быть хорошим или плохим. Другой вариант - использовать X для вызова программы из ОС при каждом запуске.

Я не на 100% по синтаксису, но это должно сработать, если вы используете правильный синтаксис для вашей ОС (это может работать на Unix или Windows, поэтому вам нужно будет запланировать только одну программу).

В конце каждой программы просто добавьте:

X "Path/to/sas.exe" -batch -noterminal nextProgram.sas

Это позволит вам объединить программы в очередь, чтобы они запустили следующую программу после их завершения. Затем вы просто используете планировщик задач / cron для запуска "sas.exe -batch -noterminal firstProgram.sas"

Вот случайное руководство, которое я нашел в планировщике задач Windows: http://www.iopus.com/guides/winscheduler.htm
Просто укажите на SAS.exe, а затем на шаге 2 измените параметры на что-то вроде -batch -noterminal /path/to/Program.sas. Я на 95% уверен, что это правильный синтаксис в windows sas (я использую unix, поэтому не могу его проверить).

3 голосов
/ 20 января 2012

В зависимости от того, с какой системой вы работаете, методы могут отличаться.

Основная идея заключается в том, что вы можете сохранить все запросы в файле обработки SAS, а затем использовать системный планировщик (например, планировщик задач для Windows), для запуска ежемесячно.

Быстрая помощь (для Windows): http://analytics.ncsu.edu/sesug/2006/CC04_06.PDF

...