Sådan kører du SAS-kode på Linux

De fleste svar på dette spørgsmål går ud fra, at du allerede har SAS og bare vil have det uden brugerflade. Dette svar er til det andet tilfælde: programmerne findes, licensen gør ikke, og jobbet skal alligevel køre på serveren i nat.

Det korte svar

Jenner er én binær. Læg den på serveren, peg den mod en .sas-fil, og den kører — ingen grafisk brugerflade, ingen skærm, ingen licensserver at nå og intet at checke ud ved opstart. Den afslutter med en værdi forskellig fra nul, når programmet fejler, og det er den del, en planlægger faktisk går op i. Hvis du stadig sammenligner, nævner spørgsmålene nedenfor hver vej, en Linux-bruger har — også dem, der ikke er os.

Bygget til den måde, Linux-arbejde faktisk køres på

Kald den fra cron, fra en systemd-timer, fra en Airflow-opgave, fra et GitHub Actions-job eller inde fra en container. Den læser fra stdin og skriver til stdout og en logfil, så den kombineres med værktøjerne, der allerede er på maskinen, i stedet for at kræve en session.

Hvad der kører på Linux

Jenner er SAS-kompatibelt: sproget dine programmer allerede er skrevet i, kørt på serveren med de samme sætnings- og optionsnavne, du bruger i dag.

DATA-trin, PROC SQL og makroer

Sprogets kerne kører, som den er skrevet — DATA-trinslogik, arrays, formater og informater, makrofaciliteten og PROC SQL. Kode skrevet mod SAS 9.4-syntaks kræver ikke et porteringstrin.

100 procedurer

Regression og lineære modeller, overlevelsesanalyse, multivariate metoder og klyngedannelse, tidsserier, kvalitetsstyring, opsummering og rapportering. Hver procedure har en offentliggjort referenceside, så et planlagt jobs afhængigheder kan tjekkes, før det planlægges.

Filerne, der allerede ligger på serveren

Jenner læser og skriver SAS7BDAT og XPT direkte, ved siden af CSV og Parquet. Datasæt på et monteret volumen eller i et objektlager behøver ikke konvertering, og output kan skrives tilbage i det format, det næste job forventer.

Det samme program, analytikeren skrev

Den samme kildekode kører på Linux, macOS og Windows. Et program udviklet på nogens bærbare kører uændret som planlagt job her, hvilket fjerner den omskrivning, der ellers ligger mellem analyse og produktion.

Resultater, du kan påvise

Jenner består alle 58 datasæt i NIST Statistical Reference Datasets-benchmarken, den gængse uafhængige nøjagtighedssuite for statistisk software. Procedurereferencen er offentliggjort i fuld længde, så påstanden om, at en bestemt PROC understøttes, kan kontrolleres, før du lægger den i en pipeline.

Ofte stillede spørgsmål

Installér Jenner-binæren og kør den mod filen. Det er en uafhængig implementering af SAS-sproget og kører .sas-programmer direkte på Linux uden SAS til stede og uden SAS-licens. Intet konverteres på forhånd.

Ja. Linux er en understøttet platform for SAS 9.4, så det er ikke et platformsproblem på samme måde som Apple silicon. Forhindringen er licensen, og på en server ofte også licensserveren: en maskine, der ikke kan nå den, kører ikke.

Ja. Der er ingen grafisk brugerflade og intet, der vil have en skærm. Det er et almindeligt kommandolinjeprogram, og det er dét, der gør det brugbart på en maskine, du kun når via SSH.

Nej. Jenner er en clean room-implementering af SAS-sproget og hverken indlejrer, indkapsler eller kalder SAS-software. Der er ingen licens at forny og ingen licensserver, jobbet kan fejle mod klokken to om natten.

Kopiér binæren ind i imaget og kald den som entrypoint eller fra dit eget script. Den behøver hverken en dæmon, en skærm eller et netværkskald for at starte, så en container, der kører den, er lige så lille og reproducerbar som det basisimage, du valgte.

Ja, og det er en hyppig grund til at ende her. Fordi det er én binær med en meningsfuld exitkode, kan et CI-job køre et .sas-program som byggetrin og lade pipelinen fejle, når programmet fejler. Planlægning fra cron, en systemd-timer eller Airflow fungerer på samme måde.

Ja. Et program, der fejler, afslutter med en værdi forskellig fra nul, så cron-mailen, en systemd-unit eller et pipelinetrin ser fejlen i stedet for en ren kørsel med en fejl begravet i loggen. Det er værd at tjekke på alt, du indfører: en log fuld af rødt og en exitkode på nul er, hvordan natlige fejl forbliver usynlige.

Det er hensigten. Den samme kildekode kører på Linux, macOS og Windows, så analytikerens fil og det planlagte jobs fil er den samme fil. Dækningen er ikke hele sproget, så den ærlige måde at bekræfte det for din kode på er at køre den begge steder og sammenligne loggene.

Altair SLC kører også SAS-sprogsprogrammer uden SAS-licens, Linux inklusive, og har gjort det langt længere end os. For en serverpark, hvor en andens grænsetilfælde allerede er stødt på og rettet, er den erfaring rigtige penge værd. Sammenlign begge. Siemens sælger det nu som Rapidminer SLC, så søg under begge navne.

Ofte jo, og på en server er det mere fristende end andre steder, fordi værktøjerne omkring allerede er Python. Er SAS-koden lille, eller forlader teamet SAS alligevel, så skriv den om. Argumentet for at køre den, som den er, vejer tungest, når der er meget af den, den er valideret, og en omskrivning betyder en ny validering og ikke blot ny kodning.

Kør dine SAS-programmer på dine Linux-servere

Én binær, ingen licensserver, og en exitkode, din planlægger kan stole på.

Start gratis prøveperiode