Creazione di un'architettura di Big Data su AWS per comprendere le preferenze dei clienti Problema aziendale: comprendere le preferenze dei clienti Le aziende che operano in più segmenti verticali hanno la necessità di comprendere le preferenze e le interazioni dei clienti con i propri prodotti e servizi per essere in grado di proporre loro offerte pertinenti in modo proattivo. Questo tipo di esigenza è presente, ad esempio, nei settori e sistemi seguenti: • Media e intrattenimento: piattaforme TV connesse/piattaforme d'eccellenza per la distribuzione di contenuti • Vendita al dettaglio: rivenditori online, siti Web rivolti ai consumatori, analisi del flusso di clic e abbandono dei carrelli • Ospitalità: programmi fedeltà applicati a strutture e offerte di servizi diverse Per creare raccomandazioni personalizzate in base ai singoli utenti che siano accurate e tempestive, le aziende hanno in genere la necessità di aggregare dati relativi alle interazioni tra gli utenti e a ciascuno dei propri prodotti e servizi. Tali dati includono i comportamenti storici di ciascun utente, le interazioni e le risposte riguardo alle offerte, il consumo, le preferenze dichiarate o registrate, nonché i punteggi e il feedback. Queste informazioni possono essere acquisite in un data warehouse, dove vengono quindi rese disponibili per i processi di analisi a valle che sono alla base della preparazione delle raccomandazioni e delle offerte per ogni utente. Le raccomandazioni per utente desiderate vengono in genere prodotte mediante un algoritmo di analisi predittiva, apprendimento automatico o filtro collaborativo. In presenza di un numero elevato di utenti, prodotti e interazioni, l'elaborazione di queste raccomandazioni richiede l'utilizzo di un cluster di elaborazione distribuito come Hadoop. L'ecosistema Hadoop offre un portafoglio sempre più maturo di offerte in grado di svolgere questo ruolo. Le soluzioni di data warehouse, unite a un'infrastruttura di analisi dei Big Data creata per l'ecosistema Hadoop, forniscono potenti funzionalità di ottimizzazione di interazioni, offerte e raccomandazioni per i clienti in tempo reale. Tuttavia, per molte aziende queste soluzioni non sono alla portata dei titolari delle linee di business: i requisiti in termini di costi e lead time sono troppo elevati a causa della necessità di effettuare ingenti investimenti iniziali in infrastruttura e di avvalersi di costosi esperti in Big Data. Il diagramma riportato di seguito riepiloga le problematiche in termini di costi che emergono nell'analisi di questi dati. Historic Events Today’s Events Talend Italy Srl Foro Buonaparte 70 , MI 20121 www.talend.com | [email protected] 6525 Gunpark Dr Ste 370-168, Boulder, CO 80301 www.47lining.com | [email protected] Il commissioning di un nuovo data warehouse comporta costi elevati, richiede team di grandi dimensioni dotati di competenze specializzate e lunghi lead time per l'attivazione del data warehouse. Nei casi in cui un data warehouse esista già all'interno dell'azienda, l'acquisizione delle approvazioni e delle risorse necessarie per utilizzarlo allo scopo di risolvere i problemi descritti in precedenza può risultare molto difficile. Allo stesso modo, il commissioning di un'iniziativa di analisi di Big Data può comportare costi molto elevati. In passato l'utilizzo di Hadoop richiedeva un solido supporto da parte di fornitori terzi, unito a un team di data scientist dotati di conoscenze sull'ampia gamma di strumenti dell'ecosistema Hadoop e sui requisiti per configurarli e utilizzarli in modo efficace. In che modo è possibile ridurre il tempo necessario per fornire una dimostrazione delle funzionalità integrate, semplificare le modalità d'uso e ottimizzare i costi per i sistemi di Big Data? Riduzione del costo delle implementazioni di Big Data Una soluzione efficace in termini di costo unisce una ricca libreria di trasformazioni dei dati fornita da Talend Studio e Integration Cloud con servizi di data warehouse e Big Data on demand, caratterizzati da prezzi elastici, forniti da Amazon Web Services (AWS). L'infrastruttura "on demand" di AWS può essere distribuita nel giro di pochi minuti laddove sia necessaria per eseguire un carico di lavoro. Quando il carico di lavoro è completo, l'infrastruttura può essere rilasciata, interrompendo il conteggio dei pagamenti. Questa tipologia di utilizzo viene descritta dal concetto di prezzi elastici: si paga solo per ciò che viene utilizzato. Ciò significa che i prezzi seguono da vicino il consumo effettivo, a differenza dei sistemi tradizionali, che devono essere dimensionati per tenere conto del carico di picco da supportare. L'elasticità dei prezzi per un'infrastruttura on demand può determinare risparmi sostanziali. AWS offre una serie di funzionalità correlate che rendono possibile questo approccio alla soluzione: • Amazon Redshift è un ambiente di data warehouse basato su cloud che può essere sottoposto a provisioning on demand. • Amazon Simple Storage Service (S3) fornisce un archivio di oggetti distribuito che è poco costoso, di durata elevata e scalabile. I dati in S3 possono persistere indipendentemente dalle risorse Redshift o Elastic MapReduce (maggiori informazioni sono fornite di seguito). Poiché S3, Redshift ed EMR sono tutti sistemi di elaborazione distribuiti orientati al cluster, i caricamenti di dati da S3, le snapshot verso S3 e i ripristini da S3 possono essere scalati con il progressivo aumento delle dimensioni dei cluster. • Copia Redshift da S3: Redshift gestisce carichi di dati paralleli a prestazioni estremamente elevate provenienti da S3 mediante la distribuzione delle attività di caricamento dati tra tutti i nodi del cluster Redshift e l'utilizzo dell'I/O della larghezza di banda elevata tra ciascun nodo cluster Redshift e il nodo di elaborazione che fornisce i dati S3. • Snapshot Redshift/Ripristino dalla snapshot : Redshift può acquisire in modo efficiente il proprio stato corrente in S3. Le snapshot create prima della chiusura del cluster possono essere utilizzate per avviare rapidamente i cluster sostitutivi in base alle esigenze future. • Cluster EMR (Elastic MapReduce) temporanei: un cluster Hadoop tradizionale svolge due funzioni: elaborare l'attività e rendere persistenti i dati di input e output fornendo spazio di archiviazione locale da utilizzare all'interno del file system distribuito Hadoop (HDFS) del cluster. Amazon EMR include driver che consentono a ciascun nodo nel cluster EMR di eseguire scritture e letture in modo efficiente direttamente da S3, eliminando la necessità di effettuare lo staging dei dati in HDFS. Quando HDFS non è necessario, è sufficiente che i nodi del cluster esistano solo durante il periodo di elaborazione dell'attività. È ciò che viene definito cluster temporaneo: un cluster che viene avviato quando è necessario, esegue il pull dei dati di input richiesti da S3, rende persistenti i dati di output desiderati in S3 e quindi si chiude. L'utente paga solo per il periodo in cui il cluster è in esecuzione. Talend offre una serie ineguagliabile di funzionalità per eseguire il marshalling, trasformare e integrare numerose fonti di dati. Per questo motivo, Talend soddisfa l'esigenza critica di ridurre i costi di elaborazione e risorse in molte aziende: elimina il rischio dal progetto di gestione dei dati e permette agli esperti di integrazione che non dispongono di conoscenze estese su Hadoop di utilizzare e configurare flussi di lavoro relativi a Big Data. Come indicato sotto, Talend semplifica l'attività di pianificazione e organizzazione, ed è perfetto per distribuire e gestire le risorse on demand e con prezzi elastici fornite da AWS. Con Talend Integration Cloud i flussi di lavoro e i risultati relativi all'integrazione sottostante sono facilmente accessibili ad altri collaboratori che svolgono vari ruoli all'interno dell'azienda. Talend Italy Srl Foro Buonaparte 70 , MI 20121 www.talend.com | [email protected] 6525 Gunpark Dr Ste 370-168, Boulder, CO 80301 www.47lining.com | [email protected] Panoramica dell'architettura della soluzione L'architettura della soluzione mostrata sotto illustra i vantaggi associati all'utilizzo di Talend per accedere alle risorse on demand di Big Data fornite da AWS, che sono caratterizzate da prezzi elastici. In questo scenario viene prima definito un data warehouse on demand basato su Amazon Redshift per contenere gli eventi non elaborati di recensioni dei film e le relative informazioni sui titoli. Verranno utilizzati i dati di GroupLens, un gruppo di ricerca del dipartimento di ingegneria informatica presso la University of Minnesota. GroupLens fornisce il set di dati MovieLens ml-20m, che include 20.000.263 recensioni di utenti su 27.278 film. I dati sono stati creati da 138.493 utenti tra il 9 gennaio 1995 e il 31 marzo 2015. I dati relativi agli eventi di recensioni per il giorno precedente vengono caricati in modo incrementale ogni sera nel data warehouse basato su Redshift. Il data warehouse crea quindi una trasformazione che include un sottoinsieme specificato di dati cronologici, tra cui il carico incrementale più recente, che può essere utilizzato da un sistema di generazione delle raccomandazioni. Al termine dell'attività di caricamento degli eventi incrementali e di preparazione dell'input per il processo di generazione delle raccomandazioni verrà eseguita la snapshot del cluster Redshift e il cluster si chiude, per offrire i vantaggi dei prezzi elastici. Il cluster verrà ricostituito la sera successiva dalla snapshot generata. Il processo di generazione delle raccomandazioni è basato su un cluster Elastic MapReduce temporaneo che verrà distribuito solo quando occorre eseguire l'attività delle raccomandazioni. Verrà mostrato come Talend Studio viene utilizzato per rappresentare ciascuna parte del flusso complessivo e in come Talend Integration Cloud organizza lo spostamento e la gestione dei dati delle risorse on demand di AWS quando il processo viene eseguito ogni sera. Talend Italy Srl Foro Buonaparte 70 , MI 20121 www.talend.com | [email protected] 6525 Gunpark Dr Ste 370-168, Boulder, CO 80301 www.47lining.com | [email protected] Implementazione dell'architettura della soluzione con Talend e AWS Il diagramma riportato di seguito illustra il flusso di dati e servizi AWS all'interno della dimostrazione. I passaggi specifici all'interno del flusso sono i seguenti: Inserimento di dati non elaborati. Un contenitore S3 pubblico include un sottoinsieme della dimostrazione del set di dati MovieLens organizzato per data di ciascuna recensione di film effettuata da un utente. I dati all'interno del contenitore sono organizzati in una gerarchia in base all'anno, al mese e al giorno. Nell'esempiodella dimostrazione, gli eventi non elaborati incrementali per ciascun giorno vengono collocati nella posizione S3 appropriata in base al codice che effettua il monitoraggio dei registri delle applicazioni e genera gli eventi di recensioni. Un aspetto importante è che non è necessario che il data warehouse sia disponibile affinché venga eseguita la raccolta di dati. Eventi giornalieri in S3. Gli eventi giornalieri vengono collocati in S3 nel formato necessario affinché vengano inseriti in modo trasparente in Amazon Redshift tramite la relativa funzionalità "COPY FROM S3" parallela, ad alte prestazioni. Carico dei dati incrementale e manutenzione del cluster. Ogni sera viene eseguito il pull dei dati nel data warehouse con una singola operazione COPY FROM S3 con il glob pattern delle chiavi corretto; tale operazione includerà tutti gli eventi di recensioni precedenti. Il tempo di caricamento si riduce al minimo perché i dati vengono caricati in parallelo tra tutti i nodi del cluster. Preparazione dei dati di input delle raccomandazioni. Il data warehouse basato su Redshift è molto efficiente nella creazione di riepiloghi e trasformazioni dei dati necessari per preparare i dati di input richiesti dal processo di generazione delle raccomandazioni. Questi dati vengono generati in una tabella temporanea in Redshift, quindi scaricati in parallelo in S3 utilizzando la funzionalità UNLOAD TO S3. Un contenitore S3 viene utilizzato per rendere persistenti i dati di input e output giornalieri derivanti dal processo relativo alle raccomandazioni. I dati all'interno del contenitore sono organizzati in una gerarchia in base all'anno, al mese e al giorno. Snapshot e chiusura del cluster Redshift. Una volta che i dati incrementali sono stati inseriti e il riepilogo cronologico del giorno precedente è stato preparato e scaricato in S3 per l'uso da parte del processo relativo alle raccomandazioni, viene creata una snapshot del cluster Redshift e il cluster viene chiuso fino all'attività della sera successiva. Generazione di raccomandazioni. Viene eseguito il commissioning di un cluster EMR temporaneo per generare raccomandazioni in base alle informazioni cronologiche sulle recensioni che sono state preparate in S3 a tale scopo. Il cluster riceve l'input direttamente da S3, quindi non è richiesto alcuno spostamento dei dati in HDFS. Output delle raccomandazioni. Il cluster scrive l'output delle raccomandazioni direttamente in S3 in modo che queste restino disponibili per i processi di utilizzo a valle nonostante il cluster EMR che li ha generati non sia più attivo. Una volta generate le raccomandazioni, il cluster temporaneo si chiude. Talend Italy Srl Foro Buonaparte 70 , MI 20121 www.talend.com | [email protected] 6525 Gunpark Dr Ste 370-168, Boulder, CO 80301 www.47lining.com | [email protected] Orchestrazione con Talend Studio e Integration Cloud Con Talend Studio e Integration Cloud è possibile utilizzare in modo semplice le risorse ed eseguirne il partizionamento tra Integration Cloud di Talend, che è una piattaforma in hosting per la pianificazione e la gestione dei flussi di Big Data end-to-end, e l'account AWS del cliente. I dati del cliente e i componenti di Big Data sottoposti a commissioning quali il data warehouse basato su Redshift e i cluster Elastic MapReduce risiedono nell'account AWS del cliente. Con Talend Studio è possibile creare flussi di componenti di basso livello coerenti con i requisiti della demo, utilizzando componenti specifici di AWS che permettono la gestione delle risorse AWS on demand per ottenere prezzi elastici. Tali flussi vengono pubblicati in Talend Integration Cloud, dove i flussi end-to-end di alto livello vengono pianificati e orchestrati. Vantaggi Questo approccio offre considerevoli vantaggi in termini di risorse di Big Data on demand e prezzi elastici: • Riduce drasticamente il lead time e il budget necessario per definire funzionalità di Big Data pertinenti per l'attività • Come mostrato nella figura seguente, questo approccio si avvale del commissioning delle risorse on demand, pertanto gli utenti pagano solo in base all'utilizzo per supportare le esigenze aziendali • Talend offre facilità d'uso e accessibilità dei flussi di Big Data ai collaboratori nell'intera organizzazione • I componenti specifici di AWS avanzati in Talend 6.1 supportano la gestione on demand e i prezzi elastici Talend Italy Srl Foro Buonaparte 70 , MI 20121 www.talend.com | [email protected] 6525 Gunpark Dr Ste 370-168, Boulder, CO 80301 www.47lining.com | [email protected] WP215-IT