L'objectif de ce TP est de mettre en place la réplication et la distribution des données avec MongoDB pour traiter un volume de données dépassant la capaité d'une machine. Pour ce TP 3 machines supplémentaires vous seront allouées (soit 7 machines en tout). En vous appuyant sur le TP précédent, on mettra en place une configuration intégrant réplication et répartition des données.
Le jeu de données consiste en une extraction de données astronomiques issues des prises de vue d'un télescope de grande envergure. Les données sont disponibles sous forme de fichiers CSV sur la machine MongoData
dont l'ip vous aura été envoyée par mail. Une description succinte des fichiers CSV est disponible sous la forme un schéma relationnel exprimé en SQL. Ces descriptions sont également disponibles sur la machine MongoData
. Le chargement des données pourra s'appuyer sur l'utilitaire mongoimport
qui permet un chargement via des fichiers CSV. On essaiera au maximum de faire que les données dans mongo soient au format qui leur corresponde (e.g. un int et non un string si la donnée est numérique). Si un document (un tuple) possède un champ NULL
, ce champ devra être supprimé du document mongo.
On configurera le stockage en mongo pour répondre efficacement aux requêtes suivantes (données ici en SQL, à traduire en script Mongo, cheat sheet):
SELECT * FROM SOURCE WHERE sourceid=29710725217517768
SELECT sourceid, ra, decl FROM SOURCE WHERE objectid=430209694171136
SELECT sourceid,objectid FROM SOURCE WHERE ra BETWEEN 358.05 AND 358.09 AND decl BETWEEN 3.039 AND 3.067
SELECT objectid, COUNT(object(id)) FROM SOURCE GROUP BY objectid
SELECT objectid, avg(flux_Gaussian), avg(sourceWidth_SG) FROM SOURCE WHERE ra BETWEEN 358.05 AND 358.09 GROUP BY objectid
SELECT * FROM SOURCE JOIN object ON (SOURCE.objectid = object.objectid) WHERE ra BETWEEN 358.05 AND 358.09
On rendra un rapport au format pdf sur spiral pour le 08/02/2014, qui comprendra: