Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Data Lake e Data Warehouse: Architetture per la Gestione dei Dati, Appunti di Database Relazionali

Confronto tra data lake, data warehouse e data lakehouse per la gestione di dati strutturati e non strutturati, supportando business intelligence e advanced analytics. Il data lakehouse riduce la ridondanza e abilita il data management in tempo reale, combinando flessibilità, efficienza e scalabilità. Permette l'accesso a dati eterogenei per data science, AI/ML e analytics. Gartner prevede una rapida adozione di questa tecnologia. Vengono esaminate data governance e caratteristiche dei big data, evidenziando la necessità di architetture e sistemi di processamento dati adeguati.

Tipologia: Appunti

2024/2025

Caricato il 28/05/2025

matteo-marcovecchio-1
matteo-marcovecchio-1 🇮🇹

2 documenti

1 / 68

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
BIG DATA
Professore Federico Ravaldi A.A. 2022/23 Secondo Semestre LM Ingegneria Gestionale
In questo corso studieremo i dati con caratteristiche estreme Big Data.
Internet: interconnessione di computer attraverso un TCP/IP
Appello: 6 appelli scritti da 60 minuti.
Esame: 4 domande aperte su carta (non al PC). Il caso di studio non c’è.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44

Anteprima parziale del testo

Scarica Data Lake e Data Warehouse: Architetture per la Gestione dei Dati e più Appunti in PDF di Database Relazionali solo su Docsity!

BIG DATA

Professore Federico Ravaldi – A.A. 2022/23 – Secondo Semestre LM Ingegneria Gestionale Mail: [email protected] In questo corso studieremo i dati con caratteristiche estreme → Big Data. Internet: interconnessione di computer attraverso un TCP/IP Appello : 6 appelli scritti da 60 minuti. Esame : 4 domande aperte su carta (non al PC). Il caso di studio non c’è.

Sommario

Introduzione

Dato destrutturato: file audio, file video, etc. Data Werehouse: contenitori di tutti i dati … lo faremo con il professore Rizzi. Il cuore dei sistemi Big Data è il “data lake”, ovvero il lago dei dati. Le applicazioni vengono chiamate “applicazioni di data platform”. I big data hanno caratteristiche troppo estreme per essere memorizzate; infatti, serve un Data Base “no SQL” che li memorizzerà. Un altro problema è la capacità computazionale (ovvero la CPU per i dati tradizionali) che serve per far girare gli algoritmi. Processo per trasformare i dati in informazione: processo ETL (Estraggo, trasformo e carico). I Big Data sono una grande sfida nel mondo odierno e offrono enormi opportunità ad imprese, istituzioni, ricerca ed in generale a tutta società in cui viviamo. La rivoluzione digitale ha infatti portato ad una esplosione delle sorgenti informative e della quantità di dati a disposizione. La capacità di reperire, analizzare e correlare questi “Big Data” è diventato un elemento di innovazione distintivo per ogni organizzazione. I Big data sono tuttavia informazioni non facili da reperire, gestire e analizzare a causa della loro mole, eterogeneità e caratteristiche estreme. Per questo motivo stanno nascendo nuove architetture, metodologie e strumenti a disposizione di chi questi dati li deve trasformare in informazioni e conoscenza utili per supportare persone, aziende ed istituzioni a prendere decisioni migliori. 28/02/

Data Revolution

Le organizzazioni sono, da sempre, in cerca di dati e informazioni per competere sul mercato, comprendere e anticipare le esigenze di clienti e/o cittadini, migliorare i propri servizi, prodotti, strategia, ottimizzare i processi e in generale prendere decisioni migliori e più consapevoli. Grazie all’ informatica , a internet , alla digitalizzazione dei processi aziendali, alla digital trasformation ora ci sono tantissimi dati a disposizione. Non è facile trasformare questi dati in informazioni utili a prendere decisioni migliori, ma il nostro compito sarà quello in trasformare dati in informazioni. Data driven company : aziende che decidono di usare il dato come asset per prendere decisioni migliori. Esempio: Barilla, cosa conosce questa azienda dei suoi clienti (come Conad)? Come fa a conoscerli meglio? Data Warehouse contiene informazioni: trasforma il dato grezzo (come lo scontrino, o la carta fedeltà), in informazioni.

