Cet article fournit des informations sur les questions fréquemment posées sur l’exportation de 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.
Note
Pour supprimer les données obsolètes et immobiles dans le lac de données sans rompre Azure Synapse Link, envisagez d’utiliser la requête de fonctionnalité et d’analyser les mises à jour incrémentielles
Comment puis-je accéder à mes relations de table ?
Pour accéder à des relations plusieurs-à-plusieurs, la relation est disponible en tant que table à sélectionner dans la page Ajouter des tables pour un nouveau lien et à partir des tables Gérer pour un lien préexistant.
Note
Toutes les données de relations sont en mode Append uniquement par défaut lorsqu’elles sont écrites au format CSV.
Comment puis-je obtenir des coûts estimés avant d’ajouter Azure Synapse Link ?
Azure Synapse Link est une fonctionnalité gratuite avec Dataverse. L’utilisation d’Azure Synapse Link pour Dataverse n’entraîne pas de frais supplémentaires sous Dataverse. Toutefois, tenez compte des coûts potentiels pour le service Azure :
- Stockage de données dans Azure Data Lake Storage Gen2 : Tarification d’Azure Storage Data Lake Gen2 | Microsoft Azure
- Coût de consommation des données (par exemple, espace de travail Synapse) : Tarification - Azure Synapse Analytics | Microsoft Azure Pour des informations complètes sur Microsoft Cost Management, consultez : Gestion des coûts Azure - Microsoft Cost Management | Microsoft Learn
Que se passe-t-il quand 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 fichier correspondante. Bien que les lignes qui existaient avant l’ajout de la colonne ne soient pas affichées dans la nouvelle colonne, les lignes nouvelles ou mises à jour affichent la colonne nouvellement ajoutée.
Que se passe-t-il quand 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 null tout en conservant 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 quand 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 au format CSV : il s’agit du mode par défaut. Lorsque vous supprimez une ligne de table en 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 la mise à jour des répertoires incrémentiels : dans ce mode, lorsqu’une ligne de table Dataverse est supprimée, elle n’est pas supprimée définitivement de la destination. Au lieu de cela, une ligne est ajoutée et définie à
isDeleted=Truedans le fichier dans la partition de données correspondante dans Azure Data Lake. - Exporter au format Delta Lake : Azure Synapse Link effectue une suppression réversible sur les données au cours du prochain cycle de synchronisation delta, suivie d’une suppression définitive après 30 jours.
Pourquoi ne vois-je pas d’en-tête de colonne dans le fichier exporté ?
Azure Synapse Link suit le modèle de données commun pour permettre aux données et à sa signification d’être partagées entre les applications et les processus métier 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-t-il ou change-t-il de longueur pour les types de données et ne conserve 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 ultérieurement à 100, Dataverse permet toujours à vos données existantes de rester présentes dans Dataverse. Cela se fait en maintenant DBLength à 200 et MaxLength à 100. Ce que vous voyez dans Model.json est DBLength et si vous utilisez cela pour les processus en aval, vous n’aurez jamais d’espace moindre pour vos colonnes Dataverse.
Note
Les champs mémo sont définis comme varchar(max) ayant une longueur maximale par défaut de 9999.
Quels formats de date et d’heure peuvent être attendus dans les tables Dataverse exportées ?
Il existe trois formats de date et d’heure qui peuvent être attendus dans les tables Dataverse exportées.
| Nom de la colonne | Format | Type de données | Example |
|---|---|---|---|
| SinkCreatedOn et SinkModifiedOn | M/j/aaaa H:mm:ss tt | datetime | 28/6/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’ | datetime | 2021-06-25T16:21:12Z |
Note
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, qui met à jour le format de 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 des noms de fichiers 1.csv ou 1_001.csv au lieu des noms de fichiers partitionnés selon la date et l'heure habituelles pour certaines tables de Dataverse ?
Ce comportement est attendu lorsque vous choisissez le mode d’exportation d’ajout uniquement et que vous disposez de tables sans colonne CreatedOn valide. Les objets blob sont organisés en fichiers tels que 1.csv, 2.csv (utilisation du partitionnement personnalisé en raison de l’absence d’une date de création valide). Quand une partition approche de 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é dans un délai d’un an, nous vous recommandons d’utiliser des partitions mensuelles. Cela entraîne des fichiers plus petits et de meilleures performances. En outre, si les lignes des tables Dataverse sont fréquemment mises à jour, le fractionnement en plusieurs fichiers plus petits permet d’améliorer les performances dans le cas de scénarios de mise à jour sur place. Delta Lake est disponible uniquement 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 ?
En mode Ajout uniquement, les données incrémentielles des tables Dataverse sont ajoutées à la partition de fichier correspondante dans le lac. Pour plus d’informations : Options de configuration avancées dans Azure Synapse Link
Quand utiliser le mode Ajout 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. Là encore, il s’agit d’une option couramment utilisée et fortement recommandée pour les clients d’entreprise. En outre, vous pouvez choisir d’utiliser ce mode pour les scénarios dans lesquels l’intention consiste à examiner de manière incrémentielle les modifications de Dataverse et à traiter les modifications pour les scénarios ETL, IA et ML. Le mode Ajout uniquement fournit un historique des modifications, au lieu de la dernière modification ou de la mise à jour en place, et active plusieurs séries chronologiques à partir de scénarios IA, tels que la prédiction ou l’analytique de prévision basée sur des valeurs historiques.
Comment récupérer la ligne la plus up-to-date de chaque enregistrement et exclure les lignes supprimées lorsque j’exporte des données en mode Ajout uniquement ?
En mode Ajout uniquement, vous devez identifier la dernière version de l’enregistrement avec le même ID à l’aide de VersionNumber et SinkModifiedOn, puis appliquer isDeleted=0 à la dernière version.
Pourquoi voir les numéros de version dupliqués lorsque j’exporte des données en mode Ajout uniquement ?
En mode ajout uniquement, si Azure Synapse Link for Dataverse ne reçoit pas d’accusé de réception du lac de données Azure confirmant la validation des données, par exemple en raison de retards réseau, Azure Synapse Link réessaye dans ces cas et valide à nouveau les données. La consommation finale doit être 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 attendu.
Modifiedon est la datetime 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 ?
Toute table dont le suivi des modifications n’est pas activé n’est pas prise en charge en plus des tables système suivantes :
- Attachment
- Calendar
- Règle de calendrier
Certaines tables Dataverse, telles que postcomment, postregarding, postlike, post et postrole, ne sont pas disponibles pour les clients pour permettre la synchronisation via Azure Synapse Link.
Dans certains cas, ces tables peuvent apparaître lorsque la rétention à long terme de Dataverse est activée. Dans ce cas, un sous-ensemble ou tous les enregistrements de ces tables peuvent être exportés. Ce comportement est attendu pour les scénarios de rétention à long terme.
Important
- Ces tables ne doivent pas être sélectionnées pour la synchronisation.
- Leur présence n’indique pas la prise en charge complète de la synchronisation incrémentielle.
Note
Vous pouvez ajouter la table d’audit pour l’exportation à l’aide d’Azure Synapse Link pour Dataverse. Toutefois, l’exportation de la table d’audit est uniquement prise en charge 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 ?
Le travail de conversion Delta Lake est déclenché lorsqu’il y a eu une modification des données dans l’intervalle de temps configuré. Il n’existe aucune option permettant d’arrêter ou de suspendre le pool Apache Spark. Toutefois, vous pouvez modifier l’intervalle de temps après la création du lien sous Gérer les tables > à intervalles de temps avancés.
Azure Synapse Link prend-il en charge les colonnes de recherche ?
Les colonnes de recherche sont constituées d’un ID et d’une valeur. Les valeurs de recherche changent uniquement sur la table racine. Pour mieux refléter la valeur d’une colonne de recherche, nous vous recommandons de joindre la table racine d’origine pour obtenir la dernière valeur.
Azure Synapse Link prend-il en charge les colonnes calculées ?
Dans Dataverse, les colonnes calculées conservent uniquement les informations de formule et la valeur réelle dépend de la colonne de table de base. Par conséquent, les colonnes calculées ne sont prises en charge que lorsque toutes les colonnes se trouvent dans la même table exportée.
Quelles tables Dataverse utilisent uniquement le mode d’ajout par défaut ?
Toutes les tables qui n’ont pas de champ createdOn sont synchronisées à l’aide du mode Ajout uniquement par défaut. Cela inclut les tables de relation et la table ActivityParty.
Pourquoi le message d’erreur s’affiche-t-il : le contenu du répertoire sur le chemin d’accès 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 aux 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 des données au format Delta Lake, votre fichier CSV est nettoyé après la conversion Delta Lake. Vous devez interroger des données avec des tables non partitionnées dans l'espace de travail Synapse.
Pourquoi vois-je le message d'erreur indiquant qu'il est impossible de charger en bloc, car le fichier est incomplet ou n’a pas pu être lu (fichier CSV uniquement) ?
Les données dataverses peuvent changer en continu en créant, mettant à jour et supprimant des transactions. Cette erreur est due à la modification du fichier sous-jacent lorsque vous lisez des données à partir de celle-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 : Dépanner le pool SQL sans serveur
Comment puis-je utiliser Azure Synapse Link pour archiver des données critiques ?
Azure Synapse Link pour Dataverse est conçu à des fins d’analytique. Nous recommandons aux clients d’utiliser la rétention à long terme à des fins d’archivage. Plus d’informations : Vue d’ensemble de la rétention des données à long terme dataverse
Pourquoi ne vois-je pas de modifications de données dans le lac de données quand des enregistrements ont été supprimés dans Dataverse ?
Pour tout appel SQL direct pour supprimer un enregistrement, le service Azure Synapse Link pour Dataverse ne se déclenche pas, car BPO.Delete n’est pas appelé. Pour obtenir un exemple de fonctionnalité, accédez à Comment nettoyer l’accès hérité.