Big Data Davide Giarolo
Definizione da Wikipedia Big data è il termine usato per descrivere una raccolta di dati così estesa in termini di volume, velocità e varietà da richiedere tecnologie e metodi analitici specifici per l'estrazione di valore Big data rappresenta anche l'interrelazione di dati provenienti potenzialmente da fonti eterogenee, quindi non soltanto i dati strutturati, come i database, ma anche non strutturati, come immagini, email, dati GPS, informazioni prese dai social network.
Perché una nuova tecnologia? Un database relazionale può risultare “stretto” La tecnologia opensource ci permette di evolvere verso soluzioni NoSQL L’ecosistema Hadoop per Big data apre scenari interessanti nella profilazione del cliente
Cos’è Hadoop: Hadoop è un framework Open Source di Apache, concepito per offrire supporto ad applicazioni distribuite e semplificare le operazioni di storage e gestione di dataset di grandi dimensioni (Big Data) Anche se nulla impedisce di realizzare l’archiviazione dei dati tramite un classico database relazionale, spesso questa scelta porta a investire risorse economiche importanti sia in termini computazioniali, sia di storage. Questi e altri motivi portano alcuni colossi dell’innovazione, tra cui Google e Facebook, ad adottare strumenti diversi dagli RDBMS per gestire e i loro Dataset: tra le tecnologie Open Source create per questo scopo una delle più diffuse e utilizzate è Apache Hadoop
Un cenno sull’ecosistema Hadoop: Hadoop common Uno strato software comune che fornisce funzioni di supporto agli altri moduli. HDFS File system distribuito che fornisce un’efficace modalità di accesso ai dati. Garantisce che i dati siano ridondanti nel cluster rendendo le operazioni sui dati stessi immuni dall’eventuale guasto di un nodo. HDFS accetta dati in qualsiasi formato, strutturati e non strutturati. Di HDFS parleremo a breve in maniera dettagliata. Map-­‐Reduce Un pattern che implementato permette di realizzare sistemi di computazione parallela e distribuita di grandi quantità di dati lavorando secondo il principio del “divide-­‐et-­‐impera“. YARN Un framework che consente di creare applicazioni o infrastrutture per il calcolo distribuito (sulla base di MapReduce). Esso si occupa della gestione delle risorse del cluster (memoria/CPU/storage). … e il NoSQL?!? Il termine NoSQL fu usato per la prima volta nel 1998 per una base di dati relazionale open source che non usava un'interfaccia SQL. L'autore Carlo Strozzi, dichiarò che "come movimento, NoSQL diparte in modo radicale dal modello relazionale, e quindi andrebbe chiamato in modo più appropriato NoREL, o qualcosa di simile"[1]. All'opposto di quanto si potrebbe pensare, il movimento NOSQL non è contrario all'utilizzo di database relazionali. Il termine NOSQL infatti è acronimo di Not Only SQL, a significare che esistono diversi casi d'uso per i quali il modello relazionale rappresenta una forzatura, ma tanti altri per i quali tale modello è ancora la soluzione migliore.
Principali implementazioni NoSQL: Coloumnfamily: i dati sono organizzati in righe e colonne, ma le righe possono avere quante colonne si vogliono e non c’è bisogno di definire le colonne come prima cosa. Document store: è l’evoluzione del metodo key/value, rispetto ai normali database relazionali invece che immagazzinare i dati in tabelle con dei campi fissi, questi vengono messi in un documento che può contenere illimitati campi di illimitata lunghezza, così se ad esempio di una persona conosciamo solo nome e cognome, ma magari di un’altra persona anche indirizzo, data di nascita e codice fiscale, si evita che per il primo nominativo ci siano campi inutilizzati che occupano inutilmente spazio. Graph: i dati vengono immagazzinati sotto forma di strutture a grafi, rendendo più performante l’accesso a questi da applicativi orientati agli oggetti. Key/Value: in questo caso i dati vengono immagazzinati in un elemento che contiene una chiave assieme ai dati veri e propri, questo metodo è il più semplice da implementare, ma anche il più inefficiente se la maggior parte delle operazioni riguardano soltanto una parte di un elemento.
Vediamo come i Big Data possono aiutarci: Ci permettono di registrare informazioni eterogenee in tempo reale per successiva elaborazione Il crescere delle dimensioni occupate dai dati viene gestito semplicemente aggiungendo risorse hardware di costo contenuto I Big Data Analitycs permettono di passare da una rendicontazione a posteriori su dati puliti tramite BI ad una proiezione automatica in tempo reale e quindi efficace nella vendita online e nel supporto decisionale per il venditore
Alcuni esempi reali: Analisi dei log dei siti web di ecommerce Analisi dei ritorni delle campagne di email marketing Analisi delle transazioni concluse o abbandonate a fronte di attivazione tramite campagne banner Segmentazione dei clienti sulla base di informazioni recuperate attivamente o passivamente negli store fisici Prevenzione degli attacchi informatici volti a rendere inutilizzabili le piattaforme ecommerce
Perché è importante partire subito? Non è necessario definire una struttura predeterminata Il dato viene comunque immagazzinato in maniera grezza E’ possibile in maniera flessibile allocare risorse on demand Social network, hosting providers, fonti dati esterne tendono a ridurre e rendere disponibili a pagamento le informazioni a disposizione Trends: Le basi dati sono ormai una commodity, meglio sfruttarle come BDaaS Gli strumenti di analisi poggiano sulle medesime tecnologie Hadoop/
NoSQL Predisporre oggi lo stoccaggio delle informazioni, con strumenti opensource flessibili e supportati dai vendors Utilizzare le piattaforme di Big Data Analitycs più moderne e congrue per il tipo di rendicontazione o supporto decisionale che si vuole adottare