Esempio: la Conad vende questo dato ricavato a Barilla. Non mette nome e cognome del cliente che compra il prodotto, ma da le indicazioni delle caratteristiche peculiari che non identificano personalmente il cliente. Data monetization : possibilità di monetizzare dei dati attraverso la vendita, scambio o condivisione dei dati con attori esterni all’azienda oppure con attori interni. La trasformazione digitale è il processo di utilizzo delle tecnologie digitali: internet, mobile, cloud, big data, intelligenze artificiale , etc. per migliorare i processi di un’azienda re-immaginandosi il modo di interagire con clienti, cittadini e partner. Esempio: Airbnb si basa sul concetto di scaling. Airbnb in 4 anni aveva 650mila stanze. Tutto ciò che vedremo è rappresentato in queste due piramidi:

Dati

I dati sono la rappresentazione originaria e non interpretata di un fenomeno o evento effettuate attraverso simboli o combinazioni di simboli, o di qualsiasi altra forma espressiva. I dati sono una raccolta di elementi grezzi utilizzati per il calcolo, il ragionamento o la misurazione. I dati nella loro forma primordiale sono grezzi e inutili finché non sono organizzati, quando i dati vengono elaborati, organizzati, strutturati e presentati in un determinato contesto si parla di informazione. I dati vengono anche chiamati “raw data” = dati grezzi perché, in quanto tali, non mi aiutano a prendere delle decisioni.

Informazioni

I dati sono diversi dalle informazioni. Queste ultime vengono chiamate tali quando i dati vengono elaborati, organizzati, strutturati e presentati in un contesto, si parla di informazione. L’informazione deriva da un dato o da un insieme di dati, sottoposti a un processo di interpretazione (ad esempio: elaborati da un computer) che li ha resi significativi e interpretabili per il destinatario → Processo EPL. Non esiste una informazione senza un dato, perché un dato rappresenta sinteticamente l’informazione. Se vogliamo trasformare le informazioni in conoscenza uso degli algoritmi → statistica avanzata. Parliamo di Data Mining. Esempio: birra e pannolini.

affidano a un numero limitato di euristiche che a volte danno giudizi ragionevoli e a volte portano a errori sistematici e all’irrazionalità ”. Kahneman scopre un euristica : se in un messaggio prevalgono elementi negativi le persone si orientano verso soluzioni probabilistiche, al contrario con elementi positivi vogliono andare sul sicuro. Gli esseri umani prendono costantemente decisioni che possono avere un enorme impatto sulle prestazioni aziendali o sul loro benessere personale. Nel prendere queste decisioni spesso fanno affidamento sul loro Sistema “Automatico” (SISTEMA 1 = sistema che ha alcune caratteristiche per cui ci viene spontaneo. Esempio: “è sempre acceso”, “costa di più”) e non utilizzano il loro Sistema “Pensante” (Sistema 2 Esempio: “è molto stancante”, “consuma molti zuccheri” → non cade nei bias), facendo potenzialmente scelte che non massimizzano le loro prestazioni aziendali o il loro benessere o che possono addirittura essere nocive. Bias effetto framing : porta il nostro cervello a valutare, giudicare o interpretare le informazioni in base al contesto in cui sono fornite. Se in un messaggio prevalgono elementi negativi le persone si orientano verso soluzioni probabilistiche, con elementi positivi al contrario vogliono andare sul sicuro. Bias della conferma (confirmation bias) meccanismo inconscio per reperire prove a favore della tua opinione. A causa di questo bias il nostro pregiudizio su qualunque argomento è rafforzato dalla ricerca di elementi a favore della nostra tesi, ignorando del tutto le prove contrarie. Bias della selezione (selection bias) è quel meccanismo che ci porta ad analizzare un segmento in maniera errata. Si concretizza ad es. quando si effettua un’indagine di mercato su un campione di persone scelte senza una buona definizione e già con in mente un forte pregiudizio. Per evitare questo errore si può provare ad essere oggettivi nella selezione a monte. Se hai necessità di creare un sondaggio, ad esempio, crea un gruppo di intervistati che sia eterogeneo e vario. Bias effetto alone (Halo Effect) indica la predisposizione a credere che se una persona è molto brava in un campo, allora è credibile in tutti i campi (molto usata dagli influencer). Ad esempio, nella pubblicità si utilizzano testimonial, per promuovere un prodotto con il quale quella persona non ha nulla a che fare.

