Jenner Professional Services

Migrera från SAS till Jenner Analytics

Testcertifierad migrering för SAS-kodbaser i företagsklass

Er SAS-miljö fungerar. Tusentals program, makron, format och schemalagda jobb har finslipats under åren, och mycket av det de gör finns inte dokumenterat någon annanstans än i koden själv. Att flytta det till en ny plattform, hur kompatibel den än är, bär på en verklig risk: något som förut var rätt blir subtilt fel, och ingen märker det förrän det spelar roll.

Jenner Professional Services tar bort den risken med en enkel disciplin. Innan vi ändrar något bygger vi en heltäckande, körbar dokumentation av vad ert nuvarande system gör. Sedan använder vi den för att bevisa, test för test, att det migrerade systemet gör detsamma.

Resultatet är en migrering ni kan godkänna på bevis i stället för tillförsikt, och en regressionssvit ni behåller för alltid.

Börja med Discovery

Jenner är en väg, inte den enda

Vi är SAS-experter, vilket visas av att vi har byggt en fullständig implementation av det språket och det systemet. Att migrera dit är dock bara en av de vägar ni kan gå med oss.

Vi kan använda vår implementation av SAS-kompatibel kod, och våra testdrivna arbetssätt, för att säkerställa en lyckad migrering till Python eller R, till Snowflake eller Databricks, eller till andra lösningar — även Siemens SLC.

Vi förordar migrering till Jenner eftersom den är både snabbare, mindre komplex och billigare för företag som redan har en SAS-infrastruktur.

Varför kompatibilitet i sig inte är certifiering

Jenner kör SAS-språket, nästan varje procedur, makrofunktionen, grafiken och ett brett spann av datakopplingar. För det mesta av koden handlar migrering om att rikta Jenner mot samma program. Men en kodbas i företagsklass är aldrig bara språket. Den är också allt som språket rör vid:

Miljö och konfiguration

autoexec.sas, konfigurationsfiler, systemoptioner (ENCODING, LOCALE, YEARCUTOFF, VALIDVARNAME, FMTSEARCH, SASAUTOS), miljövariabler, SYSPARM, samt WORK-bibliotekets storlek och livslängd.

Hemligheter och inloggningsuppgifter

Lösenord inbäddade i LIBNAME-satser, {SAS002}-kodade strängar, uppgifter i filer som dras in med %include, Kerberos- eller SSO-biljetter, och frågan om var allt detta borde ligga i stället.

Databasanslutningar

SAS/ACCESS-motorer för Oracle, DB2, Teradata, SQL Server, Snowflake, Hive och andra; explicit och implicit pass-through-SQL; motoroptioner som påverkar resultaten (DBCOMMIT, READBUFF, INSERTBUFF, BULKLOAD); typmappning för datum, decimaler och NULL; och beteenden som tyst ändrades när SQL sköts ned i databasen i stället för att köras lokalt.

Fil- och biblioteksplatser

Hårdkodade sökvägar, Windows enhetsbokstäver mot Linux-monteringar, skiftlägeskänsliga filnamn, NFS- och SMB-utdelningar, FILENAME PIPE- och X-kommandon, SYSGET samt filrättigheter.

Proprietära artefakter

Formatkataloger, kompilerade eller lagrade makron, index, granskningsspår, vyer, SPDE-bibliotek, transportfiler, krypterade eller komprimerade datamängder, och datamängder från V6/V8-eran som måste genereras om snarare än kopieras.

Produkter på serversidan

SAS/CONNECT-RSUBMIT-block, Grid, SAS/SHARE, Stored Processes, auktorisering via metadataservern, Enterprise Guide-projekt, jobb genererade av DI Studio och CAS-åtgärder i Viya. Var och en har en motsvarighet på den nya plattformen, men inte en identisk.

Schemaläggning och orkestrering

LSF, Control-M, cron, jobbberoenden, konventioner för returkoder, loggskrapare som letar efter specifik NOTE/WARNING/ERROR-text, logik med SYSERR och SYSCC, samt FILENAME EMAIL-varningar.

Utdatatrohet

ODS-destinationerna PDF, RTF, Excel och HTML, PROC TEMPLATE-stilar, tagsets, typsnitt, grafikdrivrutiner, och rapporter som konsumenter längre fram tolkar utifrån position.

