FAQ Azure Synapse Link for Dataverse

Cet article fournit des informations sur les questions fréquemment posées sur l’exportation des données de table Microsoft Dataverse vers Azure Synapse Analytics et Azure Data Lake.

Puis-je effectuer manuellement des tâches telles que la création, la mise à jour, la suppression ou la définition de stratégies de suppression automatique pour les fichiers de données dans le stockage Azure connecté ?

Les fichiers de données ne doivent pas être modifiés par un client et aucun fichier client ne doit être placé dans les dossiers de données.

Notes

Pour supprimer les données obsolètes et stagnantes dans le lac de données sans interrompre Azure Synapse Link, envisagez d’utiliser la fonctionnalité Interroger et analyser les mises à jour incrémentielles

Comment accéder à ma table Relations ?

Pour accéder aux relations plusieurs à plusieurs, la relation est disponible sous forme de table à sélectionner dans la page Ajouter des tables pour un nouveau lien et dans Gérer les tables pour un lien préexistant.

Notes

Toutes les données de relations sont en mode d’ajout uniquement par défaut lorsqu’elles sont écrites au format CSV.

Azure Synapse Link est une fonctionnalité gratuite avec Dataverse. L’utilisation d’Azure Synapse Link for Dataverse ne génère pas de frais supplémentaires dans Dataverse. Cependant, tenez compte des coûts potentiels pour le service Azure :

Que se passe-t-il lorsque j'ajoute une colonne ?

Lorsque vous ajoutez une nouvelle colonne à une table dans la source, elle est également ajoutée à la fin du fichier dans la destination dans la partition de fichiers correspondante. Alors que les lignes qui existaient avant l’ajout de la colonne n’affichent pas la nouvelle colonne, les lignes nouvelles ou mises à jour afficheront la colonne nouvellement ajoutée.

Que se passe-t-il lorsque je supprime une colonne ?

Lorsque vous supprimez une colonne d’une table dans la source, la colonne n’est pas supprimée de la destination. Au lieu de cela, les lignes ne sont plus mises à jour et sont marquées comme nulles tout en préservant les lignes précédentes.

Que se passe-t-il si je modifie le type de données d’une colonne ?

La modification du type de données d'une colonne est un changement cassant et vous devez défaire, puis refaire le lien.

Que se passe-t-il lorsque je supprime une ligne ?

La suppression d’une ligne est gérée différemment en fonction des options d’écriture de données que vous choisissez :

  • Mise à jour sur place avec le format CSV : il s’agit du mode par défaut. Lorsque vous supprimez une ligne de table dans ce mode, la ligne est également supprimée de la partition de données correspondante dans Azure Data Lake. En d’autres termes, les données sont définitivement supprimées de la destination.
  • Ajout uniquement avec le format CSV et mise à jour incrémentielle des dossiers : dans ce mode, lorsqu’une ligne de table Dataverse est supprimée, elle n’est pas supprimée définitivement de la destination. À la place, une ligne est ajoutée et définie comme isDeleted=True pour le fichier dans la partition de données correspondante dans Azure Data Lake.
  • Exporter au format Delta Lake : Azure Synapse Link effectue une suppression temporaire des données lors du prochain cycle de synchronisation delta, suivie d’une suppression définitive après 30 jours.

Pourquoi est-ce que je ne vois pas d’en-tête de colonne dans le fichier exporté ?

Azure Synapse Link suit le Common Data Model pour pouvoir partager les données et leur signification entre plusieurs applications et processus d’entreprise, tels que Microsoft Power Apps, Power BI, Dynamics 365 et Azure. Dans chaque dossier CDM, les métadonnées telles qu’un en-tête de colonne sont stockées dans le fichier model.json. Plus d’informations : Common Data Model et Azure Data Lake Storage Gen2 | Microsoft Learn

Pourquoi le fichier Model.json augmente ou change de longueur pour les types de données et ne conserve-t-il pas ce qui est défini dans Dataverse ?

Model.json conserve la longueur de la base de données pour la taille de la colonne. Dataverse a un concept de longueur de base de données pour chaque colonne. Si vous créez une colonne d’une taille de 200 et que vous la réduisez ensuite à 100, Dataverse permet toujours à vos données existantes d’être présentes dans Dataverse. Pour ce faire, il maintient DBLength à 200 et MaxLength à 100. Ce que vous voyez dans Model.json est DBLength et si vous l’utilisez pour des processus en aval, vous ne fournirez jamais moins d’espace pour vos colonnes Dataverse.

Notes

Les champs de mémo sont définis comme varchar(max) avec une longueur maximale par défaut de 9999.

Quels formats de date et d’heure peuvent être attendus dans les tables Dataverse exportées ?

Trois formats de date et d’heure peuvent être attendus dans les tables Dataverse exportées, qui sont les suivants.

Nom de colonne Mettre en forme Type de données Exemple
SinkCreatedOn et SinkModifiedOn M/j/aaaa H:mm:ss tt DateHeure 6/28/2021 4:34:35 PM
CreatedOn aaaa-MM-jj’T’HH:mm:ss.sssssssXXX datetimeOffset 2018-05-25T16:21:09.0000000+00:00
Toutes les autres colonnes aaaa-MM-jj’T’HH:mm:ss’Z’ DateHeure 2021-06-25T16:21:12Z

Notes

Le type de données CreatedOn est passé de datetime à datetimeOffset le 29/07/2022. Pour modifier le format du type de données d’une table créée avant la modification, supprimez et lisez la table.

Vous pouvez choisir différents comportements de colonne pour une colonne Date et heure dans Dataverse, ce qui met à jour le format du type de données. Pour plus d’informations : Comportement et format de la colonne de date et d’heure

Pourquoi est-ce que je vois les noms des fichiers 1.csv ou 1_001.csv au lieu des noms normaux des fichiers partitionnés avec la date et l’heure pour certaines tables Dataverse ?

Ce comportement est normal lorsque vous choisissez le mode d’exportation Ajouter uniquement et que vous disposez de tables sans colonne CreatedOn valide. Les blobs sont organisés en fichiers tels que 1.csv, 2.csv (qui utilisent le partitionnement personnalisé en raison de l’absence de date de création valide). Lorsqu’une partition approche 95 % de MaxBlockPerBlobLimit, le système génère automatiquement un nouveau fichier, illustré ici comme 1_001.csv.

Quand dois-je utiliser une stratégie de partition annuelle ou mensuelle ?

Pour les tables Dataverse où le volume de données est élevé en un an, nous vous recommandons d'utiliser des partitions mensuelles. Cela se traduit par des fichiers plus petits et de meilleures performances. De plus, si les lignes des tables Dataverse sont mises à jour fréquemment, la division en plusieurs fichiers plus petits permet d’améliorer les performances dans le cas de scénarios de mise à jour sur place. Delta Lake n’est disponible qu’avec une partition annuelle en raison de ses performances supérieures par rapport au format CSV.

Qu’est-ce que le mode d’ajout uniquement et quelle est la différence entre le mode d’ajout uniquement et le mode de mise à jour sur place ?

Plutôt qu’une Mise à jour sur place, en mode Ajouter uniquement, les données incrémentielles issues des tables Dataverse sont ajoutées à la partition de fichiers correspondante dans le lac. Plus d’informations : Options Configuration avancée dans Azure Synapse Link

Quand dois-je utiliser le mode Ajouter uniquement pour une vue historique des modifications ?

Le mode Ajouter uniquement est l’option recommandée pour l’écriture des données de table Dataverse au lac, en particulier lorsque les volumes de données sont élevés dans une partition avec des données fréquemment changeantes. Encore une fois, il s’agit d’une option couramment utilisée et hautement recommandée pour les entreprises clientes. En outre, vous pouvez choisir d’utiliser ce mode pour les scénarios dans lesquels l’intention est d’examiner de manière incrémentielle les modifications depuis Dataverse et traiter les changements pour les scénarios ETL, AI et ML. Le mode Ajouter uniquement fournit un historique des modifications, au lieu de la dernière modification ou de la mise à jour sur place, et active plusieurs séries chronologiques à partir de scénarios d’IA, tels que prédiction ou des analyses de prévision basées sur des valeurs historiques.

Comment puis-je récupérer la ligne la plus à jour de chaque enregistrement et exclure les lignes supprimées lorsque j’exporte des données en mode ajout uniquement ?

En mode d’ajout uniquement, vous devez identifier la version la plus récente de l’enregistrement avec le même ID en utilisant VersionNumber et SinkModifiedOn, puis appliquer isDeleted=0 sur la version la plus récente.

Pourquoi vois-je des numéros de version en double lorsque j’exporte des données en utilisant le mode d’ajout uniquement ?

Pour le mode ajout uniquement, si Azure Synapse Link for Dataverse ne reçoit pas de confirmation du lac de données Azure indiquant que les données ont été validées pour une raison quelconque, telle que des retards du réseau, Azure Synapse Link réessaiera dans ces scénarios et validera à nouveau les données. La consommation en aval doit être rendue résiliente à ce scénario en filtrant les données à l’aide de SinkModifiedOn.

Pourquoi est-ce que je vois des différences dans les colonnes Sinkmodifiedon et Modifiedon ?

C’est normal. Modifiedon est la date et l’heure de modification de l’enregistrement dans Dataverse ; Sinkmodifiedon est la date et l’heure de modification de l’enregistrement dans le lac de données.

Quelles tables Dataverse ne sont pas prises en charge pour l’exportation ?

Aucune table pour laquelle le suivi des modifications n'est pas activé ne sera prise en charge en plus des tables système suivantes :

  • Attachment
  • Calendar
  • Calendarrule

Notes

Vous pouvez ajouter la table d’audit pour l’exportation en utilisant Azure Synapse Link for Dataverse. Cependant, l’exportation de la table d’audit n’est prise en charge qu’avec les profils Delta Lake.

J’utilise la fonctionnalité d’exportation vers Delta Lake, puis-je arrêter la tâche Apache Spark ou modifier le temps d’exécution ?

La tâche de conversion Delta Lake est déclenchée lorsqu’une modification des données se produit dans l’intervalle de temps configuré. Il n’existe aucune option pour arrêter ou suspendre le groupe Apache Spark. Cependant, vous pouvez modifier l’intervalle de temps après la création du lien sous Gérer les tables > Intervalle de temps avancé.

Les colonnes de recherche sont composées d’un identifiant et d’une valeur. Les valeurs de recherche ne changent que sur la table racine. Pour mieux refléter la valeur d’une colonne de recherche, nous vous recommandons de la joindre à la table racine d’origine pour obtenir la dernière valeur.

Dans Dataverse, les colonnes calculées conservent uniquement les informations de formule et la valeur réelle dépend de la colonne de la table de base. Les colonnes calculées ne sont donc prises en charge que lorsque toutes les colonnes se trouvent dans la même table exportée.

Quelles tables Dataverse utilisent le mode Ajouter uniquement par défaut ?

Toutes les tables qui n'ont pas de champ createdOn sont synchronisées en utilisant le mode Ajouter à la fin uniquement par défaut. Cela inclut les tables de relations et la table ActivityParty.

Pourquoi est-ce que je vois le message d’erreur : Le contenu du répertoire dans le chemin ne peut pas être répertorié ?

  • Les données Dataverse sont stockées dans le conteneur de stockage connecté. Vous avez besoin du rôle « Contributeur de données Blob de stockage » dans le compte de stockage lié pour effectuer des opérations de lecture et de requête via l’espace de travail Synapse.
  • Si vous choisissez d’exporter les données au format Delta Lake, votre fichier CSV est nettoyé après la conversion Delta Lake. Vous devez consulter les données avec des tables non partitionnées via Synapse Workspace.

Pourquoi est-ce que je vois le message d’erreur « Chargement en masse impossible car le fichier est incomplet ou n’a pas pu être lu (fichier CSV uniquement) ?

Les données Dataverse peuvent changer en permanence grâce à des transactions de création, de mise à jour et de suppression. Cette erreur est causée par la modification du fichier sous-jacent lorsque vous lisez des données de celui-ci. Ainsi, pour les tables avec des changements continus, modifiez votre pipeline de consommation pour utiliser des données d’instantané (tables partitionnées) à consommer. Plus d’informations : Résoudre les problèmes du pool SQL sans serveur

Azure Synapse Link for Dataverse est conçu à des fins d’analyse. Nous recommandons aux clients d’utiliser la conservation à long terme à des fins d’archivage. Pour plus d’informations, voir : Vue d’ensemble de la conservation des données à long terme Dataverse

Pourquoi ne vois-je aucune modification des données dans le lac de données lorsque les enregistrements ont été supprimés dans Dataverse ?

Pour tout appel SQL direct visant à supprimer un enregistrement, le Azure Synapse Link for Dataverse service ne se déclenche pas car BPO.Delete n’est pas appelé. Pour un exemple de fonctionnalité, consultez Comment nettoyer les accès hérités.