Data Driven ” significa che le organizzazioni sono guidate dai dati e in grado di prendere decisioni basate su fatti oggettivi! Questa è la conseguenza di un processo, complesso ma essenziale, in grado di trasformare i dati grezzi in informazioni e conoscenza su cui prendere decisioni migliori. I dati interni all’azienda, che vengono dai processi aziendali, di solito sono dati meno difficili da analizzare e negli anni 90 due studiosi hanno creato il data warehouse. I dati esterni all’azienda sono dati che, a volte, hanno caratteristiche estreme. Non sono solo dati alfanumerici. Sono dati con volume significativo e destrutturati (a volte). Sono dati che si muovono in real time. Un processo aziendale è un insieme di attività che, una volta completate, raggiungono un obiettivo organizzativo. Fin dal principio dell'era digitale le aziende hanno fortemente investito in sistemi gestionali , una classe di programmi software in grado di supportare applicazioni orientate alle transazioni e archiviare dati. I sistemi gestionali rappresentano l'insieme dei programmi software che digitalizzano, gestiscono e, per quanto possibile, automatizzano i processi aziendali (memorizzando i relativi dati all’interno del proprio database ). Quando un evento nel mondo reale cambia lo stato dell'azienda, all’interno di questi sistemi viene eseguita una transazione per riflettere il corrispondente cambiamento nel database. ERP : gestire tutti i processi aziendali con un solo software gestionale, un solo fornitore e un solo database vs Best of Breed : selezionare il miglior software gestionale per ogni processo aziendale Il migliore sistema gestionale per supportare la migliore contabilità nelle aziende è SAP. SAP è diventato un ERP, ovvero è in grado di coprire tutti i processi aziendali. Sales force: ha ucciso il mercato CRM, ovvero il mercato che gestisce le relazioni internazionali. Sales force fa solamente un processo aziendale. “ERP ( Enterprise Resource Planning ) sta per gestione integrata dei processi aziendali. È un software che promette la perfetta integrazione di tutti i dati che fluiscono attraverso l'azienda: informazioni finanziarie, contabili, risorse umane, supply chain e clienti” (Davenport, 1998). Un solo database, una sola applicazione e una sola interfaccia unificata per l'intera azienda.

" BI è un termine generico che include applicazioni, infrastrutture, strumenti e best practice che consentono l'accesso e l'analisi delle informazioni per migliorare e ottimizzare le decisioni aziendali ". Gartner " La BI è un insieme di metodologie, processi, architetture e tecnologie che trasformano i dati grezzi in informazioni utili per consentire analisi, approfondimenti e processi decisionali più efficaci ". Forrester. " La business intelligence è un insieme di strumenti e procedure che consentono a una azienda di trasformare i propri dati di business in informazioni utili al processo decisionale, da rendere disponibili alla persona giusta e nel formato idoneo Le informazioni così ottenute sono utilizzate dai decisori aziendali per definire e supportare le strategie di business, così da operare decisioni consapevoli e informate con l'obiettivo di trarre vantaggi competitivi, migliorare le prestazioni operative e la profittabilità e, più in generale, creare valore per l'azienda ". Rizzi Bill Inmon e Ralph Kimball sono due studiosi che hanno studiato la differenza tra il Management System dall’ Analytical System Non è facile gestire e trasformare i dati grezzi , contenuti nei database dei sistemi gestionali, in informazioni e conoscenza a supporto del processo decisionale; tuttavia, nel tempo il mercato ha trovato la soluzione ideale nella Business Intelligence e nel Data Warehouse. I sistemi da cui i dati grezzi non provengono più solo da sistemi gestionali, ma anche da tante altre fonti dati → Data Revolution. Le organizzazioni hanno sempre cercato nuovi dati per migliorare il proprio processo decisionale e ora grazie alla Data Revolution hanno una marea di dati a propria disposizione.