Numerik och statistik

Flyttalsavrundning vid gränsvärden, sorteringskollation och ordning vid lika värden, strömmar av slumptal (RANUNI, RAND, STREAMINIT) som inte är reproducerbara mellan implementationer, och iterativa procedurer vars konvergensväg kan skilja sig inom toleransen.

Kod som lutar sig mot egenheter

Oinitierade variabler, remerging i PROC SQL, implicit RETAIN, trunkeringsvarningar som betraktas som normala, och odokumenterat beteende som råkar ge rätt svar i dag.

Integration med allt annat

Python via SASPy, R, Java- och .NET-klienter över IOM, JDBC mot SAS/SHARE, Tableau och pandas som läser .sas7bdat-filer direkt, samt REST-anrop in i Viya.

Styrning

Valideringskrav i reglerade branscher (GxP, 21 CFR Part 11, modellriskhantering), säkerhet på radnivå, hantering av personuppgifter, granskningsspår, och avsaknaden av versionshantering i många långlivade SAS-miljöer.

Inget av detta är ovanligt. Allt går att hitta i förväg, och allt går att testa. Det är just det processen nedan handlar om.

Jenners migreringsprocess

1

Kartlägga

Vi inventerar miljön innan vi uppskattar arbetet. Med automatiserad analys av ert källträd, era scheman och era loggar tar vi fram en beroendegraf över program, makron, format, bibliotek, externa filer och databasanslutningar, och identifierar vad som faktiskt körs, vad som är dött och vem som äger vad. Varje kategori ovan gås igenom och fynden poängsätts efter migreringsinsats.

Leverans

En inventerings- och riskrapport med ett fastprisförslag för de återstående faserna. Om ni väljer att inte gå vidare behåller ni rapporten.

2

Karakterisera

Det här är fasen som gör resten pålitlig, och den görs helt och hållet på ert befintliga SAS-system, innan något migreras.

För varje program inom omfattningen bygger vi med AI-stödd analys karakteriseringstester: körbara specifikationer av vad koden gör i dag. Varje test fångar de indata ett program förbrukar — datamängder, makroparametrar, externa filer, databasuttag, miljöinställningar — kör det på er nuvarande SAS-installation och registrerar allt det producerar: utdatamängder, logginnehåll, returkoder, ODS-utdata, makrovariablernas tillstånd och sidoeffekter som skrivna filer eller skickade e-postmeddelanden.

Det är AI som gör detta praktiskt möjligt i företagsskala. Att läsa tiotusen program och härleda vilka gränsfall vart och ett hanterar är inget arbete för människor med en deadline. Att generera testfallen, testdatan och jämförelselogiken är precis den sortens omfångsrika, mönstertunga arbete som dagens modeller är starka på, och varje genererat test valideras genom att köras mot det system det beskriver. Om ett test inte går igenom på ert nuvarande SAS är det inte ett test av ert system, och det kastas.

Jämförelseregler sätts per utdata. Datamängder jämförs exakt som standard; numeriska toleranser deklareras uttryckligen där flyttal eller iterativa procedurer gör bitvis likhet meningslös; loggjämförelser är strukturella snarare än textuella, så en omformulerad NOTE fäller inte ett jobb medan ett ändrat radantal gör det. Icke-deterministiska indata som dagens datum och slumpfrön kontrolleras, så att samma test ger samma svar vilken dag som helst. Där produktionsdata inte får användas för test bygger vi maskerade eller syntetiska testdata som går genom samma kodvägar.

Leverans

En versionshanterad testsvit med uppmätt täckning över program, makron och procedurer, samt en baslinje av registrerade resultat från ert nuvarande system. Sviten är er. Den är skriven för att köras på Jenner, på SAS och på allt annat som talar språket, och den har värde oberoende av migreringen: de flesta SAS-miljöer har aldrig haft en.

3

Migrera

Med baslinjen på plats blir migreringen en teknisk uppgift med en tydlig definition av klart. Vi sätter upp Jenner i er miljö, åtgärdar miljöpunkterna från Discovery (sökvägar, bibliotek, hantering av hemligheter, databasanslutningar, integration mot schemaläggaren) och kör hela sviten.

Varje fel sorteras in i en av fyra kategorier:

01Fel i Jenner

