Alternatywa dla SAS Viya do pracy hostowanej

Kto szuka alternatywy dla Viya, zwykle nie szuka czegoś do zainstalowania na laptopie. Ma pracę w języku SAS, która działa gdzieś centralnie — przeglądarka, do której ktoś się loguje, albo potok, który woła platformę i czeka na wyniki. Jenner obejmuje jedno i drugie: hostowane środowisko JupyterLab oraz punkt końcowy HTTP, który uruchamia program i oddaje jego wynik.

Krótka odpowiedź

Jenner to implementacja języka SAS 9.4 wykonana metodą clean room, napisana w Rust, i jest hostowana. Zespół loguje się w przeglądarce do środowiska JupyterLab, otwiera program, który już ma, i uruchamia go — nic nie jest instalowane na niczyim komputerze i na żadnej warstwie nie potrzeba licencji SAS. Ten sam silnik odpowiada po HTTP, więc zaplanowane zadanie albo agent AI może przesłać program i odczytać log, wydruk oraz zbiory danych powstałe w przebiegu.

Kto się loguje i co działa

Środowisko jest współdzielone: analityk, recenzent i statystyk pracują na tych samych plikach zamiast przesyłać sobie zbiory danych. Programy zostają w składni SAS — kroki DATA, PROC SQL, język makr — a środowisko czyta SAS7BDAT i XPT bezpośrednio, obok CSV i Parquet. Tam, gdzie laptop naprawdę jest właściwym miejscem dla części pracy, ten sam silnik istnieje jako natywna aplikacja na Maca: hostowane i lokalne nie wykluczają się.

Co daje strona hostowana

Trzy drogi do jednego silnika. Wybór jest kwestią wdrożenia, nie przepisywania.

Środowisko JupyterLab w przeglądarce

Po zalogowaniu jesteś w JupyterLabie, z plikami swojej organizacji i podpiętym już jądrem Jenner. Na żadnym komputerze nic się nie instaluje i zwykle o to właśnie chodzi: nowy współpracownik dostaje działające środowisko z jednej karty przeglądarki, a zablokowany laptop firmowy jest równie dobrym klientem co stacja robocza.

Programy uruchamiane przez HTTP

Silnik odpowiada też na żądania HTTP. Wyślij program i jego dane wejściowe, a otrzymasz wydruk, log, kod wyjścia i każdy zbiór danych powstały w przebiegu, w ustrukturyzowanym JSON. To właśnie czyni go użytecznym z orkiestratora, z zadania ciągłej integracji albo od agenta AI — żaden z nich nie może siedzieć przed sesją interaktywną i czekać, aż człowiek kliknie.

100 udokumentowanych procedur

Katalog jest opublikowany procedura po procedurze, każda ma stronę referencyjną wymieniającą przyjmowane instrukcje i opcje. Na platformie hostowanej liczy się to bardziej niż liczba z nagłówka: zanim obciążenie się przeniesie, pytanie brzmi, czy ta konkretna PROC z tymi konkretnymi opcjami tam jest — i rozstrzyga się to lekturą, zanim ktokolwiek cokolwiek podpisze.

Pliki, które już masz

Jenner czyta SAS7BDAT bezpośrednio, razem z XPT, CSV i Parquet, i zapisuje je z powrotem. Zbiór danych trafia do środowiska bez wcześniejszego kroku konwersji, a wynik może wyjść w formacie, którego oczekuje kolejny krok.

Gdzie coś innego pasuje lepiej

Cztery sytuacje, w których nie jesteśmy właściwą odpowiedzią. Wiedza, w której z nich jesteś, jest warta więcej niż tabela funkcji.

Altair SLC

Altair SLC, dawniej WPS, również uruchamia programy w języku SAS bez licencji SAS i robi to znacznie dłużej niż my. Tam, gdzie długa historia znaczy dla was więcej niż hostowane środowisko — ktoś inny już trafił na wasz przypadek brzegowy i doprowadził do jego naprawy — to prawdziwy argument na ich korzyść, a obie opcje należy wycenić na własnych programach.

Przepisanie w Pythonie lub R

Jeśli baza kodu jest niewielka albo i tak zamierzaliście ją zbudować od nowa, przepiszcie ją w Pythonie lub R. Przeniesienie dwudziestu programów do pandas albo tidyverse to dwa tygodnie pracy i zamyka sprawę na stałe, na stosie, do którego łatwiej rekrutować. Uruchamianie kodu w języku SAS bez zmian wygrywa wtedy, gdy jest go dużo, gdy jest zwalidowany i gdy przepisanie oznaczałoby ponowną walidację każdej liczby, a nie samo przeklepanie.

Zostać tam, gdzie jesteście

SAS opisuje Viya jako platformę z narzędziami wizualnymi i zarządzaniem modelami nad językiem. Jeśli osoby, które jej używają, pracują w tych interfejsach, a nie w kodzie, silnik języka SAS zastępuje niewłaściwą połowę tego, czego dotykają, a ich przenoszenie kosztuje więcej, niż daje. Zespoły, których użycie to programy — kroki DATA, procedury, makra — są tymi, dla których ta strona powstała.

Czego nie obejmujemy

Jenner implementuje 100 udokumentowanych procedur i dużą część języka SAS, a żadna z tych rzeczy nie jest całością. Tam, gdzie wasza praca zależy od czegoś, czego nie zbudowaliśmy, nie uruchomi się, a dowiecie się o tym pierwszego popołudnia, a nie po projekcie. Jenner jest też młodszy niż wymienione tu alternatywy, z mniejszą liczbą lat cudzych przypadków brzegowych za sobą. Dokumentacja procedur jest opublikowana w całości, więc pokrycie da się sprawdzić, zanim cokolwiek zostanie obiecane.

