Articoli del meseArticoli del mese

Articoli del mese


Stampa articolo

Articolo del Mese - Novembre 2009

Web database: la questione MapReduce

Colin White by Colin White

Quando furono introdotti per la prima volta i sistemi relazionali, il fronte dei sostenitori dei database gerarchici (Ims) e di rete (Idms - Integrated database management systems) sosteneva che il modello relazionale fosse inferiore e non riuscisse a garantire le stesse prestazioni. Nel corso del tempo queste affermazioni si rivelarono prive di fondamento e i prodotti relazionali sono oggi la tecnologia su cui si basa un grande numero di applicazioni operazionali e analitiche. Non solo, ma i sistemi relazionali sono poi riusciti a sopravvivere alla successiva sfida messa in atto dalla tecnologia di database orientata agli oggetti.
Sebbene la tecnologia relazionale sia riuscita a sopravvivere alle varie schermaglie succedutesi nel tempo, quanto accaduto è la naturale dimostrazione che un unico modello difficilmente riesce a soddisfare tutte le esigenze e che alcune applicazioni possono avere maggiori vantaggi seguendo approcci alternativi. Il confronto ha inoltre contribuito al miglioramento dei prodotti relazionali, grazie all’incorporazione di nuove funzionalità, come per esempio la gestione di dati complessi e il supporto a linguaggi Xml e XQuery. Alcuni esperti affermano che molte di queste funzionalità hanno compromesso la purezza e la semplicità del modello relazionale.
Quando sono infine arrivato a pensare che i principali prodotti relazionali presenti sul mercato fossero ormai da considerarsi una commodity, ecco apparire una nuova tecnologia, chiamata MapReduce, che accende l’ennesimo dibattito. In questo articolo l’obiettivo è cercare di evidenziare i pro e i contro di MapReduce, tecnologia definita recentemente da Michael Stonebraker, uno dei primi ricercatori che si cimentarono nel definire il modello originario del database relazionale, come un gigantesco passo indietro1.

Che cos’è MapReduce?

MapReduce è diventata popolare grazie a Google che lo utilizza per elaborare ogni giorno molti petabyte di dati. Nel documento2  che costituisce il fondamento tecnologico del nuovo modello, redatto da Jeffrey Dean e Sanjay Ghemawat di Google, si afferma che:
“MapReduce è un modello di programmazione cui è stata associata un’implementazione per elaborare e generare insiemi di dati di grandi dimensioni… I programmi scritti che adottando questo stile funzionale vengono automaticamente gestiti in una logica parallela ed eseguiti su cluster di macchine a tecnologia commodity. Il sistema run time si occupa nel dettaglio del partizionamento dei dati di input, pianificando l’esecuzione del programma attraverso una serie di macchine, gestendone gli eventuali guasti e la comunicazione che ha luogo tra esse. Tutto questo permette a programmatori senza alcuna esperienza in sistemi paralleli e distribuiti di utilizzare con molta semplicità le risorse di un grande sistema distribuito”.
I commenti di Michael Stonebraker su MapReduce aggiungono ulteriori dettagli:
“Il modello di MapReduce è semplice. E’ costituito da due programmi scritti dall’utente, chiamati map e reduce, e da un framework che abilita l’esecuzione di un grande numero di istanze di ciascun programma su un cluster elaborativo”.
“Il programma map legge un insieme di record da un file di input, svolge le operazioni di filtraggio e le trasformazioni desiderate, quindi produce una serie di record di output nella forma convenuta (chiave, dati). Mentre il programma map produce questi record, una funzione separata li partiziona in multipli e indipendenti contenitori applicando una funzione alla chiave di ciascun record. Questa funzione è tipicamente hash, sebbene sia sufficiente qualsiasi tipo di funzione deterministica. Una volta che il contenitore è pieno, il suo contenuto viene riversato su disco. Infine il programma map termina producendo una serie di file di output, uno per ciascun contenitore”.
“Dopo essere stati raccolti dal framework map-reduce i record di input vengono raggruppati per chiavi (attraverso operazioni di sorting o hashing) e sottoposti al programma reduce. Come per il programma map, reduce esegue una elaborazione arbitraria attraverso un linguaggio general purpose. Di conseguenza può compiere qualsiasi sorta di operazioni sui record. Per esempio può elaborare alcune funzioni addizionali per altri campi dati del record. Ciascuna istanza reduce può scrivere record a un file di output e quest’ultimo rappresenta una parte della risposta soddisfatta da una elaborazione MapReduce”.
La coppia chiave/valore prodotta dal programma map può contenere qualsiasi tipo di dati nel campo assegnato al valore del campo. Google, per esempio, utilizza questo approccio per indicizzare grandi volumi di dati non strutturati. Sebbene Google usi una propria versione di MapReduce esiste anche una versione open source, chiamata Hadoop3  resa disponibile dal progetto Apache. IBM e Google hanno poi annunciato un’importante iniziativa per utilizzare Hadoop all’interno di corsi universitari sulla programmazione in ambiente distribuito.
MapReduce non rappresenta un nuovo concetto. Si basa sulla capacità di eseguire un list processing attraverso linguaggi di programmazione funzionali dichiarativi come Lisp (List processing). I sistemi attuali implementano MapReduce utilizzando linguaggi come Java, C++, Python, Perl, Ruby, e altri.
Le coppie chiave/valore utilizzate nell’elaborazione MapReduce possono essere archiviate in un file o in un database. Per gestire i dati Google, per esempio, usa un proprio sistema, chiamato BigTable, che si appoggia al file system distribuito di Google, GFS.
I database che sfruttano la logica di coppie chiave/valore esistono da molti anni, Per esempio, Berkeley Db è un database embedded che esegue archiviazione dati in una struttura dati per coppie chiave/valore. Sviluppato originariamente negli anni 80 a Berkeley è oggi di proprietà Oracle. Berkeley Db può anche funzionare come motore di storage di backend per i Dbms relazionali open source MySql.