Categorizzazione delle sorgenti informative

LO CHIEDE ALL’ESAME
  • Machine generation data (dati generati dalle macchine) sono dati generati automaticamente da dispositivi digitali, o da processi informatici, applicazioni o altri meccanismi senza l’intervento attivo di un essere umano. Un esempio potrebbero essere tutti i sensori che sono collegati ad internet, i sensori che sono in grado di scambiare dati tra loro per collaborare. Esempio: Yoox è un sito di e-commerce. I dati e i sensori che mettiamo sul nostro corpo, ovvero i wearable devices, sono machine generation data. Definizione IoT = rete delle apparecchiature e dei dispositivi, connessi a Internet, equipaggiati con un software che permetta di scambiare dati con altri oggetti connessi. Obiettivo di questi dispositivi è raccogliere dati e comandare e controllare particolari attività. Le due caratteristiche principali di un ‘oggetto connesso’ sono: o avere indirizzo IP che ne consenta l’identificazione univoca su internet o avere la capacità di scambiare dati attraverso la rete stessa senza bisogno dell’intervento umano Esempio: Industry 4.0, IoT, e-commerce. Definizione Industry 4.0 : si fa riferimento ad un processo il cui obiettivo principale è digitalizzare il settore manifatturiero , rinnovando la catena del valore fino a trasformare la natura stessa delle organizzazioni. Oggi il sinonimo di Industry 4.0 è smart-manufacturing, dove il prefisso “smart” diventa la base di una gestione integrata dei dati e delle informazioni, unitamente all’uso della tecnologia digitale. La chiave di volta dell'Industry 4.0 sono i sistemi ciberfisici (CPS) ovvero sistemi in grado di interagire in modo continuo con il sistema fisico in cui operano e composti da elementi fisici dotati ciascuno di capacità computazionale, comunicazione e capacità di controllo, che sono strettamente connessi con i sistemi informatici e che possono interagire e collaborare con altri sistemi CPS. Questo sta alla base della decentralizzazione e della collaborazione tra i sistemi, che è strettamente connessa con il concetto di Industry 4.0.
  • Dati generati dalle persone : le persone generano, ogni giorno, enormi quantità di dati attraverso le loro attività su social media come Facebook e LinkedIn o siti di condivisione di foto online come Instagram e Flickr o video come YouTube, o Word, o sistemi di messaggistica online. Un'enorme quantità di informazioni viene generata tramite blog e commenti, ricerche su Internet, messaggi di testo, e-mail e documenti personali. L’immensa quantità di informazioni generata spontaneamente dagli utenti del web in riferimento ad esempio ad un’azienda, a un brand o a un servizio, costituisce un’enorme collezione di dati, che può rappresentare per le aziende un vantaggio solamente se si è in grado di analizzarli in maniera efficace , cioè solo se si è in grado di tradurli in informazione e conoscenza. Analizzare in maniera efficace i dati significa analizzare dati enormemente grandi, destrutturati (come Instagram ad esempio). I dati che nascono ogni 60 secondi su internet sono i seguenti:

computer sono aumentate in modo esponenziale (raddoppiano circa ogni 1,5 anni). Il grafico mostra l’aumento della capacità di calcolo nel tempo (calcoli al secondo). Se i prodotti tecnologicamente avanzati fossero particolarmente costosi, avrebbero un impatto limitato sull'intera società. Per questo motivo, è fondamentale guardare sia alla qualità del prodotto che al relativo prezzo. Ray Kurzweil ha analizzato, nel grafico a sinistra, il cambiamento di prezzo e qualità nel mercato IT dal 1900. In quest'ottica possiamo vedere una diminuzione esponenziale del prezzo, per una data qualità del prodotto, nell'arco di +100 anni. Considerando il tempo trascorso dall'introduzione dell'IBM 350 nel 1956 si può notare come il tasso di crescita della capacità di archiviazione non è stato costante come per le altre misure discusse in precedenza. Nel primo periodo della rivoluzione tecnologica si è riusciti infatti ad aumentare questa capacità solo in modo graduale e non lineare. Tuttavia, dal 1980, il progresso tecnologico legato a questo ambito è stato indubbiamente costante e a un ritmo persino superiore all'aumento della velocità del computer. Oggi se voglio memorizzare qualche terabyte, compro un hard disk e li memorizzo.

Cloud Computing

LO CHIEDE ALL’ESAME

La definizione ufficiale di Cloud Computing del Nist ( National Institute of Standards, Information Technology Library ) è : " Il Cloud Computing è un modello per permettere un accesso network onnipresente, conveniente, on-demand ad un pool condiviso di risorse di computazione configurabili (Esempio: network, server, storage, applicazioni e servizi) che possono essere fornite rapidamente e rilasciate con uno sforzo minimo di gestione o interazione con i fornitori di servizi. Questo modello cloud è composto da 5 caratteristiche essenziali, 3 modalità di servizio e 4 modelli di deployment ”. Lo sforzo minimo o interazione tra fornitori significa che io non li incontrerò neanche. Esempio: Google scopre che la latenza di 0,5 secondi nell’utilizzo del motore di ricerca fa perdere il 20% di persone che utilizzano il motore di ricerca. La velocità di risposta dei loro servizi più importanti è fondamentale → creano infiniti computer (data center / server = insieme di infinite macchine), spersi in tutto il mondo, che fanno a gara a rispondere il più velocemente possibile al proprio cliente.

5 Caratteristiche essenziali di un cloud

  1. Self-service on-demand : il cliente può prendere le proprie risorse autonomamente senza dover interagire con il personale del provider cloud (ad esempio, Google, Microsoft, Amazon)
  2. Ampio accesso : le risorse sono disponibili praticamente su qualsiasi dispositivi connesso a internet, che sia un tablet, un cellulare, una workstation
  3. Outsourcing e manutenzione : il provider si occupa a 360° di tutta l’infrastruttura (hw/sw), del disaster recovery, della protezione da attacchi digitali, della manutenzione e dell’aggiornamento (patch, etc). In azienda si dice “on premise”, ovvero che le macchine le installo fisicamente nella propria azienda.
  4. Scalabilità on - demand : il sistema è in grado di gestire carichi di lavoro fluttuanti. Le risorse possono essere velocemente fornite o rilasciate per supportare un rapido scaling (che sia in positivo o in negativo)
  5. Servizio misurabile : si misura e si paga il consumo reale (ad esempio, storage usato, banda utilizzata, potenza computazione usata, numero di transazioni).

3 modalità di servizio di un cloud

  • IaaS ( Infrastructure as a Service ): mette a disposizione macchine virtuali, storage virtuale, infrastrutture virtuali e altre risorse hardware di cui i clienti possono usufruire. Il provider che fornisce il servizio gestisce l’infrastruttura mentre il cliente si occupa del suo sviluppo che include il sistema operativo, le applicazioni e le interazioni utente con il sistema. Esempio: GoGRID, amazon EC 2 , 3Tier. Significa dire: “io compro un cluster di 500 macchine che lavorano in parallelo perché voglio lanciare il mio algoritmo di Machine Learning.”
  • PaaS ( Platform as a Service ): offre macchine virtuali, sistemi operativi, applicazioni, servizi, framework di sviluppo e strutture di controllo. Il cliente può sviluppare le sue applicazioni usando l’infrastruttura cloud o le applicazioni programmate per mezzo di linguaggi e strumenti supportati dal provider. Il provider gestisce l’infrastruttura cloud, i sistemi operativi e il software abilitante. Il cliente invece installa e gestisce le applicazioni che sviluppa. Esempio: Microsoft Azure. Significa dire: “io compro un qualcosa in più, non solo le macchine e non solo il cluster, ma anche il database o una data Platform, ovvero tutto ciò che serve per trasformare dati in informazione”.
  • SaaS ( Software as a Service ): è un ambiente completamente operativo con applicazioni, gestione e interfaccia utente. Le applicazioni sono offerte al cliente attraverso una comoda interfaccia (di solito un browser) e la competenza dell’utente è limitata all’inserimento, alla gestione e all’interazione con l’applicazione finale mentre tutto il resto è a carico del provider. Esempio: quando usi Gmail o Office 365, stai usando SaaS. Significa dire: “io usufruisco direttamente dell’applicazione finale, non mi rendo conto neanche che dietro ci sono dei database o dei computer”.

4 modalità di deploy di un cloud

  • Private cloud : l’infrastruttura cloud è fornita per l’uso esclusivo dei consumer di una singola azienda a cui vengono messi a disposizione livelli avanzati di sicurezza e privacy.

A seguito della Data Revolution sono apparsi sul mercato nuove tipologie di dati. Dati non facili da memorizzare in una tabella di un database relazionale e non facili da gestire con linguaggi d’interrogazione tradizionali perché sono dati senza una vera e propria struttura. Per quanto importanti e utili siano i data Warehouse, questi sono incentrati, per la maggior parte, su dati operazionali e strutturati! Ora ci sono molti altri tipi di dati da trasformare in informazioni che richiedono nuove piattaforme e nuove architetture. Approcci, architetture, strumenti e modelli organizzativi tradizionali non sono stati adatti a questo tipo di complessità. Quello che noi vediamo è il mondo tradizionale e il mondo dei dati, noi vedremo il noSQL. Il tipo di dato, nel mondo tradizionale, è un dato strutturato. Ci sono differenze a livello hardware. In questo caso, tendenzialmente, si lavora con una sola macchina. Nel mondo del DB si lavora con un cluster di macchine distribuite. 14/03/ Big data è il termine che definisce una raccolta di dati con caratteristiche così estreme in termine di volume, velocità e varietà da essere difficilmente gestibile e analizzabile utilizzando database tradizionali e le tradizionali applicazioni di elaborazione dati. I Big Data sono quindi dati che sovrastano sia la capacità di memorizzazione che la capacità di elaborazione dati dei sistemi tradizionali. La quantità di dati è diventata troppo grande, si muovono troppo velocemente e/o sono troppo destrutturati per essere gestiti in modo tradizionale. Per ottenere valore da questi dati deve essere utilizzata una strada alternativa e innovativa che permetta di memorizzarli e trasformarli in informazioni utili al processo decisionale. Alcune definizioni: NON LE CHIEDE ALL’ESAME

  • Calcolo seriale : è costruito e implementato come flusso seriale di istruzioni eseguite su un computer. Seriale significa che si può eseguire solo un'istruzione alla volta, solo dopo che un istruzione è terminata, viene eseguita la successiva.
  • Calcolo parallelo : suddivide il problema in sotto-parti indipendenti in modo che ogni elemento di elaborazione (ad esempio un core/cpu) possa eseguire la sua parte dell'algoritmo contemporaneamente agli altri allo scopo di aumentare le prestazioni complessive di calcolo del sistema.
  • Cluster : insieme di computer collegati tra loro che lavorano come fossero un unico sistema. I cluster di computer hanno ogni nodo (computer) impostato per eseguire la stessa attività,

controllata e pianificata da un software. I Cluster sono emersi come risultato della convergenza di una serie di tendenze informatiche, inclusa la disponibilità di microprocessori a basso costo, reti ad alta velocità e software per il calcolo distribuito ad alte prestazioni. Questi sistemi sono fino a 15 volte più economici dei supercomputer tradizionali a parità di prestazioni. D’altra parte, i cluster hanno scarse prestazioni nel caso di applicazioni non parallelizzabili. Esempio: per fare un calcolo seriale, avere 250 cluster che lavorano in parallelo, non serve a niente se il calcolo stesso non è parallelizzabile. Casualmente gli algoritmi di IA sono spesso parallelizzabili. Dove ha avuto tutto inizio? La Legge di Moore: ogni circa 2 anni la potenza di calcolo e la capacità di memorizzazione raddoppia perché raddoppia il numero di transistor. Due personaggi che hanno cambiato la storia dell’informatica e dei Big Data: Larry Page e Sergey Brin, studenti della Stanford University, dopo aver sviluppato la teoria secondo cui un motore di ricerca basato sull'analisi matematica delle relazioni tra siti web (topologia) produrrebbe risultati migliori rispetto alle tecniche empiriche usate in precedenza, hanno fondato Google Inc. nel 1998. L'ascesa al successo di Google è stata in gran parte dovuta ad un algoritmo brevettato chiamato PageRank che aiuta a classificare le pagine Web che corrispondono a una determinata stringa di ricerca. L'algoritmo PageRank analizza i link generati dalle persone sui siti internet partendo dal presupposto che le pagine web collegate da molte pagine web importanti siano esse stesse importanti. L'algoritmo calcola un punteggio ricorsivo per le pagine, basato sulla somma ponderata dei PageRank delle pagine ad esse collegate. Il PageRank è pensato per correlare al meglio il concetto umano di importanza. Oltre a PageRank, Google, negli anni, ha aggiunto molti altri criteri per determinare il ranking delle pagine nelle liste dei risultati (oltre 250 diversi indicatori) le cui specificità sono mantenute segrete. Come posso indicizzare tutto il web (universo di pagine che cresce esponenzialmente nel tempo)?

  1. Serve un contenitore dei dati facilmente scalabile in ambiente distribuito, che funzioni su hardware a basso costo, memorizzi qualsiasi formato dati e lavori in parallelo per aumentare la velocità di risposta.
  2. Serve un sistema di elaborazione dati che permetta di lavorare velocemente con grandi moli di dati nascondendo le complessità della programmazione parallela in ambiente distribuito. Google diede il via al cambiamento (che sarebbe poi diventato noto come Hadoop) nel mondo dei Big Data quando, nel 2003/2004, rilasciò 2 paper accademici che descrivevano il Google File System (GFS) e MapReduce. Google ha seguito l’approccio “fai da te” ma, invece di costruire qualcosa di mirato alla risoluzione di un problema specifico o di un determinato dataset, aveva creato una piattaforma general purpose. Se ti interessa e vuoi leggerli (NON LO CHIEDE ALL’ESAME): https://research.google.com/archive/gfs- sosp2003.pdf , https://research.google.com/archive/mapreduce-osdi04.pdf.

No SQL

Fino al momento della memorizzazione dei dati, o comunque fino ad oggi, il modo di memorizzare i dati era solo (praticamente) uno. Il 90,8% delle aziende, per memorizzare i dati, usano un database relazionale. I DB relazionali sono fatti da uno standard: il primo è Oracle, secondo Microsoft, terzo IBM, quarto SAP e il rimanente 10% viene usato un altro gestionale.

dell'interfaccia utente, che possono assumere strutture molto più ricche. Di conseguenza, se si desidera utilizzare una struttura dati dell'interfaccia utente molto ricca, è necessario tradurla in una rappresentazione relazionale per memorizzarla su disco. M.Fowler

  1. Poco adatti ad ambienti distribuiti : i database relazionali possono scalare facilmente verticalmente (scale up), cioè scalare aggiungendo CPU più potenti o più RAM su un singolo server. Ma la scalabilità verticale è limitata dalla fisica ed è molto costosa. La scalabilità orizzontale (scale out) supera questi limiti ma non funziona bene con i database relazionali a causa dei meccanismi per imporre la consistenza dei dati (ad es. lock utilizzati per le transazioni ACID) che rallentano le prestazioni (in particolare se il database è in ambiente distribuito).

Perché i database No SQL sono interessanti?

