Een SAS Viya-alternatief voor gehost werk

Wie een Viya-alternatief zoekt, zoekt meestal niet iets om op een laptop te zetten. Er is werk in de SAS-taal dat ergens centraal draait: een browser waarin iemand inlogt, of een pipeline die een platform aanroept en op resultaten wacht. Jenner dekt allebei: een gehoste JupyterLab-workspace en een HTTP-endpoint dat een programma uitvoert en de uitvoer teruggeeft.

Het korte antwoord

Jenner is een clean-room-implementatie van de SAS 9.4-taal, geschreven in Rust, en het is gehost. Je team logt in op een JupyterLab-workspace in de browser, opent een programma dat er al is en voert het uit — niets geïnstalleerd op wiens machine dan ook en op geen enkele laag een SAS-licentie. Dezelfde engine antwoordt via HTTP, zodat een geplande job of een AI-agent een programma kan sturen en het log, de listing en de geproduceerde datasets kan teruglezen.

Wie inlogt en wat er draait

Een workspace is gedeeld: analist, reviewer en statisticus werken aan dezelfde bestanden in plaats van datasets rond te mailen. Programma's blijven in SAS-syntaxis — DATA-stappen, PROC SQL, de macrotaal — en de workspace leest SAS7BDAT en XPT rechtstreeks, naast CSV en Parquet. Waar een laptop echt de juiste plek is voor een deel van het werk, bestaat dezelfde engine als native Mac-app: gehost en lokaal sluiten elkaar niet uit.

Wat de gehoste kant je geeft

Drie manieren om bij één engine te komen. Welke je kiest is een deploymentvraag, geen herschrijving.

Een JupyterLab-workspace in de browser

Inloggen zet je in JupyterLab, met de bestanden van je organisatie en een Jenner-kernel die er al aan hangt. Er wordt op geen enkele machine iets geïnstalleerd, en dat is meestal precies het punt: een nieuwe collega krijgt een werkende omgeving uit één browsertab, en een dichtgetimmerde bedrijfslaptop is een even goede client als een workstation.

Programma's uitgevoerd via HTTP

De engine beantwoordt ook HTTP-verzoeken. Stuur een programma en zijn invoer en je krijgt de listing, het log, een exitcode en elke geproduceerde dataset terug, als gestructureerde JSON. Dat maakt het bruikbaar vanuit een orchestrator, een CI-job of een AI-agent — geen van drieën kan voor een interactieve sessie gaan zitten wachten tot een mens klikt.

100 gedocumenteerde procedures

De catalogus is procedure voor procedure gepubliceerd, elk met een referentiepagina die de ondersteunde statements en opties noemt. Op een gehost platform telt dat zwaarder dan een kopnummer: voordat een workload verhuist is de vraag of díe PROC, met díe opties, er is — en dat beslis je lezend, voordat iemand iets tekent.

De bestanden die je al hebt

Jenner leest SAS7BDAT rechtstreeks, plus XPT, CSV en Parquet, en schrijft ze terug. Een dataset bereikt de workspace zonder eerst een conversiestap, en uitvoer kan weer vertrekken in het formaat dat de volgende stap verwacht.

Waar iets anders beter past

Vier situaties waarin wij niet het juiste antwoord zijn. Weten in welke je zit is meer waard dan een functietabel.

Altair SLC

Altair SLC, vroeger WPS, draait SAS-taalprogramma's ook zonder SAS-licentie, en doet dat veel langer dan wij. Waar een lange staat van dienst je meer waard is dan een gehoste workspace — iemand anders is al tegen jouw randgeval aangelopen en heeft het laten oplossen — is dat een echt argument in hun voordeel, en hoor je beide door te rekenen op je eigen programma's.

Herschrijven in Python of R

Als de codebase klein is, of je toch al ging herbouwen, herschrijf hem dan in Python of R. Twintig programma's naar pandas of de tidyverse halen is twee weken werk en sluit de vraag definitief af, op een stack waarvoor makkelijker te werven valt. Code in de SAS-taal draaien zoals hij is wint wanneer er veel van is, wanneer hij gevalideerd is, en wanneer herschrijven zou betekenen dat elk getal opnieuw gevalideerd moet worden in plaats van alleen overgetypt.

Blijven waar je zit

SAS beschrijft Viya als een platform met visuele tooling en modelbeheer bovenop de taal. Als de mensen die het gebruiken in die schermen werken in plaats van in code, vervangt een SAS-taalengine de verkeerde helft van wat zij aanraken, en kost verhuizen meer dan het oplevert. Teams van wie het gebruik uit programma's bestaat — DATA-stappen, PROCs, macro's — zijn degenen voor wie deze pagina geschreven is.

Wat we niet dekken

Jenner implementeert 100 gedocumenteerde procedures en een groot deel van de SAS-taal, en geen van beide is het geheel. Waar je werk afhangt van iets dat wij niet gebouwd hebben, draait het niet, en dat merk je de eerste middag in plaats van na een project. We zijn ook jonger dan de hier genoemde alternatieven, met minder jaren andermans randgevallen achter ons. De procedurereferentie is volledig gepubliceerd, dus dekking valt te controleren voordat er iets is toegezegd.

