Solutions de pliage
La performance des requêtes Power BI peut être un peu comme savoir ce qu'il faut prendre en vacances et l'ordre dans lequel il faut le placer dans le sac. Le concept de Power BI consistant à ne prendre que ce dont vous avez besoin s'appelle Query Folding. C'est l'art de réduire la taille des données. Le repliement des requêtes permet d'améliorer les performances et de réduire les coûts.
Pourquoi ? Parce que le repliement des requêtes pousse les transformations, les agrégations et les jointures vers la source de données, où elles peuvent être exécutées plus efficacement. C'est là que vous avez déjà mis en place les index et le partitionnement. Il est logique de laisser votre source de données faire le gros du travail.
N'est-ce pas ? Cela r éduit à son tour la charge sur Power BI et améliore la vitesse de traitement, car moins de données sont reçues et préparées par Power BI.
Limites des connecteurs standard
Les connecteurs standard et les pilotes de base de données conviennent aux cas d'utilisation simples et normaux. Cependant, lorsqu'il s'agit de sources de données volumineuses ou complexes, les connecteurs et pilotes standard peuvent ne pas prendre en charge le pliage des requêtes. Au lieu de cela, Power BI essaiera de le faire pour vous, et il le fera en tirant toutes vos données à travers. Cela augmentera la charge de mémoire et de traitement de Power BI.
Power BI peut ne pas savoir quels types de conversions votre source de données peut supporter et une fois de plus les convertir pour vous, éventuellement de manière incorrecte. De plus, l'interface de votre source de données peut être une API pour laquelle il n'existe pas de connecteur.
C'est là que les connecteurs et les pilotes personnalisés offrent une solution pour améliorer les performances et la conversion des données.
Cas d'utilisation avec une intrigue douloureuse
Prenons l'exemple d'un rapport de ventes. Ce dont j'ai vraiment besoin, c'est d'un rapport sur les ventes totales par mois, par région et par période.
Je commence à créer le rapport et je vais tout faire dans Power BI. Pourquoi ne pas le faire ? Je n'ai pas besoin de trop réfléchir et je vais le tester avec quelques lignes de données. La vie est belle ! Ainsi, j'ai peut-être besoin de toute la table des mesures au cas où je voudrais calculer les ventes par jour. Ou bien j'ai besoin de la table des magasins pour pouvoir produire des ventes par magasin individuel.
Attendez !
Une fois que j'ai mis les données à l'échelle et que j'ai constaté la lenteur de mon rapport, je me suis rendu compte, avec un peu de prévoyance, que le fait de rassembler tous ces millions de lignes dans une capacité Power BI et de les agréger n'était pas une si bonne idée que cela.
Je pourrais peut-être demander à la source de données de faire le calcul pour moi ? Il suffit de me donner les 12 lignes des totaux des ventes de fin de mois par région.
Nous avons probablement déjà un script SQL vraiment cool que nous exécutons directement sur la source de données, et nous savons qu'il fonctionne. Maintenant, je dois le traduire en langage M ! Est-ce que Power BI va le faire aussi efficacement ? De plus, je consomme de grandes quantités d'espace de stockage que je paie deux fois. Une fois dans ma source de données et une autre fois dans Power BI. Pourquoi ferais-je cela ?
Une solution de connecteur personnalisée
Le pliage des données semble être une bonne idée. Comment puis-je déterminer ce qui doit être replié ?
C'est là que le bât blesse. Power BI doit savoir ce qu'il peut pousser vers la source de données et ce qu'il doit faire pour vous. Comment y parvient-il ? Le connecteur et le pilote de base de données travaillent en tandem pour indiquer à Power BI ce que la source de données peut prendre en charge : agrégations, jointures, conversions de type, etc.
En outre, certaines requêtes deviennent trop complexes pour être écrites en langage M. S'il est plus facile d'écrire une requête native, le connecteur doit la prendre en charge, mais ce n'est pas le cas de tous.
Un connecteur personnalisé avec un pilote de base de données compatible peut constituer une solution.
Il offre un contrôle total sur les interactions avec la source de données. Il peut optimiser la manière dont les données sont récupérées. Il peut prendre en charge les requêtes natives.
Conclusion
Chez Improving, nous écrivons des connecteurs personnalisés et des pilotes de base de données. Nous pouvons aller jusqu'à votre source de données, mais nous ne nous arrêtons pas là. Nous pouvons également implémenter des sources de données.
L'utilisation de connecteurs Power BI personnalisés avec Query Folding, le support natif des requêtes et des pilotes compatibles peut se traduire par des rapports plus rapides et des coûts inférieurs à ceux des solutions prêtes à l'emploi.
Il est maintenant temps d'attraper ce petit sac, d'obtenir une place de choix dans le bus et d'être le premier sur la plage !
Vous souhaitez en savoir plus ? N'hésitez pas à nous contacter.