Meilleures pratiques pour concevoir et développer des flux de données complexes

Si le flux de données que vous développez devient plus volumineux et plus complexe, voici quelques actions que vous pouvez effectuer pour améliorer la conception d’origine.

Fractionner les flux de données

Ne faites pas tout dans un seul flux de données. L’utilisation d’un flux de données unique et complexe rallonge le processus de transformation des données, et rend plus difficile la compréhension et la réutilisation du flux de données. La division de votre flux de données en plusieurs flux de données peut se faire en séparant les tables dans différents flux de données, voire en divisant une table en plusieurs flux de données. Vous pouvez utiliser le concept d’une table calculée ou d’une table liée pour construire une partie de la transformation dans un flux de données, puis la réutiliser dans d’autres flux de données.

Séparer les flux de données de transformation de données des flux de données intermédiaires ou d’extraction

Le fait de consacrer des flux de données uniquement à l’extraction des données (autrement dit, des flux de données intermédiaires) et d’autres à la transformation des données est utile non seulement pour la création d’une architecture multicouche, mais également pour réduire la complexité des flux de données. Certaines étapes ne font qu’extraire des données de la source de données, comme l’obtention de données, la navigation et les modifications du type de données. En séparant les flux de données intermédiaires des flux de données de transformation, vous simplifiez le développement de vos flux de données.

Multilayered dataflow architecture.

Image montrant les données extraites d’une source de données vers des flux de données intermédiaires, où les tables sont stockées dans Dataverse ou Azure Data Lake Storage. Ensuite, les données sont déplacées vers des flux de données de transformation, où les données sont transformées et converties en structure de data warehouse. Ensuite, les données sont déplacées vers le modèle sémantique.

Utiliser des fonctions personnalisées

Les fonctions personnalisées sont utiles dans les scénarios où un certain nombre d’étapes doivent être effectuées pour un certain nombre de requêtes provenant de différentes sources. Les fonctions personnalisées peuvent être développées via l’interface graphique de l’éditeur Power Query ou à l’aide d’un script M. Les fonctions peuvent être réutilisées dans un flux de données dans autant de tables que nécessaire.

L’utilisation d’une fonction personnalisée vous permet d’avoir une seule version du code source. Vous n’avez donc pas besoin de dupliquer le code. Par conséquent, la maintenance de la logique de transformation Power Query et de l’ensemble du flux de données est beaucoup plus facile. Pour plus d’informations, consultez l’article de blog suivant : Création facile de fonctions personnalisées dans Power BI Desktop.

Screenshot of the Queries pane with the Get Holidays custom function and its data emphasized.

Remarque

Il peut vous arriver de recevoir une notification vous indiquant qu’une capacité Premium est nécessaire pour actualiser un flux de données contenant une fonction personnalisée. Vous pouvez ignorer ce message et rouvrir l’éditeur de flux de données. Cela résout généralement le problème, sauf si votre fonction fait référence à une requête « activée pour le chargement ».

Placer des requêtes dans des dossiers

L’utilisation de dossiers pour les requêtes permet de regrouper les requêtes associées. Lorsque vous développez le flux de données, passez un peu plus de temps à organiser de façon logique les requêtes dans des dossiers. En adoptant cette approche, vous pourrez trouver plus facilement les requêtes à l’avenir, et la maintenance du code sera beaucoup plus facile.

Utilisation des tables calculées

Les tables calculées rendent non seulement votre flux de données plus compréhensible, mais elles offrent également de meilleures performances. Lorsque vous utilisez une table calculée, les autres tables référencées à partir de celle-ci obtiennent des données à partir d’une table « déjà traitée et stockée ». La transformation est beaucoup plus simple et rapide.

Tirer parti du moteur de calcul amélioré

Pour les flux de données développés dans le portail administrateur Power BI, assurez-vous de tirer parti du moteur de calcul amélioré en effectuant des jointures et des transformations de filtres d’abord dans une table calculée avant d’effectuer d’autres types de transformations.

Répartir un grand nombre d’étapes en plusieurs requêtes

Il est difficile de suivre un grand nombre d’étapes dans une seule table. Au lieu de cela, nous vous recommandons de diviser un grand nombre d’étapes en plusieurs tables. Vous pouvez Activer le chargement pour d’autres requêtes et les désactiver s’il s’agit de requêtes intermédiaires, et charger uniquement la table finale via le flux de données. Lorsque vous avez plusieurs requêtes comprenant chacune un nombre moins élevé d’étapes, il est plus facile d’utiliser le schéma de dépendances et de suivre chaque requête pour une investigation plus approfondie, plutôt que d’explorer les centaines d’étapes d’une requête.

Ajouter des propriétés pour les requêtes et les étapes

La documentation est la clé d’un code facile à gérer. Dans Power Query, vous pouvez ajouter des propriétés aux tables et également aux étapes. Le texte que vous ajoutez dans les propriétés s’affiche sous forme d’info-bulle lorsque vous survolez cette requête ou cette étape. Cette documentation vous aidera à maintenir votre modèle à l’avenir. Avec un simple coup d’œil à une table ou à une étape, vous pouvez comprendre ce qu’il s’y passe, plutôt que d’avoir à vous souvenir de ce que vous avez fait à cette étape.

Vérifier que la capacité se trouve dans la même région

Les flux de données ne prennent pas en charge l’utilisation de plusieurs pays ou régions. La capacité Premium doit se trouver dans la même région que votre locataire Power BI.

Séparation des sources locales et des sources Cloud

Nous vous recommandons de créer un flux de données distinct pour chaque type de source, par exemple locale, cloud, SQL Server, Spark et Dynamics 365. La séparation des flux de données par type de source permet de résoudre plus rapidement les problèmes et d’éviter les limites internes lors de l’actualisation de vos flux de données.

Séparation des flux de données en fonction de la planification de rafraîchissement requise pour les tables

Si vous avez une table de transactions de ventes qui est mise à jour dans le système source toutes les heures et une table de mappage de produits qui est mise à jour chaque semaine, séparez ces deux tables en deux flux de données avec des planifications de rafraîchissement de données différentes.

Évitez de planifier l’actualisation des tables liées dans le même espace de travail

Si vous êtes régulièrement bloqué hors de vos flux de données contenant des tables liées, cela peut être dû à un flux de données correspondant et dépendant dans le même espace de travail qui est verrouillé pendant le rafraîchissement du flux de données. Ce verrouillage assure la précision transactionnelle et garantit que les flux de données sont actualisés correctement. Cependant, cela peut vous empêcher de les modifier.

Si vous configurez une planification séparée pour le flux de données lié, les flux de données peuvent s’actualiser inutilement et vous empêcher de modifier le flux de données. Voici deux conseils pour éviter ce problème :

  • Ne configurez pas une planification d’actualisation pour un flux de données lié dans le même espace de travail que le flux de données source
  • Si vous souhaitez configurer une planification d’actualisation séparément et éviter le comportement de verrouillage, déplacez le flux de données vers un espace de travail distinct.