Contesto
Per un cliente del settore media, l’obiettivo era alimentare la reportistica con dati Salesforce sempre coerenti e allineati, unendo esigenze molto diverse: report near-real-time aggiornati ogni 10–15 minuti e consolidamenti periodici affidabili.
Sorgenti e orchestrazione
L’orchestrazione è stata realizzata con Azure Data Factory, che gestiva l’estrazione da Salesforce di diverse tabelle e il recupero di file CSV ed Excel. Le estrazioni da Salesforce usavano una logica delta, movimentando pochi dati a ogni esecuzione e garantendo così una frequenza di aggiornamento costante e tempi ridotti.
Architettura a livelli (medallion)
I dati sono stati organizzati in un’architettura bronze / silver / gold su Azure Synapse Analytics, con costruzione del layer semantico. Il dato elaborato confluiva in SQL Server, che fungeva da punto di esposizione degli oggetti per il consumo analitico.
Tre flussi complementari sulle stesse tabelle
Le medesime tabelle erano aggiornate da tre flussi coordinati:
- Near-real-time — catena Event Hubs → Azure Stream Analytics → Azure Functions, alimentata dal CDC (Change Data Capture) di Salesforce, che scriveva direttamente su SQL Server. Aggiornamento ogni 10–15 minuti per i report più time-sensitive.
- Delta frequente (ogni 30 minuti) — estrazione delta diretta da Salesforce per le tabelle di supporto, anagrafiche e di relazione.
- Giornaliero (18:30) — consolidamento dell’intera giornata con logica delta, per chiudere e allineare il dato.
Esposizione e consumo
I dati consolidati erano esposti tramite viste e table-valued function e alimentavano:
- report Power BI;
- due report nativi in Salesforce;
- un’estrazione verso una tabella Oracle con dati consolidati a valle di varie logiche.
Disegno architetturale
Batch · giornaliero (18:30) + delta ogni 30 min
Sorgenti
- SalesforceCRM / dati sorgente
- File CSV / Excel
Ingestion
- Azure Data FactoryEstrazione delta
Medallion
- Azure Synapse
- Bronze
- Silver
- Gold
- Azure Synapse
Convergenza
- SQL Server3 flussi: NRT · delta 30' · giornaliero
Consumo
- Power BIReportistica
- Report nativiSalesforce
- OracleDati consolidati
Near-real-time · 10–15 min
Sorgente
- Salesforce CDCChange Data Capture
Eventi
- Event Hubs
Streaming
- Stream Analytics
Elaborazione
- Azure Functions
Convergenza
- SQL ServerStesso serving layer del batch
Il mio ruolo
Ho seguito in autonomia sviluppo, implementazione e correzioni, oltre all’applicazione delle logiche di trasformazione e alle ottimizzazioni dei flussi.