J'utilise une ruche couplée à hadoop. Je recherche une fonction (hiveql) qui permet de trier une liste de clients correspondant à une règle. Je souhaite effectuer un test de condition au cours des 10 derniers jours consécutifs (colldate). Le résultat attendu est une liste des seuls clients (ressourcename) qui maths cette condition: succès> = 3 au cours des 10 derniers jours. Chaque client a enregistré une entrée (nombre de succès) par jour. J'utilise la requête suivante mais de nombreuses cartes réduites sont construites et cela prend beaucoup de temps. Je cherche un moyen d'optimiser:Agrégation Hiveql: tests de récurrence
select J1.colldate,J1.ResourceName
from
TABLE J1,
TABLE J2,
TABLE J3,
TABLE J4,
TABLE J5,
TABLE J6,
TABLE J7,
TABLE J8,
TABLE J9,
TABLE J10
WHERE
J1.ResourceName=J2.ResourceName
and J1.ResourceName=J3.ResourceName
and J1.ResourceName=J4.ResourceName
and J1.ResourceName=J5.ResourceName
and J1.ResourceName=J6.ResourceName
and J1.ResourceName=J7.ResourceName
and J1.ResourceName=J8.ResourceName
and J1.ResourceName=J9.ResourceName
and J1.ResourceName=J10.ResourceName
and J1.success>=3
and J2.success>=3
and J3.success>=3
and J4.success>=3
and J5.success>=3
and J6.success>=3
and J7.success>=3
and J8.success>=3
and J9.success>=3
and J10.success>=3
and J1.colldate=from_unixtime(unix_timestamp()-1*60*60*24, 'dd/MM/yyyy')
and J2.colldate=from_unixtime(unix_timestamp()-2*60*60*24, 'dd/MM/yyyy')
and J3.colldate=from_unixtime(unix_timestamp()-3*60*60*24, 'dd/MM/yyyy')
and J4.colldate=from_unixtime(unix_timestamp()-4*60*60*24, 'dd/MM/yyyy')
and J5.colldate=from_unixtime(unix_timestamp()-5*60*60*24, 'dd/MM/yyyy')
and J6.colldate=from_unixtime(unix_timestamp()-6*60*60*24, 'dd/MM/yyyy')
and J7.colldate=from_unixtime(unix_timestamp()-7*60*60*24, 'dd/MM/yyyy')
and J8.colldate=from_unixtime(unix_timestamp()-8*60*60*24, 'dd/MM/yyyy')
and J9.colldate=from_unixtime(unix_timestamp()-9*60*60*24, 'dd/MM/yyyy')
and J10.colldate=from_unixtime(unix_timestamp()-10*60*60*24, 'dd/MM/yyyy');
la structure de la table est: enter image description here
Ajouter un échantillon de données qui comprend l'ensemble de lignes de source et l'ensemble de lignes demandées. –