Perché questa controversia?

Appurato che MapReduce non è un modello di database, ma un modello di programmazione per creare potenti applicazioni per il calcolo parallelo e distribuito, perché allora esiste questa controversia nei confronti dei sistemi relazionali? Per rispondere alla domanda si deve analizzare in dettaglio il modello relazionale dei dati.
Nel modello relazionale i dati vengono concettualmente archiviati in insiemi di relazioni o tabelle. Queste ultime sono manipolate utilizzando operatori relazionali come selection, projection e join i quali sono oggi implementati via Sql (Structured query language).
Le modalità in cui i dati di tabella vengono archiviati e gestiti all’interno di un Rdbms dipendono dal singolo vendor. La mappatura degli operatori relazionali (dichiarazioni Sql) verso il motore di storage di backend è gestita dall’ottimizzatore relazionale il cui compito è determinare il percorso migliore per accedere fisicamente ai dati. L’indipendenza dai dati fisici rappresenta infatti uno dei vantaggi essenziali del modello relazionale.
Quando si utilizza Sql gli utenti definiscono quali sono i dati cui sono interessati ad accedere e non come si deve accedere a essi. Tecniche quali l’indicizzazione e il calcolo distribuito e parallelo vengono gestiti dal sistema Rdbms sottostante. Sql è un linguaggio dichiarativo e non un linguaggio imperativo/procedurale come Java e C++ e richiede una accurata descrizione di qualsiasi algoritmo di accesso ai dati utilizzato. Ovviamente gli statement Sql possono essere incorporati nei linguaggi procedurali così come è vero il contrario, ovvero Sql può invocare delle stored procedure o funzioni specifiche definite dall’utente e scritte in un linguaggio procedurale.
La preoccupazione di Michael Stonebraker è che l’utilizzo e la diffusione di MapReduce possa far compiere all’industria un salto nel passato riportando le lancette dell’orologio ai tempi dei sistemi pre-relazionali quando non erano ancora state formalizzate una logica di database e l’indipendenza dei dati applicativi. La tesi difensiva avanzata dai sostenitori di MapReduce è che la maggior parte dei dati elaborati sono dati non strutturati che non corrispondono ad alcuno schema. Si afferma, inoltre, che il maggior numero di programmatori, poiché non conosce o non vuole conoscere Sql, trova MapReduce molto più semplice e, di conseguenza, quest’ultimo viene preferito per accedere e analizzare dati utilizzando uno stile di programmazione procedurale.
Entrambe le opinioni sono corrette ed entrambi gli approcci presentano vantaggi. Come affermato all’inizio dell’articolo non esiste un modello che possa essere adatto per tutti. La sfida è comprendere quando è meglio utilizzare l’uno o l’altro.

(Segue a dicembre)

1 http://www.databasecolumn.com/2008/01/mapreduce-a-major-step-back.html
2 http://labs.google.com/papers/mapreduce.html
3
http://hadoop.apache.org/

Web database: la questione MapReduce - Technology Transfer

Enterprise information catalog. I requisiti per fare la scelta giusta
Mike Ferguson

La nuova era dell’analisi predittiva - Le aziende alla prova del Machine Learning
Frank Greco

Uno sguardo Agile - Per capire il passato e progettare il futuro
Arie van Bennekum

Trasformazione Agile
Se il product owner diventa un collo di bottiglia

Sander Hoogendoorn

Una Fiat o una Ferrari?
Qual è la più adatta per il business digitale?

