Power Query Combiner plusieurs requêtes en 1 seule

AlexisSI

XLDnaute Nouveau
Bonjour à tous,

Je souhaite combiner 7 requêtes qui possèdent la même structure (en-tête et format) dans une nouvelle requête. J'ai effectué des transformations de données (ajout de colonne, formules, ...) mais qui sont différentes pour chacune. Jusqu'ici, rien de compliqué. Il faut noter que ces requêtes se mettent à jour chaque mois avec les nouvelles données que l'on ajoute dans la base de données.

Pourquoi ?

L'objectif principal est de diminuer la volumétrie des données puisqu'aujourd'hui, excel/Powerquery met 20 minutes (c'est très long) pour actualiser / ajouter les nouvelles datas dans la requête consolidée.

Requête 1 : 95 270 lignes
Requête 2 : 82 500 lignes
Requête 3 : 38 318 lignes
Requête 4 : 13 694 lignes
Requête 5 : 49 287 lignes
Requête 6 : 56 093 lignes
Requête 7 : 120 lignes

Requête consolidée : 335 282 lignes

=> au final ça fait un doublon des requêtes

Si je récapitule, j'ai :
- 7 requêtes qui se mettent à jour chaque mois et qui "subissent" des étapes de transformation différentes pour chacune d'elle mais conservent la même structure finale​
- 1 requête qui consolide les 7​
=> 8 requêtes au total

Ce que je souhaite faire :

Ce que je voudrais savoir c'est s'il est possible de combiner les 7 requêtes en 1 seule et au lieu d'avoir 8 requêtes au total, n'en n'avoir qu'une seule. Et que cela ne dérange pas l'ajout, le traitement et l'actualisation des nouvelles données chaque mois.
- 7 requêtes​
- 1 requête qui consolide les 7​
=> 1 requête finale (les 7 autres disparaissent, mais l'ajout des nouvelles données / les étapes de transformation s'effectuent toujours)​
Si cela n'est pas possible de le faire, j'ai pensé à effectuer les étapes de transformation et de consolidation de la data dans un premier fichier Power Query puis ensuite d'ouvrir ce fichier avec un autre. Cela me permettra de n'avoir qu'une requête .. et directement celle consolidée...

Merci et bonne journée :)

Alexis
 

chris

XLDnaute Barbatruc
Bonjour

Il est toujours difficile de répondre dans le vide

On doit pouvoir mettre sous forme de fonctions les diverses requêtes mais il n'est pas certain que cela change le temps d'exécution.

Il dépend d'avantage de la source d'une part et de la qualité de la transformation d'autre part : certaines requêtes sont parfois inutilement alambiquées...
 

merinos

XLDnaute Accro
Salut @AlexisSI , Salut @chris,

La première question est : pourquoi as tu plusieurs sources de données...

Y a t'il plusieurs fichiers sources? (si oui, il y a des moyen pour lire un nombre de fichier variable et ne pas se préoccuper de cela)


Perso j'ai assemblé des fichiers XLS pour arriver a un total de 22 millions de lignes... moins d'une minute pour charger.

La limitation est la quantité de memoire vive.

si ton/tes query(s) mets(mettent) 20 minutes, il doit y avoir un probleme dans les transfo que tu fais.
Ou tu manques de memoire.... et Excel swappe sur le disk... c'est super lent.

Une bonne organisation des données en etoile, devrait regler le probleme (si ce n'est pas un problème de memoire).



A+/-

Merinos
 

merinos

XLDnaute Accro
@AlexisSI ,

Pour les requètes historiques, tu peux travailler en 2 blocs:

6 historiques forment un tout qui ne doit pas être réactualisé.
1 requète vient se mettre a "coté"

tu crée 2 mesures du genre quantity6tables et quantity1table
puis une mesure qui serait quantity = quantity6tables +quantity1table
et le tour est joué.

Si la structure en etoile est solide et que tous les filtres sont dans cette structure c'est bon.

A+/-
Merinos
 

AlexisSI

XLDnaute Nouveau
Bonjour @chris , bonjour @merinos

Merci à vous deux.

@merinos je n'ai qu'une source de données constituée de la base de données et de 2 tables (table date / table établissement pour traduire les centres de coûts en une direction opérationnelle).
Pour ton information, il s'agit d'une base de donnée brute concernant les congés du personnel (épargnes, congés payés, RTT), aucun traitement n'est fait depuis Excel. C'est uniquement dans Power Query où j'exécute des étapes pour aboutir à un format souhaité.

Je pense que le temps de chargement est en partie causé par les traitements qui ne doivent pas être optimisés et une autre par la mémoire. En effet, j'ai souvent un message m'indiquant, lors du chargement, un manque de mémoire ...

Concernant la solution avec les mesures, je crains ne pas avoir tout compris. Je débute dans Power Query / Power Pivot, bientôt sur Power BI.

Merci
Alexis
 

merinos

XLDnaute Accro
Bonjour @AlexisSI ,


Voici un exemple ou ja calcule les prix pour les hommes et les femmes separément ... puis je fais la somme.

Si ton shema en etoile est bon, cela tient la route.

De plus un bon shema va reduire la taille des tables.... et donc la memoire nécésaire.
 

Pièces jointes

  • mesures.xlsx
    543.9 KB · Affichages: 25

AlexisSI

XLDnaute Nouveau
Bonjour @merinos

Merci pour ton exemple. J'ai optimisé mes données en créant des tables et en limitant les actions de transformation. Cela m'a déjà bien allégé mon document !
J'ai également trouvé une autre solution qui a aussi limité l'utilisation de la mémoire !

Merci à toi !
Alexis
 

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 881
Membres
103 009
dernier inscrit
dede972