Attualmente sto studiando la possibilità di utilizzare MapReduce per conservare build di visualizzazioni incrementali in SQL Server.MapReduce utilizzando SQL Server come origine dati
In pratica, utilizzare MapReduce per creare viste materializzate.
Sono un po 'bloccato. pensando a come partizionare le mie uscite map
. Ora, in realtà non ho una situazione BigData, con circa 50 GB al massimo ma ho un sacco di complessità e problemi di prestazioni implicite. Voglio vedere se questo mio approccio MapReduce/NoSQL potrebbe emergere.
La cosa su MapReduce I problemi con cui sto attualmente avendo a che fare con il partizionamento. Dato che sto usando SQL Server come origine dati, la localizzazione dei dati non è davvero un mio problema e quindi non ho bisogno di inviare dati ovunque, piuttosto, ogni lavoratore dovrebbe essere in grado di recuperare una partizione dei dati base sulla definizione map
.
ho intenzione di mappare completamente i dati attraverso l'uso di LINQ e forse qualcosa di simile Entity Framework, solo per fornire un'interfaccia familiare, questo è un po oltre il punto, ma è il percorso corrente che sto esplorando.
Ora, come divido i miei dati? Ho una chiave primaria, ho le definizioni map
e reduce
in termini di alberi di espressione (AST, se non hai familiarità con LINQ).
In primo luogo, come faccio a trovare un modo per me di dividere l'intero input e partizionamento il problema iniziale (sto pensando dovrei essere in grado di sfruttare gli aggregati delle finestre in SQL Server come
ROW_NUMBER
eTILE
).In secondo luogo e, cosa più importante, come faccio ad assicurarmi di farlo in modo incrementale? Cioè, se aggiungo, o apporto una modifica al problema originale, come faccio a garantire in modo efficace che io riduca al minimo la quantità di re-computazioni che devono essere eseguite?
Sono stato a guardare CouchDB per l'ispirazione e che sembrano avere un modo per fare questo, ma come faccio a sfruttare alcuni di quella bontà utilizzo di SQL Server?
Come è correlato questo CouchDB? A causa di Map-Reduce? –
Sì, puoi leggere a riguardo qui: http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views#Basics –