Fonction UNION DAX vs Power Query

Fonction UNION DAX vs Power Query

Dans ce didacticiel, vous apprendrez une technique d'optimisation DAX à l'aide de la fonction UNION. Ce didacticiel comparera les performances de la fonction UNION par rapport à Power Query et à d'autres techniques de combinaison de tables.

La fonction combine deux tables en une seule table en combinant leurs lignes et en supprimant les lignes en double.

L'exemple de ce didacticiel est une table Sales qui a été divisée en trois tables pour chaque année (2007, 2008, 2009).

Table des matières

La fonction UNION dans DAX

Ouvrez DAX Studio et lancez le plan de synchronisation et de requête du serveur.

Fonction UNION DAX vs Power Query

Le code DAX ci-dessous est utilisé comme exemple :

Fonction UNION DAX vs Power Query

Après avoir exécuté le code, accédez à l' onglet Server Timings . Vous pouvez voir que le code prend un total de 5,4 secondes pour s'exécuter. La plupart du temps d'exécution a été passé dans le moteur de stockage . Chacune de ces trois requêtes contient la même opération, mais les années sont différentes.

Fonction UNION DAX vs Power Query

Une fois ces trois requêtes renvoyées par le moteur de stockage, le moteur de formule effectue une UNION, visible dans le plan de requête logique. Le plan de requête effectue également un pour calculer les ventes totales.

Fonction UNION DAX vs Power Query

Dans le plan de requête physique, vous pouvez voir les trois caches de données contenant les opérations effectuées pour chaque année dans la table Ventes.

Fonction UNION DAX vs Power Query

Comparaison des performances DAX

Pour établir la comparaison, créons une mesure pour Total Sales à l'aide de la table Sales d'origine.

Fonction UNION DAX vs Power Query

Si vous exécutez ce code et accédez à l' onglet Server Timings , vous pouvez constater qu'il est nettement plus efficace que la fonction UNION.

La fonction UNION consomme 97,9 Ko alors que la nouvelle mesure ne consomme que 1 Ko.

Fonction UNION DAX vs Power Query

Lorsque vous utilisez UNION, le moteur DAX renvoie une énorme quantité de cache de données au moteur de formule. Cela met beaucoup de pression sur la RAM.

Donc, si vous avez affaire à un modèle de données contenant plus d'un million de lignes, il n'est pas recommandé d'utiliser la fonction UNION

Alternatives à la fonction UNION DAX

Au lieu d'utiliser UNION, vous pouvez utiliser trois fonctions SUMX pour cet exemple. C'est-à-dire une fonction SUMX pour chaque année.

Fonction UNION DAX vs Power Query

Lorsque vous exécutez ce code et que vous accédez à l'onglet Server Timings, vous pouvez constater que le temps d'exécution est nettement inférieur. Il est passé de 5 400 ms à 33 ms tout en exécutant toujours trois requêtes différentes.

Fonction UNION DAX vs Power Query

Une autre méthode consiste à ajouter la table de modèle de données dans Power Query ou dans la source de données elle-même.

Mais la meilleure option est de créer une table calculée qui effectuera l'union de ces trois tables. Mais cette option a ses avantages et ses inconvénients.

L'utilisation d'une table calculée vous permet d'économiser le temps de traitement global au lieu d'effectuer un ajout dans Power Query. Cependant, cela entraînera une augmentation de la taille de la base de données dans VertiPaq.

Lorsque vous utilisez une table calculée, vous créez une nouvelle table qui combine les trois tables. Mais ces trois tables scindées resteront dans la base de données.

Fonction UNION DAX vs Power Query

Dans cet exemple, les trois tables consomment au total 25 Mo. Si vous créez une table calculée, elle consommera 25 Mo supplémentaires dans votre RAM.

Pour les cas sensibles comme ceux-ci, vous devez prendre une décision éclairée sur la meilleure marche à suivre.

Conclusion

La fonction UNION dans DAX combine deux tables en une seule, ce qui facilite l'analyse des données. Cela fonctionne en prenant deux tables en entrée et en renvoyant une nouvelle table qui contient toutes les lignes des deux tables d'entrée. Cependant, cette fonction a ses propres limites.

La fonction UNION peut être plus lente que d'autres méthodes de combinaison de données, en particulier si les tables d'entrée sont volumineuses. Il peut également consommer plus d'espace dans le stockage par opposition à d'autres alternatives.

Chaque fois qu'une situation nécessite de combiner des tables, il est important de peser le pour et le contre avant de décider d'utiliser la fonction UNION. Vos alternatives incluent la fonction SUMX, une table de modèle de données ou une table calculée.

Tous mes vœux,


Quest-ce que le self en Python ? Exemples concrets

Quest-ce que le self en Python ? Exemples concrets

Qu'est-ce que le self en Python ? Exemples concrets

Comment enregistrer et charger un fichier RDS dans R

Comment enregistrer et charger un fichier RDS dans R

Vous apprendrez à enregistrer et à charger des objets à partir d'un fichier .rds dans R. Ce blog expliquera également comment importer des objets de R vers LuckyTemplates.

First N Business Days Revisited - Une solution de langage de codage DAX

First N Business Days Revisited - Une solution de langage de codage DAX

Dans ce didacticiel sur le langage de codage DAX, découvrez comment utiliser la fonction GENERATE et comment modifier dynamiquement le titre d'une mesure.

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

Ce didacticiel explique comment utiliser la technique Multi Threaded Dynamic Visuals pour créer des informations à partir de visualisations de données dynamiques dans vos rapports.

Introduction au filtrage du contexte dans LuckyTemplates

Introduction au filtrage du contexte dans LuckyTemplates

Dans cet article, je vais parcourir le contexte du filtre. Le contexte de filtrage est l'un des principaux sujets que tout utilisateur de LuckyTemplates doit d'abord connaître.

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

Je souhaite montrer comment le service en ligne LuckyTemplates Apps peut aider à gérer différents rapports et informations générés à partir de diverses sources.

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

Découvrez comment calculer les modifications de votre marge bénéficiaire à l'aide de techniques telles que la création de branches de mesure et la combinaison de formules DAX dans LuckyTemplates.

Idées de matérialisation pour les caches de données dans DAX Studio

Idées de matérialisation pour les caches de données dans DAX Studio

Ce didacticiel abordera les idées de matérialisation des caches de données et comment elles affectent les performances des DAX dans la fourniture de résultats.

Rapports dentreprise à laide de LuckyTemplates

Rapports dentreprise à laide de LuckyTemplates

Si vous utilisez encore Excel jusqu'à présent, c'est le meilleur moment pour commencer à utiliser LuckyTemplates pour vos besoins en matière de rapports commerciaux.

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir