J'ai une question sur l'efficacité de la ruche. J'ai 2 requêtes massives qui doivent être filtrées, jointes à des tables de mappage et syndiquées. Toutes les jointures sont identiques pour les deux tables. Serait-il plus efficace de les unir avant d'appliquer les jointures à la table combinée ou d'appliquer individuellement les jointures à chaque requête massive, puis d'unir les résultats? Est-ce que cela fait une différence?Hive union toute l'efficacité et les meilleures pratiques
J'ai essayé la deuxième voie et la requête a couru pendant 24 heures avant que je le tuais. J'ai l'impression de faire tout mon possible pour l'optimiser, sauf éventuellement réorganiser la déclaration syndicale. D'une part, je pense que cela ne devrait pas avoir d'importance parce que le nombre de lignes jointes par la table de mappage est le même et puisque tout est palatalized, cela devrait prendre à peu près le même laps de temps. D'un autre côté, peut-être qu'en faisant d'abord l'union, il devrait garantir que les deux grosses requêtes reçoivent des ressources système complètes avant que les jointures soient exécutées. Là encore, cela peut signifier qu'il n'y a que deux tâches en cours d'exécution, ce qui fait que le système n'est pas entièrement utilisé ou quelque chose comme ça.
Je ne sais tout simplement pas assez sur la façon dont la ruche et il est des œuvres multi-threading. Quelqu'un a des idées?
Timothy, a voté pour fermer (trop large). Si vous voulez un assistant d'optimisation, ajoutez les requêtes, les plans d'exécution et les tables démographiques (pour commencer) –