I nuovi sistemi No SQL sono stati progettati per fornire scalabilità orizzontale (scale out) al fine di ottenere elevate prestazioni nelle elaborazioni dati su database distribuiti. Con scalabilità orizzontale si intende l’abilità di distribuire i dati e il carico di queste operazioni su molti server, senza RAM o dischi di archiviazione condivisi. Il termine No SQL ( Not Only SQL ) fu utilizzato per la prima volta nel 1998 da Carlo Strozzi per indicare un database che utilizzava un linguaggio di interrogazione diverso da SQL. Il termine fu ripreso in seguito per indicare tutti quei database non relazionali che non garantiscono le proprietà ACID. I No SQL sono database flessibili, scalabili, ad elevate prestazioni e molto adatti al mondo dei Big Data:

  • Flessibilità : permettono la definizione di schemi flessibili e quindi utilizzati anche su dati semi- strutturati e non strutturati.
  • Scalabilità : sono progettati per favorire la scalabilità orizzontale. Invece di prediligere l’utilizzo di server potenti e costosi, si utilizzano cluster distribuiti composti da diversi computer economici.
  • Prestazioni elevate : rinunciando ad alcune proprietà sui dati (ACID), riescono a fornire prestazioni elevate, difficilmente raggiungibili con i modelli relazionali. Sfruttando l’architettura distribuita e algoritmi ad-hoc, forniscono la cosiddetta high availability, ovvero la capacità di essere sempre disponibili alle richieste, anche a fronte di guasti o malfunzionamenti di una sotto-parte del sistema. La caratteristica principale dei database relazionali è quella di garantire la consistenza dei dati mentre i db NoSQL garantiscono una grande disponibilità a scapito della consistenza. I database relazionali si basano sulle proprietà ACID mentre i database No SQL si basano sulle proprietà BASE ovvero sul Teorema di Cap. LO CHIEDE ALL’ESAME Teorema di CAP : inventato per la prima volta da Eric Brewer nel
  1. Afferma che in un sistema distribuito puoi avere solo due delle seguenti tre garanzie: consistenza, disponibilità e tolleranza della partizione. È impossibile averle tutte e tre insieme, devi scegliere quale sacrificare a seconda delle tue esigenze.
  • Consistenza : ogni lettura (read) riceve la scrittura (write) più recente o messaggio di errore. Esempio: se vado in un database e voglio leggere l’ultimo libro inserito nel database b di libri, io leggo l’ultimo libro scritto.
  • Disponibilità : quando si interroga un sistema, ogni richiesta riceve una risposta (non di errore) ma senza garanzia che contenga la scrittura più recente. Esempio: Amazon qualsiasi cosa succeda, fa sì che compriamo i suoi prodotti. Non è detto che ci sia consistenza (ovvero che contenga la scrittura più recente), ma ci sarà sempre disponibilità.
  • Tolleranza alle partizioni : visto che è un sistema distribuito, ovvero costituito da tanti nodi, potrebbe capitare che un nodo potrebbe non riuscire a comunicare con gli altri. Un sistema

tollerante alle partizioni significa che continua a funzionare quando si verificano partizioni di rete. Se il modo in cui li collego, ad esempio con internet, per un minuto non funziona, N 1 ed N 2 continuano a funzionare. Esempio: booking.com Esempio: booking.com nasce per la prenotazione di hotel. Facciamo finta che l’azienda lavori in un cluster distribuito, quindi un cluster di nodi. Facciamo finta che abbia solamente due nodi. Un nodo, essendo distribuito, lo fa in Asia (triangolo verde in figura) mentre un altro in Europa (pentagono azzurro in figura). Perché ne fa 2? Perché un nodo lo mette che risponde a tutti i clienti europei, mentre un altro anche risponde a tutti i clienti indiani. Facciamo finta che Martin e Pramod, nello stesso istante, decidano di prenotare la suite presidenziale dell’hotel X per lo stesso giorno dell’anno e alla stessa ora. Come funziona Booking.com, se loro lo fanno nello stesso istante? il sistema è in grado di capire che deve darlo solamente ad una persona. Il sistema è in grado di gestire il disaster recovery. Variante : ad un certo punto, per circa un minuto, c’è un problema ed è quello che i due nodi non riescono a scambiarsi informazioni. Booking.com ha deciso di essere tollerante alle partizioni: sia il nodo 1 che il nodo 2 continuano a funzionare anche se non possono scambiarsi informazioni. Quindi, decidono di nuovo di prenotare la suite presidenziale dell’hotel X per lo stesso giorno dell’anno e alla stessa ora. Problema: nodo che ha tutte le informazioni la vede libera. COPIA CAMI COME FINISCE LA STORIA ( not important ) In generale, la rete è da considerarsi inaffidabile anche all'interno di una singola organizzazione (intranet). Il verificarsi di momenti problemi alla rete in un ambiente distribuito non è un'opzione, ma una certezza! La tolleranza della partizione deve essere quindi sempre gestita. Devi tollerare le partizioni in un sistema distribuito. Secondo il teorema di CAP, ciò significa che ci restano due opzioni: Consistenza e Disponibilità. La scelta è tra: