Jak uruchomić kod SAS w systemie Linux

Większość odpowiedzi na to pytanie zakłada, że masz już SAS i chcesz go tylko bez interfejsu. Ta jest dla drugiego przypadku: programy istnieją, licencja nie, a zadanie i tak musi wykonać się dziś w nocy na serwerze.

Krótka odpowiedź

Jenner to jeden plik binarny. Umieść go na serwerze, wskaż mu plik .sas i zostanie uruchomiony — bez interfejsu graficznego, bez ekranu, bez serwera licencji do osiągnięcia i bez niczego do zarezerwowania przy starcie. Kończy się wartością różną od zera, gdy program zawiedzie, a to jest ta część, na której naprawdę zależy harmonogramowi. Jeśli wciąż porównujesz, pytania poniżej wymieniają każdą drogę, którą ma użytkownik systemu Linux, także te, którymi nie jesteśmy my.

Zbudowany pod to, jak praca w systemie Linux jest naprawdę uruchamiana

Wywołaj go z crona, z timera systemd, z zadania Airflow, z zadania GitHub Actions albo z wnętrza kontenera. Czyta ze standardowego wejścia (stdin) i zapisuje na standardowe wyjście (stdout) oraz do pliku dziennika, więc składa się z narzędziami już obecnymi na maszynie, zamiast domagać się sesji.

Co działa w systemie Linux

Jenner jest zgodny z SAS: to język, w którym twoje programy są już napisane, uruchamiany na serwerze z tymi samymi nazwami instrukcji i opcji, których używasz dziś.

Kroki DATA, PROC SQL i makra

Rdzeń języka działa tak, jak został napisany — logika kroku DATA, tablice, formaty i informaty, mechanizm makr oraz PROC SQL. Kod napisany zgodnie ze składnią SAS 9.4 nie wymaga etapu przenoszenia.

Procedury: 100

Regresja i modele liniowe, analiza przeżycia, metody wielowymiarowe i analiza skupień, szeregi czasowe, kontrola jakości, podsumowania i raportowanie. Każda procedura ma opublikowaną stronę referencyjną, więc zależności zaplanowanego zadania można sprawdzić przed jego zaplanowaniem.

Pliki, które już są na serwerze

Jenner odczytuje i zapisuje pliki SAS7BDAT i XPT bezpośrednio, a także CSV i Parquet. Zbiory danych na zamontowanym wolumenie lub w magazynie obiektowym nie wymagają konwersji, a wynik można zapisać w formacie, którego oczekuje kolejne zadanie.

Ten sam program, który napisał analityk

Ten sam kod źródłowy działa w systemach Linux, macOS i Windows. Program opracowany na czyimś laptopie działa tutaj bez zmian jako zaplanowane zadanie, co usuwa przepisywanie, które zwykle stoi między analizą a produkcją.

Wyniki, które możesz wykazać

Jenner przechodzi wszystkie 58 zbiorów danych z testu porównawczego NIST Statistical Reference Datasets, standardowego niezależnego zestawu do oceny dokładności oprogramowania statystycznego. Dokumentacja procedur jest opublikowana w całości, więc twierdzenie, że konkretna procedura PROC jest obsługiwana, można sprawdzić przed umieszczeniem jej w potoku.

Najczęściej zadawane pytania

Zainstaluj plik binarny Jennera i uruchom go na pliku. To niezależna implementacja języka SAS, więc wykonuje programy .sas bezpośrednio w systemie Linux bez obecnego SAS i bez licencji SAS. Nic nie jest wcześniej konwertowane.

Tak. Linux jest platformą obsługiwaną przez SAS 9.4, więc nie jest to problem platformy w takim sensie jak Apple silicon. Przeszkodą jest licencja, a na serwerze zwykle także serwer licencji: maszyna, która go nie osiągnie, nie uruchomi zadania.

Tak. Nie ma interfejsu graficznego ani niczego, co chciałoby ekranu. To zwykły program wiersza poleceń i właśnie to czyni go użytecznym na maszynie, do której docierasz wyłącznie przez SSH.

Nie. Jenner jest implementacją języka SAS wykonaną metodą clean room i nie osadza, nie opakowuje ani nie wywołuje oprogramowania SAS. Nie ma licencji do odnowienia ani serwera licencji, względem którego zadanie mogłoby zawieść o drugiej w nocy.

Skopiuj plik binarny do obrazu i wywołaj go jako punkt wejścia albo z własnego skryptu. Do startu nie potrzebuje demona, ekranu ani wywołania sieciowego, więc kontener, który go uruchamia, jest tak mały i powtarzalny jak wybrany obraz bazowy.

Tak i jest to częsty powód, dla którego ludzie tu trafiają. Ponieważ jest to jeden plik binarny ze znaczącym kodem wyjścia, zadanie CI może uruchomić program .sas jako krok budowania i unieważnić potok, gdy program zawiedzie. Planowanie z crona, timera systemd lub Airflow działa tak samo.

Tak. Program, który zawiedzie, kończy się wartością różną od zera, więc poczta crona, jednostka systemd lub krok potoku widzi awarię zamiast czystego przebiegu z błędem zakopanym w dzienniku. Warto to sprawdzić we wszystkim, co wdrażasz: dziennik pełen czerwieni i zerowy kod wyjścia to sposób, w jaki nocne awarie pozostają niewidoczne.

Taki jest zamiar. Ten sam kod źródłowy działa w systemach Linux, macOS i Windows, więc plik analityka i plik zaplanowanego zadania to ten sam plik. Zakres obsługi nie obejmuje całego języka, więc uczciwym sposobem potwierdzenia tego dla twojego kodu jest uruchomienie go w obu miejscach i porównanie dzienników.

Altair SLC również uruchamia programy w języku SAS bez licencji SAS, w tym w systemie Linux, i robi to znacznie dłużej niż my. Dla parku serwerów, gdzie czyjś przypadek brzegowy już wystąpił i został naprawiony, takie doświadczenie jest warte realnych pieniędzy. Porównaj oba rozwiązania. Siemens sprzedaje go teraz jako Rapidminer SLC, więc warto szukać pod obiema nazwami.

Często tak, a na serwerze jest to bardziej kuszące niż gdzie indziej, bo otaczające narzędzia i tak są w Pythonie. Jeśli kodu SAS jest niewiele albo zespół i tak odchodzi od SAS, przepisz go. Argument za uruchamianiem go w obecnej postaci jest najmocniejszy, gdy kodu jest dużo, jest zwalidowany, a przepisanie oznacza ponowną walidację, a nie tylko ponowne zakodowanie.

Uruchom swoje programy SAS na serwerach z systemem Linux

Jeden plik binarny, żadnego serwera licencji i kod wyjścia, któremu twój harmonogram może zaufać.

Rozpocznij bezpłatny okres próbny