Partager via


Destinations de données Dataflow Gen2 et paramètres managés

Après avoir nettoyé et préparé vos données avec Dataflow Gen2, vous souhaiterez l’enregistrer quelque part. Dataflow Gen2 vous permet de choisir parmi plusieurs destinations, telles qu’Azure SQL, Fabric Lakehouse et d’autres. Une fois que vous avez choisi une destination, Dataflow Gen2 écrit vos données là-bas, et vous pouvez l’utiliser pour l’analyse et la création de rapports.

La liste suivante contient les destinations de données prises en charge :

  • Bases de données Azure SQL
  • Azure Data Explorer (Kusto)
  • Azure Datalake Gen2 (préversion)
  • Tables du Lakehouse Fabric
  • Fabric Lakehouse Files (préversion)
  • Fabric Warehouse
  • Base de données Fabric KQL
  • Base de données SQL Fabric
  • Fichiers SharePoint

Remarque

Pour charger vos données dans Fabric Warehouse, vous pouvez utiliser le connecteur Azure Synapse Analytics (SQL DW) en obtenant la chaîne de connexion SQL. Plus d’informations : Connectivité à l’entrepôt de données dans Microsoft Fabric

Points d’entrée

Chaque requête de données de votre Dataflow Gen2 peut avoir une destination de données. Vous ne pouvez appliquer des destinations qu’aux requêtes tabulaires : les fonctions et listes ne sont pas prises en charge. Vous pouvez définir la destination des données pour chaque requête individuellement, et vous pouvez utiliser différentes destinations dans le même dataflow.

Il existe trois façons de configurer la destination des données :

  • Par le biais du ruban supérieur.

    Capture d’écran du ruban de l’onglet Accueil de Power Query avec Ajouter une destination des données mise en évidence.

  • Par le biais des paramètres de requête.

    Capture d’écran du volet Paramètres de requête avec le bouton Destination des données mis en évidence et la liste des destinations affichées.

  • Par le biais de la vue de diagramme.

    Capture d’écran d’une requête en affichage diagramme avec l’icône Ajouter des destinations mise en évidence et la liste des destinations affichées.

Se connecter à la destination des données

La connexion à la destination de données fonctionne comme la connexion à une source de données. Vous pouvez utiliser des connexions pour lire et écrire vos données, tant que vous disposez des autorisations appropriées sur la source de données. Vous devez créer une connexion ou choisir une connexion existante, puis sélectionner Suivant.

Capture d’écran de la fenêtre Connexion à une destination de données pour une destination Lakehouse.

Configurer des destinations basées sur des fichiers

Lorsque vous choisissez une destination basée sur un fichier (par exemple, SharePoint), vous devez configurer quelques paramètres. Voici ce que vous devez définir :

  • Nom du fichier : nom du fichier créé dans la destination. Par défaut, le nom de fichier correspond à votre nom de requête.
  • Format de fichier : format du fichier créé dans la destination.
  • Origine du fichier : encodage utilisé pour créer le fichier dans la destination. Par défaut, cette valeur est définie sur UTF-8.
  • Délimiteur de fichier : délimiteur qui est utilisé pour créer le fichier dans la destination. Par défaut, cette valeur est définie sur Virgule.

Capture d’écran de la fenêtre des paramètres de destination de fichier avec les paramètres de nom de fichier, de format de fichier, d’origine de fichier et de délimiteur de fichiers affichés.

Créer une nouvelle table ou choisir une table existante

Lors du chargement dans votre destination de données, vous pouvez créer une nouvelle table ou choisir une table existante.

Créer une table

Lorsque vous choisissez de créer une table, Dataflow Gen2 crée une table dans votre destination de données lors de l’actualisation. Si la table est supprimée ultérieurement (si vous accédez manuellement à la destination et supprimez-la), le flux de données recrée la table lors de la prochaine actualisation.

Par défaut, votre nom de table correspond à votre nom de requête. Si votre nom de table comporte des caractères que la destination ne prend pas en charge, le nom de la table est ajusté automatiquement. Par exemple, de nombreuses destinations ne prennent pas en charge les espaces ou les caractères spéciaux.

Capture d’écran de la fenêtre Choisir la cible de destination avec le bouton Nouvelle table sélectionné.

Ensuite, vous devez sélectionner le conteneur de destination. Si vous avez choisi l’une des destinations de données Fabric, vous pouvez utiliser le navigateur pour sélectionner l’élément Fabric dans lequel vous souhaitez charger vos données. Pour les destinations Azure, vous pouvez spécifier la base de données lors de la création de la connexion ou sélectionner la base de données dans l’expérience du navigateur.

Utiliser une table existante

Pour choisir une table existante, utilisez le bouton bascule en haut du navigateur. Lorsque vous choisissez une table existante, vous devez choisir à la fois l’élément/la base de données et la table Fabric à l’aide du navigateur.

Lorsque vous utilisez une table existante, la table ne peut pas être recréée dans un scénario quelconque. Si vous supprimez la table manuellement de la destination de données, Dataflow Gen2 ne recrée pas la table lors de la prochaine actualisation.

Capture d’écran de la fenêtre Choisir la cible de destination avec le bouton Table existante sélectionné.

Fichiers ou tables Lakehouse

Pour Lakehouse, vous avez la possibilité de créer des fichiers ou des tables dans votre lakehouse. Cela est unique, car la plupart des destinations ne prennent en charge qu’un ou l’autre. Cela permet une plus grande flexibilité dans la façon dont vous structurez vos données dans votre lakehouse.

Pour basculer entre les fichiers et les tables, vous pouvez utiliser le bouton bascule lorsque vous recherchez votre lakehouse.

Capture d’écran mettant en évidence le commutateur pour basculer en mode fichier.

Paramètres managés pour les nouvelles tables

Lorsque vous chargez dans une nouvelle table, les paramètres automatiques sont activés par défaut. Si vous utilisez des paramètres automatiques, Dataflow Gen2 gère le mappage pour vous. Voici ce que font les paramètres automatiques :

  • Remplacement de la méthode de mise à jour : les données sont remplacées à chaque actualisation du flux de données. Toutes les données de la destination sont supprimées. Les données de la destination sont remplacées par les données de sortie du flux de données.

  • Mappage managé : le mappage est géré pour vous. Lorsque vous devez apporter des modifications à vos données/requête pour ajouter une autre colonne ou modifier un type de données, le mappage est ajusté automatiquement pour cette modification lorsque vous republiez votre dataflow. Vous n’avez pas besoin d’accéder à l’expérience de destination des données chaque fois que vous apportez des modifications à votre dataflow, ce qui rend les changements de schéma faciles lorsque vous republiez le flux de données.

  • Supprimer et recréer une table : pour autoriser ces modifications de schéma, la table est supprimée et recréée à chaque actualisation du flux de données. L’actualisation de votre flux de données peut entraîner la suppression de relations ou de mesures qui ont été ajoutées précédemment à votre table.

Remarque

Actuellement, les paramètres automatiques ne sont pris en charge que pour Lakehouse et Azure SQL Database en tant que destination de données.

Capture d’écran de la fenêtre Choisir les paramètres de destination avec l’option Utiliser les paramètres automatiques sélectionnée.

Paramètres manuels

En désactivant Utiliser les paramètres automatiques, vous avez un contrôle total sur la façon de charger vos données dans la destination des données. Vous pouvez apporter des modifications au mappage de colonnes en modifiant le type source ou en excluant toute colonne dont vous n’avez pas besoin dans votre destination de données.

Capture d’écran de la fenêtre Choisir les paramètres de destination avec les options Utiliser les paramètres automatiques non sélectionnées et les différents paramètres manuels affichés.

Méthodes de mise à jour

La plupart des destinations prennent en charge l’ajout et le remplacement en tant que méthodes de mise à jour. Toutefois, les bases de données Fabric KQL et Azure Data Explorer ne prennent pas en charge le remplacement comme méthode de mise à jour.

  • Remplacer : à chaque actualisation du flux de données, vos données sont supprimées de la destination et remplacées par les données de sortie du flux de données.

  • Ajout : à chaque actualisation du flux de données, les données de sortie du flux de données sont ajoutées aux données existantes dans la table de destination de données.

Options de schéma lors de la publication

Les options de schéma sur la publication s’appliquent uniquement lorsque la méthode de mise à jour est remplacée. Lorsque vous ajoutez des données, les modifications apportées au schéma ne sont pas possibles.

  • Schéma dynamique : lorsque vous choisissez un schéma dynamique, vous autorisez les modifications de schéma dans la destination des données lorsque vous republiez le flux de données. Étant donné que vous n’utilisez pas de mappage managé, vous devez toujours mettre à jour le mappage de colonnes dans l’Assistant destination du flux de données lorsque vous apportez des modifications à votre requête. Lorsqu’une actualisation détecte une différence entre le schéma de destination et le schéma attendu, la table est supprimée, puis recréée pour s’aligner sur le schéma attendu. L’actualisation de votre flux de données peut entraîner la suppression de relations ou de mesures qui ont été ajoutées précédemment à votre table.

  • Schéma fixe : lorsque vous choisissez un schéma fixe, les modifications de schéma ne sont pas possibles. Lorsque le flux de données est actualisé, seules les lignes de la table sont supprimées et remplacées par les données de sortie du flux de données. Toutes les relations ou mesures sur la table restent intactes. Si vous apportez des modifications à votre requête dans le flux de données, la publication du flux de données échoue si elle détecte que le schéma de requête ne correspond pas au schéma de destination des données. Utilisez ce paramètre lorsque vous ne prévoyez pas de modifier le schéma et que vous avez des relations ou des mesures ajoutées à votre table de destination.

Remarque

Lors du chargement de données dans l’entrepôt, seul le schéma fixe est pris en charge.

Capture d’écran des options Schéma sur l’option de publication, avec le schéma fixe sélectionné.

Paramétrisation

Les paramètres sont une fonctionnalité principale dans Dataflow Gen2. Une fois qu’un paramètre est créé ou que vous utilisez le paramètre Always Allow , un widget d’entrée devient disponible pour définir le nom de la table ou du fichier de votre destination.

Capture d’écran de l’expérience de destination de données où le nom de la table utilise un paramètre appelé « TableName » et le widget d’entrée est affiché.

Remarque

Les paramètres de la destination de données peuvent également être appliqués directement via le script M créé pour les requêtes associées. Vous pouvez modifier manuellement le script de vos requêtes de destination de données pour appliquer les paramètres pour répondre à vos besoins. Toutefois, l’interface utilisateur prend uniquement en charge le paramétrage du champ de nom de table ou de fichier.

Script Mashup pour les requêtes de destination de données

Lorsque vous utilisez la fonctionnalité de destination de données, les paramètres définis pour charger les données dans votre destination sont définis dans le document mashup de votre dataflow. L’application Dataflow crée fondamentalement deux composants :

  • Requête qui contient les étapes de navigation vers votre destination. Il suit le modèle de votre nom de requête initial avec un suffixe de _DataDestination. Par exemple:
shared #"Orders by Region_DataDestination" = let
  Pattern = Lakehouse.Contents([CreateNavigationProperties = false, EnableFolding = false]),
  Navigation_1 = Pattern{[workspaceId = "cfafbeb1-8037-4d0c-896e-a46fb27ff229"]}[Data],
  Navigation_2 = Navigation_1{[lakehouseId = "b218778-e7a5-4d73-8187-f10824047715"]}[Data],
  TableNavigation = Navigation_2{[Id = "Orders by Region", ItemKind = "Table"]}?[Data]?
in
  TableNavigation;
  • Enregistrement d’attribut DataDestinations pour la requête qui contient la logique à utiliser pour charger des données dans votre destination. L’enregistrement a un pointeur vers la requête qui contient les étapes de navigation vers votre destination et les paramètres de destination globaux, tels que les méthodes de mise à jour, les options de schéma et le type de cible de la destination, tel qu’une table ou un autre type. Par exemple:
[DataDestinations = {[Definition = [Kind = "Reference", QueryName = "Orders by Region_DataDestination", IsNewTarget = true], Settings = [Kind = "Automatic", TypeSettings = [Kind = "Table"]]]}]

Ces éléments de scripts M ne sont pas visibles à l’intérieur de l’application Dataflow, mais vous pouvez accéder à ces informations via :

Types de sources de données prises en charge par destination

Types de données pris en charge par emplacement de stockage DataflowStagingLakehouse Sortie Azure DB (SQL) Sortie de Azure Explorateur de données Sortie Fabric Lakehouse (LH) Sortie de l'entrepôt de tissus (WH) Sortie (SQL) de base de données SQL Fabric
Action Non Non Non Non Non Non
Tout Non Non Non Non Non Non
Binaire Non Non Non Non Non Non
Devise Oui Oui Oui Oui Non Oui
DateTimeZone Oui Oui Oui Non Non Oui
Durée Non Non Oui Non Non Non
Fonction Non Non Non Non Non Non
Aucune Non Non Non Non Non Non
Zéro Non Non Non Non Non Non
Temps Oui Oui Non Non Non Oui
Catégorie Non Non Non Non Non Non
Structuré (Liste, Enregistrement, Tableau) Non Non Non Non Non Non

Lors de l’utilisation de types de données tels que la devise ou le pourcentage, nous les convertissons généralement en leurs équivalents décimaux pour la plupart des destinations. Toutefois, lors de la reconnexion à ces destinations et en suivant le chemin d’accès de table existant, vous pouvez rencontrer des difficultés à mapper des devises sur des colonnes décimales. Dans ce cas, essayez de modifier le type de données dans l’éditeur en décimal, car cela facilite le mappage à la table et à la colonne existantes.

Rubriques avancées

Utilisation de la mise en lots avant le chargement vers une destination

Pour améliorer les performances du traitement des requêtes, la préproduction peut être utilisée dans Dataflow Gen2 pour utiliser le calcul Fabric pour exécuter vos requêtes.

Lorsque la préproduction est activée sur vos requêtes (comportement par défaut), vos données sont chargées dans l’emplacement intermédiaire, qui est un Lakehouse interne accessible uniquement par les dataflows eux-mêmes.

L’utilisation d’emplacements intermédiaires peut améliorer les performances dans certains cas où le pliage de la requête vers le point de terminaison d’analyse SQL est plus rapide que le traitement en mémoire.

Lorsque vous chargez des données dans Lakehouse ou d’autres destinations non-entrepôt, nous désactivons la fonctionnalité de préproduction par défaut pour améliorer les performances. Lorsque vous chargez des données dans le dépôt de données, les données sont écrites directement dans le dépôt de données sans utiliser de zone de transit. Si vous souhaitez utiliser la phase de simulation pour votre requête, vous pouvez l'activer à nouveau.

Pour activer la simulation, faites un clic droit sur la requête et activez la simulation en sélectionnant le bouton Activer la simulation. Votre requête passe alors au bleu.

Capture d’écran du menu déroulant de requête avec Activer le mode de préproduction mise en évidence.

Chargement des données dans l’entrepôt

Lorsque vous chargez des données dans l’entrepôt, la mise en lots est requise avant l’opération d’écriture dans la destination des données. Cette exigence améliore les performances. Actuellement, seul le chargement dans le même espace de travail que le flux de données est pris en charge. Vérifiez que la mise en lots est activée pour toutes les requêtes chargées dans l’entrepôt.

Lorsque la mise en lots est désactivée et que vous choisissez Entrepôt comme destination de sortie, vous recevez un avertissement pour activer la mise en lots avant de pouvoir configurer la destination des données.

Capture d’écran de l’avertissement Ajouter une destination de données.

Si vous disposez déjà d’un entrepôt en tant que destination et que vous essayez de désactiver la mise en lots, un avertissement s’affiche. Vous pouvez supprimer l’entrepôt en tant que destination ou ignorer l’action de mise en lots.

Capture d’écran de l’avertissement Activer le mode de préproduction.

Prise en charge des schémas pour les bases de données Lakehouse, Warehouse et SQL (préversion)

Les bases de données Lakehouse, Warehouse et SQL dans Microsoft Fabric prennent toutes en charge la possibilité de créer un schéma pour vos données. Cela signifie que vous pouvez structurer vos données de manière à faciliter la gestion et la requête. Pour pouvoir écrire dans des schémas dans ces destinations, vous devez activer l’option Naviguer à l’aide de l’option de hiérarchie complète sous options avancées lorsque vous configurez votre connexion. Si vous n’activez pas cette option, vous ne pourrez pas sélectionner ou afficher les schémas dans la destination. Une limitation de l'aperçu pour activer la navigation avec la hiérarchie complète est que la copie rapide peut ne pas fonctionner correctement. Pour utiliser cette fonctionnalité en combinaison avec une passerelle, nous avons besoin d’au moins 3000.290 version de la passerelle.

Capture d’écran mettant en évidence l’option Activer la prise en charge du schéma.

Nettoyage de votre destination de données Lakehouse

Lorsque vous utilisez Lakehouse comme destination pour Dataflow Gen2 dans Microsoft Fabric, il est important d’effectuer une maintenance régulière pour maintenir des performances optimales et une gestion efficace du stockage. Le nettoyage de votre destination de données fait partie des tâches de maintenance essentielles. Ce processus permet de supprimer les anciens fichiers qui ne sont plus référencés par le journal de table Delta, ce qui optimise les coûts de stockage et conserve l’intégrité de vos données.

Pourquoi le nettoyage est important

  1. Optimisation du stockage : au fil du temps, les tables Delta accumulent des fichiers anciens qui n’ont plus d’utilité. Le nettoyage permet d’éliminer ces fichiers et ainsi de libérer de l’espace de stockage et de réduire les coûts.
  2. Amélioration des performances : la suppression des fichiers inutiles peut contribuer à améliorer le niveau de performance des requêtes dans la mesure où le nombre de fichiers à analyser pendant les opérations de lecture est réduit.
  3. Intégrité des données : en veillant à conserver uniquement les fichiers importants, vous contribuez à préserver l’intégrité de vos données et ainsi à éviter des problèmes potentiels liés à des fichiers non validés susceptible d’occasionner des échecs de lecture ou une altération des données de tables.

Comment nettoyer votre destination de données

Pour nettoyer vos tables Delta dans Lakehouse, procédez comme suit :

  1. Accédez à votre Lakehouse : depuis votre compte Microsoft Fabric, accédez au Lakehouse souhaité.
  2. Accédez à la maintenance des tables : dans l’explorateur Lakehouse, cliquez avec le bouton droit sur la table dont vous souhaitez effectuer la maintenance, ou accédez au menu contextuel via les points de suspension.
  3. Sélectionnez les options de maintenance : choisissez l’entrée de menu Maintenance, puis sélectionnez l’option Nettoyer.
  4. Exécutez la commande de nettoyage : définissez le seuil de rétention (la valeur par défaut est de 7 jours) et exécutez la commande de nettoyage en sélectionnant Exécuter maintenant.

Bonnes pratiques

  • Période de rétention : définissez un intervalle de rétention d’au moins sept jours pour vous assurer que les anciens instantanés et les fichiers non validés ne sont pas supprimés prématurément, ce qui peut perturber les lecteurs de tables et les enregistreurs simultanés.
  • Maintenance régulière : planifiez un nettoyage régulier dans le cadre de votre routine de maintenance des données pour que vos tables Delta restent optimisées et prêtes pour l’analytique.
  • Actualisations incrémentielles : si vous utilisez des actualisations incrémentielles, assurez-vous que le nettoyage est désactivé, car il peut interférer avec le processus d’actualisation incrémentielle.

En incorporant l'optimisation par vidage dans votre stratégie de maintenance des données, vous pouvez vous assurer que votre destination Lakehouse reste efficace, économique et fiable pour vos opérations de flux de données.

Si vous souhaitez en savoir plus sur la maintenance des tables dans Lakehouse, veuillez consulter la documentation sur la maintenance des tables Delta.

Pouvant être nul

Dans certains cas, lorsque vous avez une colonne pouvant accepter la valeur Null, elle est détectée par Power Query comme non-nullable et lors de l’écriture dans la destination de données, le type de colonne n’est pas nullable. Pendant l’actualisation, l’erreur suivante se produit :

E104100 Couldn't refresh entity because of an issue with the mashup document MashupException.Error: DataFormat.Error: Error in replacing table's content with new data in a version: #{0}., InnerException: We can't insert null data into a non-nullable column., Underlying error: We can't insert null data into a non-nullable column. Details: Reason = DataFormat.Error;Message = We can't insert null data into a non-nullable column.; Message.Format = we can't insert null data into a non-nullable column.

Pour forcer les colonnes pouvant accepter la valeur Null, vous pouvez essayer les étapes suivantes :

  1. Supprimez la table de la destination des données.

  2. Supprimez la destination des données du flux de données.

  3. Accédez au flux de données et mettez à jour les types de données à l’aide du code Power Query suivant :

    Table.TransformColumnTypes(
       #"PREVIOUS STEP", {
          {"COLLUMNNAME1", type nullable text}, 
          {"COLLUMNNAME2", type nullable Int64.Type}
       }
    ) 
    
  4. Ajoutez la destination de données.

Conversion des types de données et mise à l'échelle

Dans certains cas, le type de données dans le flux de données diffère de ce qui est pris en charge dans la destination de données. Voici quelques conversions par défaut que nous avons mises en place pour vous assurer que vous pouvez toujours obtenir vos données dans la destination des données :

Destination Flux de données Type de données Type de données de destination
Fabric Warehouse Int8.Type Int16.Type