{"id":7638,"date":"2025-02-11T17:36:28","date_gmt":"2025-02-11T16:36:28","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=7638"},"modified":"2025-02-12T11:39:50","modified_gmt":"2025-02-12T10:39:50","slug":"democratizzare-laccesso-ai-dati-tramite-una-data-platform-self-service-parte-1","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/it\/democratizzare-laccesso-ai-dati-tramite-una-data-platform-self-service-parte-1\/","title":{"rendered":"Democratizzare l’accesso ai dati tramite una Data Platform self-service – Parte 1"},"content":{"rendered":"\n
In questa serie di articoli descriveremo come creare e strutturare correttamente una Data Platform self-service per la democratizzazione dei dati e l’analisi su AWS. <\/p>\n\n\n\n
Partiremo dall’acquisizione e dall’archivio dei dati, passando per gli strumenti di elaborazione necessari a generare informazioni di valore per analisi, visualizzazioni e report. Inoltre, ci concentreremo su governance dei dati, reperibilit\u00e0 e collaborazione, con particolare attenzione alla sicurezza e al controllo degli accessi.<\/p>\n\n\n\n
Lo standard de facto<\/em> per le moderne piattaforme dati \u00e8 l’architettura \u201ca medaglione\u201d. Tutte le sorgenti dati, sia in streaming che in batch, vengono acquisite nel cosiddetto \u201cbronze layer\u201d. L’acquisizione dei dati pu\u00f2 essere effettuata con strumenti come AWS DMS e AWS Glue. I dati grezzi devono poi essere puliti, normalizzati e strutturati prima di essere archiviati nella \u201csilver area\u201d. Ulteriori trasformazioni organizzano i dati per casi d’uso aziendali (AI, reporting, ecc.) nel \u201cgolden layer\u201d. <\/p>\n\n\n\n I \u201cGolden data\u201d sono poi pronti per essere utilizzati dagli utenti aziendali.<\/p>\n\n\n\n Nell’era moderna, c’\u00e8 una frase che continua a riecheggiare: \u201cI dati sono il nuovo oro\u201d. Ma \u00e8 davvero cos\u00ec? Spoiler: S\u00cc!<\/p>\n\n\n\n Ogni clic, acquisto o interazione lascia tracce di informazioni preziose che, se analizzate correttamente, possono trasformare il modo in cui le aziende operano. Sfruttando il potere dei dati, le imprese possono comprendere meglio il proprio mercato, individuare schemi di comportamento dei clienti e migliorare l’efficienza operativa. Integrare le decisioni basate sui dati nei processi decisionali aziendali affina le strategie, consentendo di fare scelte informate basate su dati reali, migliorando cos\u00ec produttivit\u00e0 e performance.<\/p>\n\n\n\n Avere dati \u00e8 sicuramente importante, ma se non puoi utilizzarli, averli diventa quasi inutile! <\/p>\n\n\n\n Come fare, quindi? Ecco che si fa strada un altro concetto sempre pi\u00f9 popolare: Data Platform!<\/p>\n\n\n\n Una Data Platform \u00e8 una soluzione composta da diversi elementi infrastrutturali che raccoglie tutti i dati dell\u2019organizzazione nella loro forma pi\u00f9 grezza e, attraverso pi\u00f9 fasi, li trasforma fino a restituirli nella loro forma ottimale. Proprio come il taglio e la lucidatura delle gemme, la Data Platform estrae il massimo valore dai dati non strutturati e grezzi.<\/p>\n\n\n\n Per le aziende, una Data Platform \u00e8 un asset strategico che abilita le decisioni basate sui dati, alimenta l\u2019innovazione e fornisce un vantaggio competitivo nell\u2019attuale economia digitale.<\/p>\n\n\n\n L’architettura pi\u00f9 comune per una Data Platform \u00e8 l’architettura a medaglione<\/strong>, che suddivide il processo di raffinazione dei dati in tre livelli: bronze, silver e gold.<\/p>\n\n\n\n L’idea centrale \u00e8 che il bronze layer<\/strong> sia l’area di atterraggio per i dati nella loro forma pi\u00f9 grezza. Tutti i processi di raccolta trasportano i dati da fonti esterne, come database e API, al livello bronzo, solitamente aggiungendo campi per la tracciabilit\u00e0 e il controllo. Le strategie di lettura pi\u00f9 comuni includono Change Data Capture (CDC), caricamenti batch incrementali e, in alcuni casi, caricamenti completi delle sorgenti. Oltre ai processi di raccolta, il livello bronzo pu\u00f2 anche fungere da area di atterraggio per sistemi che inviano direttamente i dati, come file CSV\/Excel o dati forniti manualmente, sebbene possa essere utile un\u2019area di \u201cquarantena\u201d per i dati provenienti da sistemi non affidabili.<\/p>\n\n\n\n Una volta raccolti tutti i dati dalle diverse fonti, \u00e8 il momento di elaborarli. I processi di trasformazione che trasportano i dati dal livello bronzo si occupano della pulizia e della validazione per garantire un certo livello di qualit\u00e0. Qui troviamo attivit\u00e0 come strategie di deduplicazione, gestione dei valori nulli e trattamento degli errori. Inoltre, i dati vengono strutturati secondo schemi standard prima di passare al livello successivo: il \u201csilver layer\u201d.<\/p>\n\n\n\n Il silver layer<\/strong> dell’architettura a medaglione contiene dati puliti e strutturati. Questo livello ospita una forma primordiale di dati interrogabili, pronti per essere consumati. Gli utenti aziendali possono iniziare ad esplorare questi dati e creare nuovi casi d\u2019uso. \u00c8 fondamentale strutturare correttamente i dati all\u2019interno della Data Platform affinch\u00e9 siano facilmente accessibili, promuovendo cos\u00ec la democratizzazione dei dati e l\u2019analisi self-service.<\/p>\n\n\n\n Prima di arrivare all\u2019ultimo livello, i dati raffinati nel livello argento vengono ulteriormente trasformati e aggregati per rispondere alle esigenze aziendali e ai casi d\u2019uso definiti dagli utenti di business. L\u2019obiettivo principale di questi processi di trasformazione \u00e8 strutturare i dati per ottimizzare le performance delle query e rispondere rapidamente alle richieste aziendali.Il gold layer<\/strong> contiene i dati nella loro forma pi\u00f9 raffinata e di massimo valore. I dati in questo livello sono ottimizzati per servire come fonte per utenti aziendali come Business Analyst, Data Engineer e Data Scientist, supportando casi d\u2019uso come business intelligence, report finanziari, AI e machine learning.<\/p>\n\n\n\n Introduciamo brevemente il caso d\u2019uso di questo articolo per avere una panoramica generale di ci\u00f2 che vedremo, riprendendo i concetti discussi in precedenza per comprendere meglio la soluzione.<\/p>\n\n\n\n Immaginiamo di essere un’azienda fittizia che aiuta altre aziende e liberi professionisti, operanti in diversi settori, a migliorare le loro performance di vendita e, di conseguenza, ad aumentare i loro ricavi. L’azienda vuole iniziare a sfruttare i dati dei clienti per estrarre informazioni di valore, migliorare le strategie proposte e supportarli meglio nell’incremento delle loro entrate. In particolare, il business ritiene che raccogliere dati ed eseguire analisi di Business Intelligence possa essere un primo passo efficace!<\/p>\n\n\n\n Tu, come parte del Data Team, hai il compito di creare l\u2019intera infrastruttura a supporto di questi casi d\u2019uso, insieme alla logica del codice necessario.<\/p>\n\n\n\n Per completare la configurazione, supponiamo che la tua azienda abbia due clienti appartenenti a due settori diversi: elettronica e alimentare. Hai a disposizione i loro dati di vendita, insieme alle informazioni sui rispettivi clienti, provenienti da diverse fonti: database relazionali e file CSV.<\/p>\n\n\n\n Ecco un diagramma ad alto livello del setup architetturale:<\/p>\n\n\n\n <\/p>\n\n\n <\/p>\n\n\n\n Come puoi vedere, e come abbiamo descritto in precedenza, i dati fluiscono nella Data Platform e vengono raffinati iterativamente attraverso i livelli dell\u2019architettura a medaglione. All’interno del livello oro, i dati sono progettati per essere consumati da applicazioni aziendali come AI (SageMaker), BI (QuickSight) o CI (gioco di parole intenzionale!).<\/p>\n\n\n\n Poich\u00e9 stiamo creando una Data Platform semplice con dati di esempio, abbiamo scelto il metodo pi\u00f9 rapido possibile: i file dei dati dei clienti sono stati caricati manualmente nel bucket del livello bronzo, mentre per i dati di vendita abbiamo creato un Glue Job, insieme a una Glue Connection, per gestirne il caricamento.<\/p>\n\n\n\n <\/p>\n\n\n <\/p>\n\n\n\n Ovviamente, nella creazione di una vera Data Platform, il contesto sar\u00e0 molto diverso da questo esempio semplificato e le scelte a disposizione saranno molteplici. Ecco alcuni consigli per gestire diversi tipi di dati:<\/p>\n\n\n\n I Glue Job offrono la funzionalit\u00e0 Bookmark, che permette di leggere una sorgente dati riprendendo dall’ultimo punto in cui si era interrotto. Per quanto riguarda i database, \u00e8 possibile utilizzare AWS DMS con la strategia CDC (Change Data Capture) per acquisire le modifiche in tempo reale.<\/p>\n\n\n\n Per le API, si possono sfruttare le Lambda Functions per orchestrare l’ingestione dei dati.Per i dati IoT, AWS offre le suite IoT Core<\/strong> e IoT Analytics<\/strong>, che includono un broker MQTT per acquisire i dati dai dispositivi e archiviarli direttamente su S3, con la possibilit\u00e0 aggiuntiva di trasformare i dati gi\u00e0 in fase di acquisizione.<\/p>\n\n\n\n Ora che abbiamo descritto alcune strategie di acquisizione dei dati, immergiamoci nel mondo della data pipeline: dal livello bronzo fino ai dati oro, pronti per essere consumati.<\/p>\n\n\n\n Ecco un’immagine che illustra la struttura della data pipeline.<\/p>\n\n\n\n <\/p>\n\n\n <\/p>\n\n\n\n Come puoi vedere, sfruttiamo la potenza dei Glue Job, e quindi di un cluster Spark, per far fluire i dati all’interno della pipeline. Inoltre, utilizziamo il Glue Data Catalog insieme ai Glue Crawlers per rendere i dati interrogabili.<\/p>\n\n\n\n Come abbiamo descritto poco fa, le trasformazioni che permettono di portare i dati dal livello bronze al livello silver si concentrano principalmente sulla pulizia del dato e la standardizzazione.<\/p>\n\n\n\n Le procedure di pulizia del dato possono variare molto a seconda del caso d\u2019uso, alcune operazioni comuni che vengono fatte riguardano la gestione dei dati mancanti, l\u2019eliminazione di dati duplicati e la gestione degli outliers. Nel nostro caso dobbiamo semplicemente gestire i dati mancanti, essendoci poche righe con dati mancanti abbiamo deciso di cancellarle direttamente.<\/p>\n\n\n\n Infine, abbiamo mascherato i dati sensibili prima di procedere con gli step successivi.<\/p>\n\n\n\n In accoppiata alla pulizia dei dati \u00e8 molto comune trovare controlli sulla qualit\u00e0 stessa dei dati. Un\u2019operazione comune da effettuare \u00e8 la validazione delle colonne che devono avere una particolare struttura, per esempio il campo \u201cemail\u201d, o che devono contenere un numero in un particolare range di valori possibili.<\/p>\n\n\n\n Dopo aver pulito i dati \u00e8 il momento di standardizzare lo schema. Per farlo abbiamo rinominato alcune colonne e aggiunto alcuni campi tecnici per aiutarci a tenere traccia del data lineage, i campi in questione sono l\u2019id del lavoro e l\u2019orario corrente.<\/p>\n\n\n\n Finalmente siamo pronti per memorizzare i dati trasformati dentro al livello silver. Abbiamo salvato i dati in formato parquet, un formato molto compresso ed efficiente. Per i dati riguardanti le vendite abbiamo partizionato per negozio e prodotto cos\u00ec che le query di lettura possano essere ottimizzate.<\/p>\n\n\n\n Le trasformazioni per passare dal livello silver al livello gold sono legate alle necessit\u00e0 del business.<\/p>\n\n\n\n Nel nostro esempio, il business voleva semplicemente dei grafici dei ricavi totali in un determinato periodo di tempo.<\/p>\n\n\n\n Per portare a termine questo compito, siamo partiti selezionando solamente i campi necessari al calcolo dei ricavi totali, eliminando tutto ci\u00f2 che \u00e8 superfluo.<\/p>\n\n\n\n Abbiamo calcolato i ricavi moltiplicando il prezzo e la quantit\u00e0 venduta, cos\u00ec facendo abbiamo creato un nuovo campo, solitamente vengono chiamati \u201ccampi calcolati\u201d.<\/p>\n\n\n\n Successivamente, abbiamo aggregato rispetto ai dati calcolati per ottenere i ricavi totali. Infine, abbiamo aggregato per data e negozio per poter fare un\u2019operazione di somma finale.<\/p>\n\n\n\n Finalmente, i dati sono pronti per essere memorizzati nel livello gold. Abbiamo memorizzato i dati in formato parquet, partizionando per negozio e data.<\/p>\n\n\n\n Ora il business pu\u00f2 capire meglio come aiutare i propri clienti a incrementare le vendite.<\/p>\n\n\n\n In questo articolo hai visto un esempio di una data platform, partendo dal perch\u00e9 \u00e8 utile, visionando le architetture pi\u00f9 comuni, l\u2019architettura a medaglione, e le varie trasformazioni effettuate sui dati, dalla loro forma pi\u00f9 grezza fino al dato raffinato che porta maggior valore.<\/p>\n\n\n\n Nei prossimi capitoli di questa serie porteremo il livello ancora pi\u00f9 in alto, spiegando soluzioni per poter migliorare la data platform portandola ad essere una self-service platform, promuovendo cos\u00ec la democratizzazione dei dati. Inoltre, useremo AWS LakeFormation per gestire le utenze ed i permessi di accesso ai dati.<\/p>\n\n\n\n Hai mai provato a creare una data platform per conto tuo? <\/p>\n\n\n\n Raccontaci la tua esperienza nei commenti. A presto con la seconda parte!<\/p>\n\n\n\nPerch\u00e9 una Data Platform?<\/h2>\n\n\n\n
L\u2019architettura a medaglione<\/h2>\n\n\n\n
L\u2019acquisizione del dato: il setup<\/h2>\n\n\n\n
<\/figure><\/div>\n\n\n
<\/figure><\/div>\n\n\n
Data Pipeline: dall’acquisizione ai “golden data”<\/h2>\n\n\n\n
<\/figure><\/div>\n\n\n
Da Bronze a Silver<\/h4>\n\n\n\n
Da Silver a Gold<\/h4>\n\n\n\n
Punti principali e piccoli spoiler<\/h2>\n\n\n\n
\n\n\n\nAbout Proud2beCloud<\/h4>\n\n\n\n