Un'alternativa a SAS Viya per il lavoro ospitato

Chi cerca un'alternativa a Viya di solito non cerca qualcosa da installare su un portatile. Ha lavoro in linguaggio SAS che gira da qualche parte al centro: un browser in cui qualcuno accede, oppure una pipeline che chiama una piattaforma e aspetta i risultati. Jenner copre entrambe le cose: un workspace JupyterLab ospitato e un endpoint HTTP che esegue un programma e ne restituisce l'output.

La risposta breve

Jenner è un'implementazione clean room del linguaggio SAS 9.4, scritta in Rust, ed è ospitata. Il team accede a un workspace JupyterLab nel browser, apre un programma che ha già e lo esegue: niente installato su nessuna macchina e nessuna licenza SAS a nessun livello. Lo stesso motore risponde via HTTP, così un job pianificato o un agente di IA può inviare un programma e rileggere il log, il listato e i dataset prodotti dall'esecuzione.

Chi accede e che cosa gira

Un workspace è condiviso: analista, revisore e statistico lavorano sugli stessi file invece di spedirsi dataset. I programmi restano in sintassi SAS — passi DATA, PROC SQL, il linguaggio macro — e il workspace legge SAS7BDAT e XPT direttamente, oltre a CSV e Parquet. Dove un portatile è davvero il posto giusto per una parte del lavoro, lo stesso motore esiste come app Mac nativa: ospitato e locale non si escludono.

Che cosa dà il lato ospitato

Tre modi per raggiungere un solo motore. Quale scegliere è una questione di deployment, non di riscrittura.

Un workspace JupyterLab nel browser

Fare accesso vi porta dentro JupyterLab, con i file della vostra organizzazione e un kernel Jenner già collegato. Non si installa nulla su nessuna macchina, e di solito è proprio questo il punto: un collega nuovo ottiene un ambiente funzionante da una scheda del browser, e un portatile aziendale bloccato è un client valido quanto una workstation.

Programmi eseguiti via HTTP

Il motore risponde anche a richieste HTTP. Inviate un programma e i suoi input e ricevete il listato, il log, un codice di uscita e ogni dataset prodotto, in JSON strutturato. È questo che lo rende utilizzabile da un orchestratore, da un job di integrazione continua o da un agente di IA: nessuno dei tre può stare davanti a una sessione interattiva ad aspettare che qualcuno clicchi.

100 procedure documentate

Il catalogo è pubblicato procedura per procedura, ciascuna con una pagina di riferimento che nomina le istruzioni e le opzioni accettate. Su una piattaforma ospitata questo conta più di un numero da titolo: prima di spostare un carico, la domanda è se quella PROC precisa, con quelle opzioni precise, ci sia — e si decide leggendo, prima che qualcuno firmi qualcosa.

I file che avete già

Jenner legge SAS7BDAT direttamente, insieme a XPT, CSV e Parquet, e li riscrive. Un dataset arriva nel workspace senza un passaggio di conversione preliminare, e l'output può uscire nel formato che si aspetta il passo successivo.

Dove un'altra cosa sta meglio

Quattro situazioni in cui non siamo la risposta giusta. Sapere in quale vi trovate vale più di una tabella di funzionalità.

Altair SLC

Altair SLC, un tempo WPS, esegue anch'esso programmi in linguaggio SAS senza licenza SAS, e lo fa da molto più tempo di noi. Dove una storia lunga conta per voi più di un workspace ospitato — qualcun altro ha già incontrato il vostro caso limite e se l'è fatto correggere — quello è un argomento vero a loro favore, e conviene quotare entrambi sui vostri programmi.

Riscrivere in Python o R

Se la base di codice è piccola, o se comunque stavate per rifarla, riscrivetela in Python o R. Portare venti programmi su pandas o sul tidyverse sono due settimane di lavoro e chiude la questione per sempre, su uno stack per cui è più facile assumere. Eseguire il codice in linguaggio SAS com'è vince quando ce n'è molto, quando è stato validato e quando riscrivere significherebbe rivalidare ogni numero invece di limitarsi a ribatterlo.

Restare dove siete

SAS descrive Viya come una piattaforma con strumenti visuali e di gestione dei modelli sopra il linguaggio. Se chi la usa lavora in quelle interfacce e non nel codice, un motore del linguaggio SAS sostituisce la metà sbagliata di ciò che tocca, e spostarli costa più di quanto renda. I team il cui utilizzo sono programmi — passi DATA, PROC, macro — sono quelli per cui questa pagina è scritta.

Quello che non copriamo

Jenner implementa 100 procedure documentate e una gran parte del linguaggio SAS, e nessuna delle due cose è il tutto. Dove il vostro lavoro dipende da qualcosa che non abbiamo costruito, non gira, e lo scoprite il primo pomeriggio invece che dopo un progetto. Siamo anche più giovani delle alternative citate qui, con meno anni di casi limite altrui alle spalle. Il riferimento delle procedure è pubblicato per intero, quindi la copertura si verifica prima di impegnarsi in qualsiasi cosa.

Domande frequenti

Jenner, se quello che fate davvero con Viya è eseguire programmi in linguaggio SAS. È un'implementazione clean room del linguaggio SAS 9.4 scritta in Rust, ospitata come workspace JupyterLab a cui il team accede, e raggiungibile via HTTP per tutto ciò che è automatizzato. Non serve alcuna licenza SAS, a nessun livello. Se il vostro uso è soprattutto punta e clicca anziché codice, la sezione qui sopra sul restare dove siete è la risposta più onesta.

I programmi sì. Passi DATA, PROC SQL, il linguaggio macro e 100 procedure documentate girano su Jenner senza software SAS sotto, perché è un'implementazione indipendente e non una facciata che chiama altro. Ciò che non si porta dietro è tutto quello che non è un programma: contenuto assemblato in un'interfaccia punta e clicca non è codice in linguaggio SAS, quindi non c'è nulla che un motore possa eseguire.

È ospitata, ed è la parte che si sovrappone. Avete un workspace nel browser che esegue JupyterLab su un container gestito da noi, condiviso nell'organizzazione, più un percorso HTTP per job e agenti. È una cosa più piccola di una suite analitica completa: un motore e un posto dove eseguirlo, non un catalogo di applicazioni. Per un team il cui lavoro sono programmi SAS, di solito è la metà che regge il peso.

Vengono con voi. Jenner legge SAS7BDAT direttamente, insieme a XPT, CSV e Parquet, e li riscrive: un dataset atterra nel workspace senza passaggio di conversione e i risultati escono nella forma che un collega si aspetta. È anche ciò che rende possibile spostare un carico alla volta, invece di un fine settimana di migrazione che nessuno vuole prendersi in carico.

Sì: è il percorso HTTP, e non richiede alcun browser. Uno scheduler, un job di integrazione continua o un agente invia il programma e i suoi input e riceve il listato, il log, un codice di uscita e i dataset in JSON, senza sessioni tenute aperte nel mezzo. È lo stesso motore che esegue il workspace, quindi il programma sviluppato in modo interattivo è il programma che la pipeline esegue.

Prendete un report di cui riconoscereste l'output a colpo d'occhio, eseguitelo nel workspace e confrontate i due dataset di output con PROC COMPARE, fino alla tolleranza che decidete voi. Dentro il workspace è una valutazione a basso costo — niente da installare e niente da acquistare prima — e quello che produce è una prova sui vostri numeri, non un'affermazione sui nostri. Salvato come notebook, il confronto è anche l'artefatto che un revisore di validazione potrà leggere mesi dopo.

Anche Altair SLC esegue programmi in linguaggio SAS senza licenza SAS, e lo fa da molto prima di noi. Dove una storia lunga conta più di un workspace nel browser, chiedete loro un preventivo e fate passare entrambi dai vostri programmi anziché dall'elenco di funzionalità dell'uno o dell'altro. Preferiamo che scegliate quello giusto piuttosto che scegliere noi.

A volte sì. Se il codice SAS è poco, o se il team lascerà comunque il linguaggio, una riscrittura in Python o R — pandas, tidyverse — chiude la faccenda per sempre e vi mette su uno stack per cui è più facile assumere. Eseguire il codice com'è vince quando ce n'è molto, quando è stato validato e quando riscrivere significa rivalidare ogni numero invece di limitarsi a ribatterlo.

No, e chi vi dice il contrario non ha contato. La nostra copertura del linguaggio è ampia ma ha lacune, e un programma che ne incontra una fallisce in modo evidente anziché silenzioso. Il riferimento delle procedure elenca ciò che esiste, istruzione per istruzione, ed eseguire i vostri programmi nel workspace risolve la domanda per il vostro parco in un pomeriggio anziché in un ciclo di acquisto.

Sulla nostra infrastruttura, non sulla vostra. Un workspace ospitato significa che i file che ci mettete stanno su macchine che gestiamo noi: è lo scambio per non avere nulla da installare né da aggiornare. La vostra organizzazione controlla l'accesso al workspace, che non è la stessa cosa che possedere il disco, e conviene dirlo chiaramente prima che lo chieda un audit. Dove un dataset non può stare su hardware altrui, lo stesso motore gira come app Mac nativa e come binario da riga di comando sulle vostre macchine, e i programmi non cambiano quando passate dall'uno all'altro.

Non proprio. Un notebook è un posto dove scrivere un programma e vedere il log e l'output comparire accanto, cioè il ciclo in cui già lavorate. I programmi restano in sintassi SAS: quello che cambia è la finestra, non il codice — e per chi preferisce non toccare un notebook, il percorso HTTP e la riga di comando eseguono lo stesso file .sas senza modificarlo.

Provatelo su uno dei vostri programmi

Accedete a un workspace dal browser: niente da installare, nessuna licenza SAS.

Inizia la prova gratuita