Najczęściej zadawane pytania

Jenner, jeśli tym, do czego naprawdę używacie Viya, jest uruchamianie programów w języku SAS. To implementacja języka SAS 9.4 metodą clean room napisana w Rust, hostowana jako środowisko JupyterLab, do którego loguje się zespół, i osiągalna przez HTTP dla wszystkiego, co zautomatyzowane. Na żadnej warstwie nie jest potrzebna licencja SAS. Jeśli wasze użycie to głównie klikanie, a nie kod, uczciwszą odpowiedzią jest powyższa sekcja o zostaniu tam, gdzie jesteście.

Programy tak. Kroki DATA, PROC SQL, język makr i 100 udokumentowanych procedur działają na Jennerze bez oprogramowania SAS pod spodem, bo to niezależna implementacja, a nie nakładka wołająca coś innego. Nie przenosi się to, co nie jest programem: treść złożona w interfejsie klikanym nie jest kodem w języku SAS, więc silnik nie ma czego uruchomić.

Jest hostowany i to jest część wspólna. Dostajecie środowisko w przeglądarce, w którym JupyterLab działa na kontenerze przez nas prowadzonym, współdzielone w organizacji, plus ścieżkę HTTP dla zadań i agentów. To mniejsza rzecz niż pełny pakiet analityczny — silnik i miejsce, w którym go uruchomić, a nie katalog aplikacji. Dla zespołu, którego praca to programy SAS, to zwykle ta połowa, która niesie ciężar.

Idą z wami. Jenner czyta SAS7BDAT bezpośrednio, razem z XPT, CSV i Parquet, i zapisuje je z powrotem: zbiór danych ląduje w środowisku bez kroku konwersji, a wyniki wychodzą w postaci, której oczekuje kolega. To także sprawia, że można przenosić jedno obciążenie naraz, zamiast urządzać weekend przełączenia, za który nikt nie chce odpowiadać.

Tak — to ścieżka HTTP i nie potrzebuje żadnej przeglądarki. Harmonogram, zadanie ciągłej integracji albo agent wysyła program i jego dane wejściowe i otrzymuje wydruk, log, kod wyjścia i zbiory danych w JSON, bez trzymania otwartej sesji. To ten sam silnik, który obsługuje środowisko, więc program napisany interaktywnie jest programem wykonywanym przez potok.

Weźcie jeden raport, którego wynik rozpoznacie od razu, uruchomcie go w środowisku i porównajcie oba zbiory wyjściowe procedurą PROC COMPARE, aż do tolerancji, którą sami ustawicie. Wewnątrz środowiska to tania ocena — nic do instalowania i nic do kupienia wcześniej — a powstaje z niej dowód dotyczący waszych własnych liczb, a nie twierdzenie o naszych. Zapisane jako notatnik porównanie jest również materiałem, który recenzent walidacyjny przeczyta miesiące później.

Altair SLC też uruchamia programy w języku SAS bez licencji SAS i robi to na długo przed nami. Tam, gdzie długa historia waży więcej niż środowisko w przeglądarce, poproście ich o wycenę i przepuśćcie obie opcje przez własne programy, a nie przez listę funkcji któregokolwiek dostawcy. Wolimy, żebyście wybrali właściwe rozwiązanie, niż żebyście wybrali nas.

Czasem tak. Jeśli kodu SAS jest mało albo zespół i tak odchodzi od języka, przepisanie w Pythonie lub R — pandas, tidyverse — zamyka sprawę na dobre i stawia was na stosie, do którego łatwiej rekrutować. Uruchamianie kodu bez zmian wygrywa, gdy jest go dużo, gdy jest zwalidowany i gdy przepisanie oznacza ponowną walidację każdej liczby zamiast samego przeklepania.

Nie, a kto mówi inaczej, nie liczył. Nasze pokrycie języka jest szerokie, ale ma luki, i program, który w którąś trafi, kończy się wyraźnym błędem, a nie cichym. Dokumentacja procedur wymienia instrukcja po instrukcji, co istnieje, a uruchomienie własnych programów w środowisku rozstrzyga pytanie dla waszego zasobu w jedno popołudnie, a nie w cyklu zakupowym.

Na naszej infrastrukturze, nie na waszej. Hostowane środowisko oznacza, że pliki, które do niego wkładacie, leżą na maszynach prowadzonych przez nas — to jest zamiana za brak instalacji i brak łatania. Wasza organizacja kontroluje dostęp do środowiska, co nie jest tym samym co posiadanie dysku, i tę różnicę warto powiedzieć wprost, zanim zapyta o nią audyt. Tam, gdzie zbiór danych nie może leżeć na cudzym sprzęcie, ten sam silnik działa jako natywna aplikacja na Maca i jako plik wykonywalny wiersza poleceń na waszych własnych maszynach, a programy nie zmieniają się przy przenosinach.

Niekoniecznie. Notatnik to miejsce, w którym wpisuje się program i widzi obok log oraz wynik, czyli dokładnie ta pętla, w której już pracujecie. Programy zostają w składni SAS: zmienia się okno, a nie kod — a kto woli w ogóle nie dotykać notatnika, uruchomi ten sam plik .sas bez zmian przez HTTP albo z wiersza poleceń.

Sprawdźcie to na jednym z własnych programów

Zaloguj się do środowiska w przeglądarce — nic do instalowania, bez licencji SAS.

Rozpocznij bezpłatny okres próbny