Migrazione da SAS a Microsoft Fabric ― Guida in otto passi

12 Nov 202610 min di letturaviews 0comments 0
Migrazione da SAS a Microsoft Fabric ― Guida in otto passi — Innovational Office Solution

Migrazione da SAS a Microsoft Fabric: guida in otto passi

Obiettivo di questa guida

  • Decidere che cosa migrare e che cosa lasciare, senza "riscrivere tutto per principio"
  • Seguire un metodo in otto passi dalla raccolta del codice al passaggio in produzione
  • Conoscere le cinque differenze tra SAS e Spark che cambiano silenziosamente i risultati
  • Preparare la documentazione che serve a validazione modelli e audit
  • Vedere come Pulse Convert automatizza la conversione (70%–90% di conversione automatica iniziale)
  • Contatti: Admin@innovationalofficesolution.com

1. Perché migrare il codice SAS proprio ora

In molte banche e compagnie assicurative italiane SAS è da vent'anni il motore di calcolo del rischio di credito, delle riserve, delle segnalazioni e delle analisi clienti. Il codice è affidabile e più volte verificato. I motivi per cui oggi si pianifica la migrazione sono di natura diversa:

  • Competenze: i nuovi data engineer e data scientist arrivano con Python e SQL; la manutenzione delle macro SAS dipende sempre più da poche persone senior.
  • Posizione dei dati: se i dati sono già in Azure e in Microsoft 365, copiarli su server SAS solo per analizzarli aggiunge costi, tempi e rischi.
  • Elasticità: i picchi di calcolo di fine mese e fine trimestre costringono a dimensionare i server SAS sul massimo carico, lasciandoli inutilizzati il resto del tempo.
  • Governance dei dati personali: con il GDPR conviene ridurre il numero di copie dei dati dei clienti e gestire permessi e tracciabilità in un'unica piattaforma.

Una precisazione importante: SAS e Microsoft Fabric non sono solo alternativi, ma possono anche collaborare. SAS ha reso disponibile il proprio workload SAS Decision Builder all'interno di Fabric e offre connettori verso OneLake. In questa guida ci concentriamo sulla migrazione del codice di preparazione e trasformazione dei dati, che è la parte più ampia del patrimonio SAS nella maggior parte delle aziende.

2. Che cosa migrare: la classificazione del codice

CategoriaEsempiIndicazione
Preparazione dei datiDATA step, PROC SQL, SORT, MERGEMigrare a PySpark / Spark SQL
Riepiloghi e reportPROC MEANS, FREQ, TABULATE, REPORTMigrare a Spark SQL e Power BI
Modelli statisticiPROC LOGISTIC, REG, GENMODValutare modello per modello con la validazione
Orchestrazione%INCLUDE, LIBNAME, script batchPipeline Fabric e struttura del Lakehouse
Codice non più utilizzatoProgrammi non eseguiti da oltre un annoDismettere

3. Il metodo in otto passi

Passo 1 – Raccolta: recuperare tutti i file .sas, i progetti Enterprise Guide, le catene %INCLUDE e le definizioni dei job dallo scheduler.

Passo 2 – Lineage: ricostruire quali programmi leggono e scrivono quali dataset, per capire l'ordine di migrazione.

Passo 3 – Espansione delle macro: risolvere le macro per ottenere il codice realmente eseguito, che è quello da convertire.

Passo 4 – Struttura del Lakehouse: definire Bronze, Silver e Gold in OneLake e mappare le librerie SAS (LIBNAME) su tabelle Delta.

Passo 5 – Conversione: DATA step e PROC in PySpark e Spark SQL, macro in funzioni Python e notebook parametrizzati.

Passo 6 – Migrazione dei dati: convertire i dataset .sas7bdat in tabelle Delta, curando tipi numerici e date.

Passo 7 – Riconciliazione: confrontare automaticamente i risultati di SAS e Fabric su ogni programma.

Passo 8 – Orchestrazione e rilascio: trasformare i job batch in pipeline Data Factory, eseguire almeno una chiusura mensile in parallelo e poi spegnere il job SAS.

4. Le cinque differenze che cambiano i risultati

1. Valori mancanti. In SAS un valore numerico mancante è considerato il più piccolo possibile: la condizione "if x < 0" è vera. In Spark il confronto con NULL restituisce NULL e la riga viene esclusa. Nei modelli di credito, dove le soglie sono ovunque, ogni condizione va verificata.

2. MERGE e JOIN. Il MERGE con BY in SAS non produce un prodotto cartesiano nei casi molti-a-molti; il JOIN SQL sì. Prima di convertire bisogna verificare l'unicità delle chiavi.

3. Ordinamento implicito. L'elaborazione BY in SAS presuppone dati ordinati; FIRST. e LAST. dipendono da quell'ordine. Spark non garantisce alcun ordine: va sempre esplicitato con le funzioni finestra.

4. Date. SAS memorizza le date come numero di giorni dal 1° gennaio 1960: la conversione va fatta con attenzione, soprattutto sui valori limite.

5. Precisione numerica. SAS usa numeri in virgola mobile a 8 byte; per importi e premi in Fabric conviene dichiarare DECIMAL con precisione esplicita, per evitare differenze di arrotondamento.

5. Tabella di corrispondenza SAS – Microsoft Fabric

SASMicrosoft Fabric
DATA stepNotebook PySpark
FIRST. / LAST. / RETAIN / LAGFunzioni finestra
MERGE con BYjoin / MERGE su Delta
PROC SQLSpark SQL / T-SQL del Warehouse
PROC SORT NODUPKEYdropDuplicates con ordinamento esplicito
PROC MEANS / FREQ / TRANSPOSEgroupBy().agg() / crosstab / pivot
PROC FORMATTabelle di mapping Delta
Macro (%MACRO, %LET, CALL SYMPUT)Funzioni Python / notebook parametrizzati
Dataset .sas7bdatTabelle Delta in OneLake
LIBNAMELakehouse e schemi
Job batch e schedulerPipeline Data Factory
Output ODSReport Power BI

6. Esempio applicativo: Emulus Consulting

Emulus Consulting ha seguito questo metodo per una compagnia assicurativa del ramo danni:

  • 1.320 programmi SAS e 290 macro analizzati; il 14% dismesso
  • 1.060 programmi di preparazione dati e reportistica migrati in Fabric
  • 2.100 condizioni con valori mancanti verificate e riscritte
  • Conversione automatica iniziale dell'80%, durata del progetto 24 settimane
  • Elaborazione mensile dei dati sinistri ridotta da 11 ore a 1 ora e 25 minuti
  • Costo complessivo di server e licenze SAS ridotto del 46%

7. Come Pulse Convert accelera la migrazione

  • Parsing del codice SAS: DATA step, PROC e macro vengono trasformati in un albero sintattico, con espansione delle macro
  • Conversione automatica: generazione di PySpark e Spark SQL leggibili, con una conversione automatica iniziale del 70%–90%
  • Lineage: mappa automatica di programmi, dataset e dipendenze, per pianificare le ondate di migrazione
  • PulseQA: confronto di conteggi, chiavi, totali per colonna, valori mancanti e distribuzioni delle variabili principali
  • Pacchetto di evidenze: documentazione pronta per la validazione modelli e per l'audit interno

Domande frequenti (FAQ)

A.Non necessariamente. Consigliamo di migrare subito la preparazione dei dati e valutare i modelli uno per uno insieme alla funzione di validazione.
A.Sì. Il codice PySpark viene generato in forma leggibile e commentata, con il riferimento al programma SAS originale.
A.Con PulseQA, che produce per ogni programma un confronto documentato su conteggi, totali, valori mancanti e distribuzioni.
A.Sì. Ogni programma resta attivo su SAS finché la versione Fabric non è stata riconciliata e approvata.
A.Convertiamo gratuitamente 5 programmi SAS a vostra scelta, preferibilmente con macro ed elaborazioni BY, e vi consegniamo il codice PySpark e il report di riconciliazione.

Iniziate oggi

Proof of Concept (POC) Gratuito
Microsoft Solution Partner

Porta il codice SAS su Microsoft Fabric e PySpark

Migra i tuoi programmi SAS (DATA step, PROC SQL, macro e job batch) verso notebook PySpark e Lakehouse in OneLake con prova matematica che i risultati non cambiano. Conversione automatica iniziale del 70%–90%.

Conversione automatica iniziale del 70%–90%POC gratuito su 5 programmi SAS criticiRiconciliazione numerica rigorosa su valori mancanti e precisioneMicrosoft Solutions Partner per Data & AI
Richiedi un POC gratuitoParla con un Data Science Architect
🔒 Zero Rischi•⚡ Risposta entro 24h
Pubblicato da: Office Solution AI Labs (Microsoft Solution Partner for Data & AI)
#Italiano#SAS#Microsoft Fabric#PySpark#OneLake#Risk Analytics#Case Study

Contact Us

Advance Analytics of next generation

We are an authorized implementation partner of Snowflake, Databricks, Amazon, Automation Anywhere, Denodo, DataDog, New Relic, and Elastic.

Copyrights © 2026 Office Solution AI Labs