Koden är rätt och Jenner har fel. Jenner släpper nya versioner varje vecka; fel som hittas i kundmigreringar prioriteras, och det test som fallerar blir en permanent del av Jenners egen regressionssvit.

02Miljö

En sökväg, en inloggningsuppgift, en anslutning eller en option som behöver sättas. Åtgärdas och körs om.

03Beroende av en egenhet

Koden lutar sig mot odokumenterat SAS-beteende. Vi visar er den exakta raden och det exakta beteendet, och ni väljer mellan att ändra koden — med testet som bevis för att ändringen är säker — eller att låta Jenner efterlikna egenheten.

04Godtagbar skillnad

Resultatet avviker inom en deklarerad tolerans, eller ett loggmeddelande är formulerat annorlunda. Dokumenteras och godkänns, aldrig accepterat i tysthet.

Sviten körs löpande medan problemen åtgärdas, så framsteg är en siffra och inte en åsikt, och regressioner fångas samma dag som de införs.

Leverans

En migrerad kodbas där hela sviten går igenom, eller där varje kvarvarande skillnad är avgjord skriftligt.

4

Certifiera

Certifieringen är det bevispaket som låter er uppdragsgivare, era revisorer och era tillsynsmyndigheter godta migreringen.

Vi kör en parallellperiod där produktionsjobb körs på båda systemen och utdata jämförs automatiskt med samma regler som testsviten. Certifieringspaketet innehåller inventeringen, testsviten och dess täckning, baslinjen, resultaten från den sista körningen, hanteringen av varje skillnad, och spårbarheten från varje krav eller program till de tester som täcker det. För kunder under tillsyn struktureras det så att det bär IQ/OQ/PQ-validering och revision.

Leverans

Ett undertecknat certifieringspaket och en rekommendation om att gå vidare eller inte.

5

Växla över och stötta

Övergången planeras kring era batchfönster och förnyelsedatumet för er SAS-licens, med en beprövad väg tillbaka. Schemaläggare pekas om, övervakning och larm bekräftas, och SAS-miljön avvecklas enligt er tidplan.

Testsviten fortsätter att köras efter övergången. Eftersom Jenner släpper varje vecka får ni varje förbättring med samma bevis för att inget ni är beroende av har ändrats. Ert team utbildas i att bygga ut sviten allteftersom kodbasen växer.

Leverans

Produktion på Jenner, en avvecklingsplan för SAS, och en regressionssvit som fortsätter att arbeta åt er.

Det här får ni

  • En fullständig och aktuell inventering av er SAS-miljö, inklusive de delar ingen längre mindes.
  • En karakteriseringssvit med uppmätt täckning, som ni äger och kan ta med er mellan plattformar.
  • En migrering vars slutförande definieras av testresultat snarare än av ett datum.
  • Ett certifieringspaket byggt för revisorer och tillsynsmyndigheter.
  • Permanent skydd mot regressioner, på Jenner eller var som helst annars.
  • Fel som hittas i er migrering rättas i produkten, inte kringgås i er kod.

Så är uppdragen upplagda

Discovery

Fast pris och kort. Den tar fram förslaget för de återstående faserna, prissatt utifrån den uppmätta storleken och komplexiteten i er miljö snarare än en uppskattning av dem.

Karakterisera, Migrera, Certifiera

Levereras vanligen som ett enda uppdrag med fast omfattning, med delleveransgodkännande knutet till svitens resultat.

Stöd efter övergången

Finns som årlig tjänst, efter att testsviten lämnats över och ert team utbildats i att bygga ut den.

Kostnadsvägledning

Små migreringar och pilotprojekt

$1,000 – $21,000

Går oftast att göra på distans, med en varaktighet från en vecka till en månad.

Större och mer komplexa migreringar

$52,000 – $405,000

Kräver visst arbete på plats och/eller fördjupad domänkunskap och tar vanligen två till sex månader.

Alla belopp anges i amerikanska dollar (USD).

Detta omfattar inte licensavgifter för programvaran; de är dock mycket lättöverskådliga och konkurrenskraftiga. Se prissidan.

Kontakta professionella tjänster

Börja med Discovery

Skicka en beskrivning av er SAS-miljö — plattform, ungefärligt antal program, produkter i bruk, databaser och schemaläggare — så ramar vi in en Discovery.