Barry Devlin

Vincere la complessità dei dati. È l’ora dello smart data management
Mike Ferguson

Big Data e Analytics - Se il machine learning accelera anche la data science
Mike Ferguson

I dati al centro del business
Christopher Bradley

I Big Data forniscono il contesto e la ricchezza predittiva attorno alle transazioni di business Avere dati coerenti e di qualità resta fondamentale per il processo decisionale
Barry Devlin

Cosa c’è dietro l’angolo? Cinque mosse per diventare un digital leader
Jeroen Derynck

Managing information technology Gestire l’IT come un business nel business
Mitchell Weisberg

Data integration self-service Miglioramento della produttività o caos totale?
Mike Ferguson

Project manager vecchi miti e nuove realtà
Aaron Shenhar

La catena alimentare dei requisiti
Suzanne Robertson

Come diventare un’azienda data-centric
Lindy Ryan

Enterprise analytical ecosystem - Come comprendere il comportamento online dei clienti e capitalizzare il valore dei dati nell’era Big Data
Mike Ferguson

Agilità? Basta Volere
Suzanne Robertson

Ma la vostra architettura è efficace?
Mike Rosen

Se il NoSQL diventa SQL
Rick van der Lans

La data quality e l’impatto sul business
Danette McGilvray

Business analysis e regole di business By Ronald G. Ross con Gladys S.W. Lam
Ronald Ross

Usare Scrum su larga scala: cosa cambia?
Craig Larman

Le architetture per ridurre il debito tecnico
Mike Rosen

Conversando con un marziano
Suzanne Robertson

Cosa c’è di nuovo nel project management?
Aaron Shenhar

Reinventare la Business Intelligence
Barry Devlin

Il nuovo volto della business intelligence
Shaku Atre

Alla ricerca del valore tra i pomodori nell'orto
John Favaro

I big data cambiano il mercato dei Database Server
Rick van der Lans

Un “superstorm” di informazioni
Barry Devlin

I dieci step per la qualità dei dati
Danette McGilvray

Perché è meglio evitare il private cloud?
Jason Bloomberg

Leonardo da Vinci aveva ragione!
Chris Date

Mobile user experience: Come adottare una strategia sostenibile
James Hobart

Cosa significa occuparsi di architettura?
Mike Rosen

Virtualizzazione dei dati e sistemi di Business Intelligence Agili
Rick van der Lans

Modelli e linguaggi naturali, quale il modo migliore per definire i requisiti?
James Robertson

Extreme Scoping: un approccio Agile all'Edw e alla BI
Larissa Moss

BI², la Business Intelligence al quadrato
Barry Devlin

I test di regressione in ambienti legacy
Randy Rice

Le conseguenze della consumerizzazione e del Cloud
Chris Potts

Come vanno gli affari? Chiedetelo al vostro cruscotto
Shaku Atre

Organizzare team di progetto efficienti in ambienti DW/BI
Larissa Moss

Big Data, come e perché
Colin White

Business Capabilities e l'allineamento del business all'IT
Mike Rosen

Il valore della tassonomia nella ricerca delle informazioni
Zach Wahl

BI, ma il Data Warehouse è ancora necessario?
Colin White

Reinventare la Business Intelligence
Barry Devlin

Il cruscotto delle prestazioni: il nuovo volto della Business Intelligence
Shaku Atre

Modelli e processi di User acceptance testing
Randy Rice

I limiti nel gestire l'IT come un Business
Chris Potts

Le componenti fondamentali del Cloud
George Reese

Metadati e DW 2.0
Derek Strauss

BI Open Source: basso costo e alto valore?
Jos van Dongen

Semplicità e requisiti
Suzanne Robertson

Business intelligence e analisi testuale
Bill Inmon

Extreme Scoping™: approcci agili al DW e alla BI
Larissa Moss

Dalla BI a un'architettura IT di livello Enterprise
Barry Devlin

Ambiente efficiente di ricerca di informazioni
James Hobart

Il Business deve trainare la Strategia IT
Chris Potts

Web database: la questione MapReduce (seconda parte)
Colin White

Web database: la questione MapReduce
Colin White

Misura delle prestazioni. I sette comandamenti
Harry Chapman

Le dieci cose che un architetto deve fare per creare valore
Mike Rosen

Sviluppare applicazioni a prova di sicurezza
Ken van Wyk

The ECM Landscape in 2008
Alan Pelz-Sharpe

Ma chi sono gli operatori dell’informazione?
Colin White

Qualità dell’informazione e trasformazione del management
Larry English

Classificazione sistematica delle informazioni
Zach Wahl

L’uso intensivo del Web nelle applicazioni di Bi
Colin White

Enterprise Search
Theresa Regli

