2 votes

Temps de chargement d'Excel Power Query - Pourquoi les requêtes dépendantes rechargent-elles les données d'un fichier CSV ?

J'ai une série de requêtes dans Excel qui dépendent toutes d'une requête initiale qui charge des données à partir de fichiers CSV, les traite et les charge dans un tableau de la feuille de calcul. Les autres requêtes utilisent toutes les tables de la feuille de calcul comme source et n'utilisent pas de sources de données externes.

Lorsque je les recharge individuellement, ils semblent prendre plus de temps qu'ils ne le devraient et semblent accéder aux fichiers CSV eux-mêmes.

J'ai tous les paramètres globaux et de données pour la requête afin d'optimiser le chargement (chargement rapide, désactivation de l'arrière-plan, etc.) sur la base de quelques recherches sur Internet et le chargement/traitement de la requête d'origine est acceptable compte tenu de la quantité de données. Il semblerait qu'une fois que j'ai les données traitées dans une table du classeur, les requêtes de cette table et d'autres ne nécessiteraient pas de revenir aux fichiers sources.

Je me demande si je n'ai pas raté quelque chose. Merci de votre compréhension.

1voto

user175324 Points 21

Merci Mike. Vous semblez avoir raison, bien que l'actualisation d'une requête dépendante semble actualiser la requête parent (comme le confirment les messages concernant les fichiers CSV auxquels elle accède) un peu plus rapidement que l'actualisation directe de la requête parent.

J'ai résolu le problème comme vous l'avez suggéré. Au lieu d'utiliser le bouton "Gérer/Référence" dans la barre d'outils de l'éditeur Power Query qui génère des

Source = #"requête parent"

J'utilise Get Data->Table/Range ou l'éditeur M pour obtenir les données de la table de la requête parent.

Source = Excel.CurrentWorkbook(){[Name="parent query table name"]}[Content]

Le chargement est maintenant instantané. Comme je suis dans la phase de développement de mon projet, la gestion des rafraîchissements n'est pas un problème. Je trouverai un système une fois que j'aurai terminé.

Danke!

0voto

Mike Honey Points 2452

Lorsqu'une requête fait référence à une autre requête en tant que source (ou dans une étape de fusion ou d'ajout), toute la logique de la requête source sera exécutée chaque fois que la requête faisant référence sera actualisée. Si vous avez 5 requêtes référençant la même requête Source, la logique de la requête Source sera exécutée 5 fois, en parallèle (par défaut). C'est évidemment inefficace.

Dans un scénario Excel, le modèle permettant d'éviter cette inefficacité consiste à définir la requête Source comme suit Chargement jusqu'à un tableau Excel. Les requêtes de référencement peuvent alors être dirigées vers ce tableau Excel en tant que source.

Il est donc difficile de coordonner les actualisations, car le fait d'appuyer sur le bouton Actualiser tout risque d'entraîner des résultats incohérents. J'atténue généralement ce problème en utilisant des groupes de requêtes ou en enregistrant une macro d'actualisation.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X