Så kör du SAS-kod på Linux

De flesta svar på den här frågan förutsätter att du redan har SAS och bara vill ha det utan gränssnitt. Det här svaret är för det andra fallet: programmen finns, licensen gör det inte, och jobbet måste ändå köras på servern i natt.

Det korta svaret

Jenner är en enda binär. Lägg den på servern, peka den mot en .sas-fil och den körs — inget grafiskt gränssnitt, ingen skärm, ingen licensserver att nå och inget att checka ut vid start. Den avslutas med ett värde skilt från noll när programmet misslyckas, och det är den del en schemaläggare faktiskt bryr sig om. Om du fortfarande jämför namnger frågorna nedan varje väg en Linux-användare har, även de som inte är vi.

Byggd för hur Linux-arbete faktiskt körs

Anropa den från cron, från en systemd-timer, från en Airflow-task, från ett GitHub Actions-jobb eller inifrån en container. Den läser från stdin och skriver till stdout och en loggfil, så den kombineras med verktygen som redan finns på maskinen i stället för att kräva en session.

Vad som körs på Linux

Jenner är SAS-kompatibelt: språket dina program redan är skrivna i, kört på servern med samma sats- och optionsnamn som du använder i dag.

DATA-steg, PROC SQL och makron

Språkets kärna körs som den är skriven — DATA-stegslogik, arrayer, format och informat, makrofunktionen och PROC SQL. Kod skriven mot SAS 9.4-syntax behöver inget portningssteg.

100 procedurer

Regression och linjära modeller, överlevnadsanalys, multivariata metoder och klustring, tidsserier, kvalitetsstyrning, sammanfattning och rapportering. Varje procedur har en publicerad referenssida, så ett schemalagt jobbs beroenden kan kontrolleras innan det schemaläggs.

Filerna som redan finns på servern

Jenner läser och skriver SAS7BDAT och XPT direkt, vid sidan av CSV och Parquet. Datamängder på en monterad volym eller i ett objektlager behöver inte konverteras, och utdata kan skrivas tillbaka i det format som nästa jobb förväntar sig.

Samma program som analytikern skrev

Samma källkod körs på Linux, macOS och Windows. Ett program som utvecklats på någons laptop körs oförändrat som schemalagt jobb här, vilket tar bort omskrivningen som annars ligger mellan analys och produktion.

Resultat du kan visa

Jenner klarar alla 58 datamängder i NIST Statistical Reference Datasets-benchmarken, den gängse oberoende noggrannhetssviten för statistisk programvara. Procedurreferensen är publicerad i sin helhet, så påståendet att en bestämd PROC stöds går att kontrollera innan du lägger in den i en pipeline.

Vanliga frågor

Installera Jenner-binären och kör den mot filen. Det är en oberoende implementation av SAS-språket och kör .sas-program direkt på Linux utan att SAS finns och utan SAS-licens. Ingenting konverteras i förväg.

Ja. Linux är en plattform som stöds av SAS 9.4, så det här är inte ett plattformsproblem på samma sätt som Apple silicon. Hindret är licensen, och på en server ofta även licensservern: en maskin som inte når den kör inte.

Ja. Det finns inget grafiskt gränssnitt och ingenting som vill ha en skärm. Det är ett vanligt kommandoradsprogram, och det är vad som gör det användbart på en maskin du bara når via SSH.

Nej. Jenner är en clean room-implementation av SAS-språket och varken bäddar in, omsluter eller anropar SAS-programvara. Det finns ingen licens att förnya och ingen licensserver som jobbet kan misslyckas mot klockan två på natten.

Kopiera in binären i bilden och anropa den som entrypoint eller från ditt eget skript. Den behöver varken en daemon, en skärm eller ett nätverksanrop för att starta, så en container som kör den är lika liten och reproducerbar som basbilden du valde.

Ja, och det är ett vanligt skäl att hamna här. Eftersom det är en binär med en meningsfull exitkod kan ett CI-jobb köra ett .sas-program som byggsteg och låta pipelinen misslyckas när programmet misslyckas. Schemaläggning från cron, en systemd-timer eller Airflow fungerar likadant.

Ja. Ett program som misslyckas avslutas med ett värde skilt från noll, så cron-mailet, en systemd-unit eller ett pipelinesteg ser felet i stället för en ren körning med ett fel begravt i loggen. Det är värt att kontrollera på allt du inför: en logg full av rött och en exitkod på noll är hur nattliga fel förblir osynliga.

Det är avsikten. Samma källkod körs på Linux, macOS och Windows, så analytikerns fil och det schemalagda jobbets fil är samma fil. Täckningen är inte hela språket, så det ärliga sättet att bekräfta det för din kod är att köra den på båda ställena och jämföra loggarna.

Altair SLC kör också program i SAS-språket utan SAS-licens, Linux inkluderat, och har gjort det betydligt längre än vi. För en serverpark där någon annans gränsfall redan har påträffats och åtgärdats är den erfarenheten värd riktiga pengar. Jämför båda. Siemens säljer det numera som Rapidminer SLC, så sök under båda namnen.

Ofta ja, och på en server är det mer lockande än annars eftersom verktygen runtomkring redan är Python. Är SAS-koden liten, eller lämnar teamet SAS ändå, skriv om den. Argumentet för att köra den som den är väger tyngst när det finns mycket av den, den är validerad, och en omskrivning innebär omvalidering och inte bara omkodning.

Kör dina SAS-program på dina Linux-servrar

En binär, ingen licensserver, och en exitkod din schemaläggare kan lita på.

Starta gratis provperiod