Veelgestelde vragen

Jenner, als wat je met Viya feitelijk doet het draaien van SAS-taalprogramma's is. Het is een clean-room-implementatie van de SAS 9.4-taal in Rust, gehost als JupyterLab-workspace waarop je team inlogt, en via HTTP bereikbaar voor alles wat geautomatiseerd is. Op geen enkele laag is een SAS-licentie nodig. Is je gebruik vooral klikwerk in plaats van code, dan is de sectie hierboven over blijven waar je zit het eerlijkere antwoord.

De programma's wel. DATA-stappen, PROC SQL, de macrotaal en 100 gedocumenteerde procedures draaien op Jenner zonder SAS-software eronder, omdat het een zelfstandige implementatie is en geen schil die iets anders aanroept. Wat niet meeverhuist is alles wat geen programma is: inhoud die in een klikinterface in elkaar is gezet, is geen code in de SAS-taal, dus valt er voor een engine niets uit te voeren.

Het is gehost, en daar zit de overlap. Je krijgt een browserworkspace waarin JupyterLab draait op een container die wij beheren, gedeeld binnen je organisatie, plus een HTTP-pad voor jobs en agents. Het is kleiner dan een volledige analytics-suite: een engine en een plek om hem te draaien, geen catalogus aan applicaties. Voor een team wiens werk uit SAS-programma's bestaat, is dat meestal de helft die het gewicht draagt.

Die gaan mee. Jenner leest SAS7BDAT rechtstreeks, plus XPT, CSV en Parquet, en schrijft ze terug: een dataset landt zonder conversiestap in de workspace en resultaten vertrekken in de vorm die een collega verwacht. Dat is ook wat één workload tegelijk mogelijk maakt, in plaats van een overzetweekend dat niemand op zijn naam wil.

Ja — dat is het HTTP-pad, en daar komt geen browser aan te pas. Een scheduler, een CI-job of een agent post het programma met zijn invoer en ontvangt de listing, het log, een exitcode en de datasets als JSON, zonder dat er tussendoor een sessie openblijft. Het is dezelfde engine als in de workspace, dus het programma dat iemand interactief ontwikkelde is het programma dat de pipeline uitvoert.

Pak één rapport waarvan je de uitvoer in één oogopslag herkent, draai het in de workspace en vergelijk de twee uitvoerdatasets met PROC COMPARE, tot op de tolerantie die je zelf kiest. Binnen de workspace is dat een goedkope evaluatie — niets te installeren en niets vooraf in te kopen — en wat het oplevert is bewijs over je eigen cijfers in plaats van een bewering over de onze. Opgeslagen als notebook is de vergelijking meteen het artefact dat een validatiereviewer maanden later kan lezen.

Altair SLC draait SAS-taalprogramma's ook zonder SAS-licentie, en doet dat veel langer dan wij. Waar een lange staat van dienst zwaarder weegt dan een browserworkspace: vraag hun een offerte en haal beide door je eigen programma's in plaats van door de functielijst van de een of de ander. Wij hebben liever dat je de juiste kiest dan dat je ons kiest.

Soms wel. Als de SAS-code klein is, of het team de taal toch verlaat, sluit een herschrijving in Python of R — pandas, de tidyverse — de zaak definitief af en zet het je op een stack waarvoor makkelijker te werven valt. De code draaien zoals hij is wint wanneer er veel van is, wanneer hij gevalideerd is, en wanneer herschrijven betekent dat elk getal opnieuw gevalideerd moet worden in plaats van alleen overgetypt.

Nee, en wie iets anders beweert heeft niet geteld. Onze dekking van de taal is groot maar kent hiaten, en een programma dat er een raakt faalt zichtbaar in plaats van stil. De procedurereferentie somt statement voor statement op wat er is, en je eigen programma's in de workspace draaien beantwoordt de vraag voor je bestand in één middag in plaats van in een inkooptraject.

Op onze infrastructuur, niet op die van jou. Een gehoste workspace betekent dat de bestanden die je erin zet op machines staan die wij beheren — dat is de ruil voor niets hoeven installeren en niets hoeven patchen. Je organisatie beheert de toegang tot de workspace, wat iets anders is dan de schijf bezitten, en dat verschil hoor je te benoemen voordat een audit ernaar vraagt. Waar een dataset niet op andermans hardware mag staan, draait dezelfde engine als native Mac-app en als commandoregel-binary op je eigen machines, en de programma's veranderen niet als je wisselt.

Niet echt. Een notebook is een plek om een programma te typen en het log en de uitvoer ernaast te zien verschijnen, precies de lus waarin je al werkt. Programma's blijven in SAS-syntaxis: wat verandert is het venster, niet de code — en wie liever geen notebook aanraakt, draait via het HTTP-pad en de commandoregel hetzelfde .sas-bestand ongewijzigd.

Probeer het op een van je eigen programma's

Log in op een workspace in de browser — niets te installeren, geen SAS-licentie.

Gratis proefperiode starten