La forza dell'astrazione
Steve Hoberman

La strada verso una BI pervasiva
Cindi Howson

Soa, una strategia di test
Randy Rice

Verso una BI più semplice e a minor costo
Colin White

I contenuti “Killer” del Web
Gerry McGovern

Sviluppo iterativo del software per i Dw
Larissa Moss

Qualità delle Informazioni e Datawarehousing
Larry English

Lo scenario Ecm 2008
Alan Pelz-Sharpe

La nascita del Web 3.0
John Kneiling

Documentazione: il dossier del crimine
Suzanne Robertson

L’impatto del Web 2.0 sui portali delle imprese
Colin White

Le tecniche vincenti di IT Management
Ken Rau

Web 2.0
Ed Yourdon

Web di successo se si conosce il cliente
Gerry McGovern

Un approccio alla BI incentrato sui processi
Colin White

Integrare Master Data Management e BI (Parte Seconda)
Mike Ferguson

Integrare Master Data Management e BI (Parte Prima)
Mike Ferguson

Il Project Manager è una Tata
Suzanne Robertson

Web di successo se si conosce il cliente
Gerry McGovern

L'informazione personalizzata
Colin White

La Tassonomia dell'Impresa
Zach Wahl

Managed Meta Data Environment (II parte)
David Marco

Managed Meta Data Environment
David Marco

Migliorare le applicazioni dell'impresa con Web 2.0
James Hobart

La Balanced Scorecard migliora la Performance dell'IT
Harry Chapman

La fusione dei processi dell'impresa grazie a Soa (II parte)
Max Dolgicer

La fusione dei processi dell'impresa grazie a SOA (I parte)
Max Dolgicer

Volere è Potere, in Ogni Senso
Suzanne Robertson

Dimostrate con i numeri il valore dei contenuti del web
Gerry McGovern

Il Back-end della pianificazione strategica dell'It
Ken Rau

L'audit delle prescrizioni di progetto (II parte)
Suzanne Robertson

L'audit delle prescrizioni di progetto (I parte)
Suzanne Robertson

Il Processo di gestione delle informazioni
Ted Lewis

I requisiti come strumento di gestione dei progetti
Suzanne Robertson

Il futuro è nel contenuto killer del web
Gerry McGovern

Alla ricerca del valore tra i pomodori nell'orto
John Favaro

Rilevare i costi sulla base delle attività
Ken Rau

Un percorso verso l'impresa intelligente (II parte)
Mike Ferguson

Un percorso verso l'impresa intelligente (I parte)
Mike Ferguson

Il Data Store Operativo: un lavoro di martello
Claudia Imhoff

Il data warehouse orientato all'impresa
Michael Schmitz

Dieci punti chiave per realizzare balanced scorecard di successo
Harry Chapman

Content management: i contenuti al primo posto
Gerry McGovern

Applicazioni Web ad alta disponibilità
John Kneiling

Il 2004, sarà l'anno in cui abbandoneremo html?
James Hobart

La tecnologia EII ripropone il data warehousing virtuale?
Colin White

Misurare per Gestire
Ken Rau

Volere è Potere, in Ogni Senso
Suzanne Robertson

Realizzare il CPM e l'integrazione della BI
Mike Ferguson

Tutti i punti della FPA
Koni Thompson

Requiem per il Portale?
Colin White

Business Intelligence: dalla teoria alla realtà (II parte)
Shaku Atre

Business Intelligence: dalla teoria alla realtà (I parte)
Shaku Atre

I portali Corporate e di E-business: la nuova generazione del posto di lavoro
Mike Ferguson

I 10 errori da evitare nella realizzazione di un Meta Data Repository (II Parte)
David Marco

I 10 errori da evitare nella realizzazione di un Meta Data Repository (I parte)
David Marco

Usare i modelli per acquisire l'esperienza di progettazione
James Hobart

Realizzare l'Impresa Intelligente
Colin White

.NET or J2EE - Choosing the Right Web Services Framework
John Kneiling

Progettare Applicazioni Mobili di Successo
James Hobart

La Sociologia del Progetto: Identificare e Coinvolgere tutti i Partecipanti
Suzanne Robertson

Integrare la Business Intelligence nell'Impresa (II parte)
Mike Ferguson

Integrare la Business Intelligence nell'Impresa (I parte)
Mike Ferguson

L'Evoluzione del Portale di e-Business (II parte)
Colin White

L'Evoluzione del Portale di e-Business (I parte)
Colin White

Il Consulente WebEAI: Servizi Web, XML e l'Impresa
John Kneiling

Data Mining: Come Gestire le Relazioni con i Clienti Secondo i Principi del CRM
Weaver James

Articoli del mese - Technology Transfer