Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
enseignement:tp:bda:hadoop:tp2:2016 [2016/10/18 06:41] ecoquery |
enseignement:tp:bda:hadoop:tp2:2016 [2016/10/21 14:21] (Version actuelle) ecoquery [Données et requête] |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
* Tester vos traitements (chargements et requêtes) sur de petits volumes d' | * Tester vos traitements (chargements et requêtes) sur de petits volumes d' | ||
- | * Utilisez un utilitaire comme '' | + | * Utilisez un utilitaire comme '' |
===== Modalités de rendu ===== | ===== Modalités de rendu ===== | ||
Ligne 21: | Ligne 21: | ||
On considère le jeu de données du TP précédent, | On considère le jeu de données du TP précédent, | ||
- | On souhaite répondre à la question suivante: calculer pour chaque objet observé avant le point temporel ('' | + | On souhaite répondre à la question suivante: calculer pour chaque objet observé avant le point temporel ('' |
< | < | ||
- | SELECT o.objectId, count(*) as cnt, avg(sourceWidth_SG) srcW_avg | + | SELECT o.objectId, count(*) as cnt, avg(flux_Gaussian) flxG_avg |
FROM Source s join Object o ON s.objectId = o.objectId | FROM Source s join Object o ON s.objectId = o.objectId | ||
- | WHERE earliestObsTime <= 50980.0 -- AND s.objectId IS NOT NULL | + | WHERE earliestObsTime <= 50985.0 -- AND s.objectId IS NOT NULL |
GROUP BY o.objectId | GROUP BY o.objectId | ||
</ | </ | ||
Il y a deux possibilités pour répondre à cette requête: effectuer une jointure en utilisant la valeur de l' | Il y a deux possibilités pour répondre à cette requête: effectuer une jointure en utilisant la valeur de l' | ||
+ | |||
+ | |||
+ | Si on se limite au contenu des fichiers '' | ||
===== Jointure via la clé de shuffle/ | ===== Jointure via la clé de shuffle/ | ||
Ligne 71: | Ligne 74: | ||
===== Jointure dans le map ===== | ===== Jointure dans le map ===== | ||
- | Une fois la partition effectuée coder et lancer un job map/reduce pour répondre à la requête en effectuant la jointure dans le mapper. Il peut être nécessaire de munir la classe du mapper de champs permettant de mémoriser les tuples déjà rencontrés. Pour cela, il peut être utile de gérer le démarrage et la fin d'une tâche en surchargeant les méthodes '' | + | Une fois la partition effectuée coder et lancer un job map/reduce pour répondre à la requête en effectuant la jointure dans le mapper. Il peut être nécessaire de munir la classe du mapper de champs permettant de mémoriser les tuples déjà rencontrés. Pour cela, il peut être utile de gérer le démarrage et la fin d'une tâche en surchargeant les méthodes '' |
De même que pour la première version, évaluer le temps nécessaire pour répondre à la requête. | De même que pour la première version, évaluer le temps nécessaire pour répondre à la requête. |