Répliquer les données Microsoft Dynamics 365 (en ligne) dans la base de données SQL Microsoft Azure

 

Date de publication : février 2017

S’applique à : Dynamics 365 (online), Dynamics CRM Online

Notes

Les informations fournies ici concernent les versions de Dynamics 365 précédant Dynamics 365 (online), version 9.0. Pour obtenir la dernière documentation, voir Répliquer les données dans la base de données SQL Azure.

Le Service d'exportation de données de Microsoft Dynamics 365 est un service complémentaire disponible dans Microsoft AppSource qui permet de répliquer les données Microsoft Dynamics 365 (Online) dans un magasin Base de données SQL Microsoft Azure via un abonnement Microsoft Azure appartenant au client. Les destinations cibles prises en charge sont Base de données SQL Microsoft Azure et SQL Server sur des ordinateurs virtuels Microsoft Azure. Le Service d'exportation de données effectue d'abord une synchronisation intelligente de l'ensemble des données Dynamics 365, puis effectue une synchronisation continue au fur et à mesure que des modifications sont apportées (modifications delta) au système Microsoft Dynamics 365 (Online). Cela permet d'activer plusieurs scénarios d'analyse et de création de rapport sur les données Dynamics 365 avec les services de données et d'analyse de Azure. De nouvelles possibilités sont également offertes aux clients et partenaires pour créer des solutions personnalisées.

Notes

Vous pouvez utiliser le Service d'exportation de données avec :

  • Microsoft Dynamics 365 (Online)

  • Mise à jour de Microsoft Dynamics CRM Online 2016

Pour plus d'informations sur l'interface par programme de gestion de la configuration et de l'administration du Service d'exportation de données, voir MSDN : Service exportation de données.

Contenu de la rubrique

Conditions préalables pour l'utilisation de Service d'exportation de données

Services, informations d'identification et privilèges requis

Informations à connaître avant d'utiliser le service d'exportation de données

Exporter le profil

Créer un profil d'exportation

Modifier un profil d'exportation existant

Détails de la table pour la base de données SQL Azure de destination

Résolution des problèmes de synchronisation

Gestion des erreurs et surveillance

Pratiques recommandées lors de l'utilisation de la base de données SQL Azure avec le service d'exportation de données

À propos de la latence de la synchronisation des données

Procédure de configuration de Azure Key Vault

Problèmes connus et restrictions

Conditions préalables pour l'utilisation de Service d'exportation de données

Pour commencer à utiliser Service d'exportation de données, les conditions préalables suivantes sont requises.

Service de base de données SQL Azure

  • Un client possédait un abonnement Base de données SQL Azure. Cet abonnement doit autoriser le volume de données qui est synchronisé.

  • Paramètres du pare-feu. Nous vous recommandons de désactiver l'option Autoriser l'accès aux services Azure et de spécifier les adresses IP clientes appropriées répertoriées dans cette rubrique. Pour plus d'informations, voir Adresses IP statiques des bases de données SQL Azure utilisées par le service d'exportation de données

    Vous pouvez également activer l'option Autoriser l'accès aux services Azure pour autoriser l'accès à tous les services Azure.

    Pour SQL Server sur la machine virtuelle Azure, l'option « Se connecter à SQL Server via Internet » doit être activée. Informations complémentaires : Microsoft Azure : Se connecter à une machine virtuelle SQL Server sur Azure (déploiement classique)

  • L'utilisateur de base de données doit disposer d'autorisations au niveau de la base de données et au niveau du schéma en fonction des tables ci-dessous. L'utilisateur de base de données est utilisé dans la chaîne de connexion de l'exportation de données.

    Autorisations de base de données requises.

    Code du type d'autorisation

    Nom de l'autorisation

    CRTB

    CREATE TABLE

    CRTY

    CREATE TYPE

    CRVW

    CREATE VIEW

    CRPR

    CREATE PROCEDURE

    ALUS

    ALTER ANY USER

    VWDS

    AFFICHER LE STATUT DE LA BASE DE DONNÉES

    Autorisations de schéma requises.

    Code du type d'autorisation

    Nom de l'autorisation

    AL

    ALTER

    DANS

    INSERT

    DL

    SUPPR

    SL

    SELECT

    UP

    UPDATE

    EX

    EXECUTE

    RF

    REFERENCES

Service Azure Key Vault

  • Le client possédait un abonnement Azure Key Vault, qui permet de maintenir sécurisée la chaîne de connexion de base de données.

  • Accordez l'autorisation PermissionsToSecrets à l'application avec l'Id « b861dbcc-a7ef-4219-a005-0e4de4ea7dcf ». Cela peut être obtenu en exécutant la commande AzurePowerShell ci-dessous et est utilisé pour accéder à Coffre de clés qui contient le secret de chaîne de connexion.Pour plus d'informations :Procédure de configuration de Azure Key Vault

  • Le Key Vault doit être référencé avec l'organisation Microsoft Dynamics 365 (OrgId) et les ID de client (TenantId). Cela peut être obtenu en exécutant la commande AzurePowerShell ci-dessous.Pour plus d'informations :Procédure de configuration de Azure Key Vault

Microsoft Dynamics 365 (Online)

  • Une Mise à jour de Microsoft Dynamics CRM Online 2016 ou une instance de la version ultérieure.

  • La solution Service d'exportation de données doit être installée. Vous pouvez l'obtenir à partir de Microsoft AppSource.

  • Les entités qui seront ajoutés au Exporter le profil doivent être activées avec le suivi des modifications. Pour qu'une entité standard ou personnalisée puisse être synchronisée, accédez à Personnalisation > Personnaliser le système, puis cliquez sur l'entité. Dans l'onglet Général vérifiez que l'option Suivi des modifications sous la section Services de données est activée.

  • Vous devez avoir le rôle de sécurité Administrateur système dans l'instance de Microsoft Dynamics 365 (Online).

Activez les fenêtres contextuelles pour le domaine https://discovery.crmreplication.azure.net/ dans votre navigateur Web. Ceci est obligatoire pour la connexion automatique lorsque vous accédez à Paramètres > Exportation des données.

Services, informations d'identification et privilèges requis

Pour utiliser la fonctionnalité Service d'exportation de données, vous devez disposer des services, des informations d'identification et des privilèges ci-après.

  • Un abonnement Microsoft Dynamics 365 (Online). Seuls les utilisateurs qui bénéficient du rôle de sécurité Administrateur système Microsoft Dynamics 365 peuvent configurer ou apporter des modifications à un Exporter le profil.

  • Un abonnement Microsoft Azure incluant les services ci-après.

    • Base de données SQL Azure ou AzureSQL Server sur des machines virtuelles Azure.

    • Azure Key Vault.

Important

Pour utiliser le Service d'exportation de données, les services Microsoft Dynamics 365 (Online) et Azure Key Vault doivent s'exécuter sur le même client et dans le même service Microsoft Azure Active Directory.Pour plus d'informations :Intégration d'Azure à Office 365

Le service Base de données SQL Azure peut être dans le même client ou un client différent du service Microsoft Dynamics 365 (Online).

Informations à connaître avant d'utiliser le service d'exportation de données

  • Les profils d'exportation doivent être supprimés, puis recréés chaque fois que vous exécutez les actions suivantes sur une instance Microsoft Dynamics 365 (Online).

    • Restaurer une instance.

    • Copier une instance (intégralement ou partiellement).

    • Réinitialiser une instance.

    • Déplacer une instance vers un autre pays ou une autre zone.

    Pour ce faire, supprimez le Exporter le profil dans la vue PROFILS D'EXPORTATION, supprimez les tables et les procédures stockées, puis créez un profil.Pour plus d'informations :Comment supprimer toutes les tables et procédures stockées du Profil d'exportation des données

  • Le Service d'exportation de données ne fonctionne pas pour les instances sandbox de Microsoft Dynamics 365 (Online) qui sont configurées avec l'option Activer le mode d'administration activée.Pour plus d'informations :Mode d'administration

  • Le Service d'exportation de données ne permet pas de supprimer les tables, colonnes ou objets de procédure stockée associés dans la destination Base de données SQL Azure lorsque les actions suivantes se produisent.

    • Une entité est supprimée dans Microsoft Dynamics 365 (Online).

    • Un champ est supprimé dans Microsoft Dynamics 365 (Online).

    • Une entité est supprimée d'un Exporter le profil.

    Ces éléments doivent être supprimés manuellement.Comment supprimer des tables et des procédures stockées du Profil d'exportation des données pour une entité spécifique

    Les notifications de suppression des métadonnées sont enregistrées dans le dossier unprocessablemessages.Gestion des erreurs et surveillance

Exporter le profil

Pour exporter les données de Microsoft Dynamics 365 (Online), l'administrateur Microsoft Dynamics 365 (Online) crée un Exporter le profil. Plusieurs profils peuvent être créés et activés pour synchroniser les données vers différentes bases de données de destination simultanément.

Le Exporter le profil est le concept de base du Service d'exportation de données. Le Exporter le profil rassemble les informations d'installation et de configuration pour synchroniser les données avec la base de données de destination. Dans le cadre du Exporter le profil, l'administrateur fournit une liste d'entités à exporter dans la base de données de destination. Une fois l'activé, le Exporter le profil démarre la synchronisation automatique des données. Initialement, toutes les données qui correspondent à chaque entité sélectionnée sont exportées. Ensuite, seules les modifications des données quand elles se produisent dans les enregistrements ou métadonnées d'entité de Microsoft Dynamics 365 (Online) sont synchronisées en continu à l'aide d'un mécanisme de transmission (push) en temps quasi-réel. Par conséquent, il est inutile d'installer une planification pour récupérer des données de Microsoft Dynamics 365 (Online).

Seules les entités pour lesquelles le suivi des modifications est activé peuvent être ajoutées à Exporter le profil. Notez que le suivi des modifications est activé sur la plupart des entités Microsoft Dynamics 365 standard qui capturer des données. Les entités personnalisées doivent être explicitement activées pour le suivi des modifications avant de les ajouter à un Exporter le profil.Pour plus d'informations :Activez le suivi des modifications pour contrôler la synchronisation des données

Le Service d'exportation de données effectue la synchronisation des métadonnées et des données. Chaque entité se traduit en une table, et chaque champ se traduit en une colonne dans la table de base de données de destination. Les noms des tables et des colonnes utilisent le nom de schéma des métadonnées Microsoft Dynamics 365.

Une fois activé, un Exporter le profil rassemble les statistiques de la synchronisation des données qui offre de la visibilité opérationnelle et des diagnostics des données exportées.

Synchronisation des données disponible avec un profil d'exportation

Catégorie

Fonctionnalité

Types de données pris en charge

Synchronisation initiale

Métadonnées - Types de données de base

Nombre entier, Nombre à virgule flottante, Nombre décimal, Ligne de texte unique, Plusieurs lignes de texte, Types de données de date et d'heure.

Synchronisation initiale

Métadonnées - Types de données avancées

Devise, PartyList, Groupe d'options, Statut, Raison du statut, Recherche (y compris type de recherche Client et Concernant). PartyList n'est disponible que pour la version 8.1 d'exportation et ultérieure.

Synchronisation initiale

Données - Types de base

Tous les types de données de base.

Synchronisation initiale

Données - Types avancés

Tous les types de données avancés.

Synchronisation delta

Modifier le schéma - Types de base

Ajouter ou modifier une modification de champ, tous les types de données de base.

Synchronisation delta

Modifier le schéma - Types avancés

Ajouter ou modifier une modification de champ, tous les types de données avancées.

Synchronisation delta

Modifier les données - Types de base

Tous les types de données de base.

Synchronisation delta

Modifier les données - Types avancés

Tous les types de données avancés, tels que PartyList.

Créer un profil d'exportation

Vérifiez que les conditions suivantes sont remplies avant de créer un Exporter le profil.

  • La solution Service d'exportation de données est installée dans votre instance de Microsoft Dynamics 365 (Online).

  • Maintenez la chaîne de connexion Base de données SQL dans Coffre de clés et copiez l'URL Coffre de clés à fournir dans le Exporter le profil. Informations complémentaires : Microsoft Azure : Mise en route avec Azure Key Vault

  • Les entités à ajouter au Exporter le profil sont activées pour le suivi des modifications.Pour plus d'informations :Activez le suivi des modifications pour contrôler la synchronisation des données

  • Votre service Base de données SQL a suffisamment d'espace de stockage pour stocker les données Microsoft Dynamics 365.

  • Vous êtes un administrateur système dans l'instance de Microsoft Dynamics 365 (Online).

  1. Dans Microsoft Dynamics 365 (Online), accédez à Paramètres > Gestion des données.

  2. Examinez l'avis, et cliquez sur Continuer ou Annuler si vous ne souhaitez pas exporter des données.

  3. Cliquez sur Nouveau pour créer un nouveau Exporter le profil.

  4. Dans l'étape Propriétés, entrez les informations suivantes, puis cliquez sur Suivant pour continuer sans se connecter à Coffre de clés . Le fait de cliquer sur Valider utilise l'URL Coffre de clés que vous avez fourni pour vous connecter à Coffre de clés .

    • Nom. Nom unique du profil. Ce champ est obligatoire.

    • URL de connexion de Key Vault.Coffre de clés URL pointant vers la chaîne de connexion stockée avec les informations d'identification utilisées pour vous connecter à la base de données de destination. Ce champ est obligatoire.Pour plus d'informations :Procédure de configuration de Azure Key Vault

      Important

      L'URL de connexion de Key Vault respecte la casse. Tapez l'URL de connexion de Key Vault exactement telle qu'elle est affichée après avoir exécuté les commandes Windows PowerShell de cette rubrique.

    • Schéma. Nom d'un schéma de base de données alternatif. Seuls les caractères alphanumériques sont valides. Ce champ est facultatif. Par défaut, dbo est le schéma qui est utilisé pour la Base de données SQL de destination.

    • Préfixe. Préfixe à utiliser pour les noms de tables créés dans la base de données de destination. Cela permet facilement d'identifier les tables créées pour le Exporter le profil dans la base de données de destination. Une fois spécifié, vérifiez que le préfixe est d'une longueur inférieure à 15 caractères. Ce champ est facultatif et seuls les caractères alphanumériques sont autorisés.

    • Nombre de nouvelles tentatives. Nombre de nouvelles tentatives d'un enregistrement en cas d'échec à l'insérer ou à le mettre à jour dans la table de destination. Ce champ est obligatoire. Les valeurs acceptables sont 0 à 20 et la valeur par défaut est 12.

    • Intervalle entre les nouvelles tentatives. Nombre de secondes à attendre avant une nouvelle tentative en cas d'échec. Ce champ est obligatoire. Les valeurs acceptables sont 0 à 3600 et la valeur par défaut est 5.

    • Écrire le journal de suppression. Paramètre facultatif pour la journalisation des enregistrements supprimés.

    Onglet Propriétés de la boîte de dialogue Créer un profil d'exportation

  5. Dans l'étape Sélectionner les entités, sélectionnez les entités à exporter vers la Base de données SQL de destination, puis cliquez sur Suivant.

    Onglet Sélectionner des entités de la boîte de dialogue Créer un profil d'exportation

  6. Dans l'étape Sélectionner les relations, vous pouvez synchroniser les relations M:N (plusieurs-à-plusieurs) qui existent avec les entités que vous avez sélectionnées à l'étape précédente. Cliquez sur Suivant.

    Créer un profil d'exportation - Gérer les relations - Sélectionner des relations

  7. Dans l'étape Résumé, cliquez sur Créer et activer pour créer l'enregistrement du profil et vous connecter à Coffre de clés , qui démarre le processus de synchronisation. Sinon, cliquez sur Créer pour enregistrer le Exporter le profil et l'activer ultérieurement.

    Onglet Résumé de la boîte de dialogue Créer un profil d'exportation

Modifier un profil d'exportation existant

Vous pouvez ajouter ou supprimer les entités et les relations d'un Exporter le profil existant que vous souhaitez répliquer.

  1. Dans Microsoft Dynamics 365 (en ligne), accédez à Paramètres > Exportation des données.

  2. Dans la vue Tous les profils d'exportation des données, sélectionnez le Exporter le profil que vous souhaitez modifier.

    Sélectionner un profil d'exportation

  3. Dans la barre d'outils Actions, cliquez sur GÉRER LES ENTITÉS pour ajouter ou supprimer des entités pour l'exportation des données. Pour ajouter ou supprimer des relations d'entité, cliquez sur GÉRER LES RELATIONS.

    Gérer des entités ou des relations d'entités

  4. Sélectionnez les entités ou les relations d'entité que vous souhaitez ajouter ou supprimer.

    Sélectionner les entités ou les relations d'entité à ajouter ou supprimer

  5. Cliquez sur Mettre à jour pour envoyer vos modifications au Exporter le profil.

Important

Lorsque vous supprimez une entité ou une relation d'entité d'un Exporter le profil, la table correspondante n'est pas supprimée dans la base de données de destination. Avant de pouvoir rajouter une entité qui a été supprimée, vous devez supprimer la table correspondante dans la base de données de destination. Pour supprimer une table d'entités, voir Comment supprimer des tables et des procédures stockées du Profil d'exportation des données pour une entité spécifique.

Détails de la table pour la base de données SQL Azure de destination

Le Service d'exportation de données crée des tables pour les données et les métadonnées. Une table est créée pour chaque entité et relation M:N synchronisée.

Une fois qu'un Exporter le profil est activé, les tables ci-après sont créées dans la base de données de destination. Ce sont des tables système pour lesquelles les champs SinkCreatedTime et SinkModifiedTime ne seront pas ajoutés.

Nom de la table

Créé(e)

<Préfixe>_GlobalOptionsetMetadata

À l'activation du Exporter le profil.

<Préfixe>_OptionsetMetadata

À l'activation du Exporter le profil.

<Préfixe>_StateMetadata

À l'activation du Exporter le profil.

<Préfixe>_StatusMetadata

À l'activation du Exporter le profil.

<Préfixe>_TargetMetadata

À l'activation du Exporter le profil.

<Préfixe>_AttributeMetadata

À l'activation du Exporter le profil.

<Préfixe>_DeleteLog

À l'activation du Exporter le profil lorsque l'option Journal de suppression est activée.

Résolution des problèmes de synchronisation

Même après plusieurs nouvelles tentatives, des échecs de synchronisation des enregistrements peuvent se produire dans les contraintes de stockage des bases de données ou le verrouillage des tables en raison de requêtes longues. Pour résoudre ces échecs, vous pouvez forcer une resynchronisation des enregistrements ayant échoué ou une resynchronisation de tous les enregistrements.

  1. Affichez vos profils d'exportation pour rechercher ceux présentant des échecs de synchronisation des enregistrements. Pour ce faire, affichez les profils de données dans la zone Synchronisation ou ouvrez un Exporter le profil, par exemple le profil ci-après présentant un échec de synchronisation des enregistrements de l'entité Contact.

    DataExport_failed_records_exist

  2. Examinez la source de l'échec de synchronisation et résolvez-la.Pour plus d'informations :Gestion des erreurs et surveillance

  3. Une fois que le problème a été résolu, resynchronisez les enregistrements ayant échoué.

    Notes

    La synchronisation des enregistrements ayant échoué est une fonctionnalité préliminaire publique.

    • Une fonctionnalité préliminaire est une fonctionnalité qui n'est pas terminée, mais est disponible avant son inclusion officielle dans une version pour que les clients puissent y accéder de façon anticipée et fournir des commentaires. Les fonctionnalités préliminaires ne sont pas destinées à une utilisation en production et peuvent avoir des fonctionnalités limitées ou restreintes.

    • Des modifications doivent être apportées à cette fonctionnalité, vous ne devez donc pas l'utiliser en production. Utilisez-la uniquement dans des environnements de test ou de développement.

    • Microsoft ne fournit pas de prise en charge pour cette fonctionnalité préliminaire. Microsoft Dynamics 365 Le support technique ne pourra pas vous aider si vous avez des problèmes ou des questions. Les fonctionnalités préliminaires ne sont pas destinées à une utilisation en production et sont soumises à des conditions d'utilisation supplémentaires.

    1. Connectez-vous à votre instance de Microsoft Dynamics 365 (Online) et accédez à Paramètres > Exportation de données.

    2. Ouvrez le Exporter le profil contenant des échecs de synchronisation des enregistrements.

    3. Dans la barre d'outils du Exporter le profil, cliquez sur RESYNCHRONISATION DES ENREGISTREMENTS AYANT ÉCHOUÉ.

    4. Cliquez sur OK dans la boîte de dialogue de confirmation une fois que les enregistrements ayant échoué ont été correctement resynchronisés.

      Notification d'une resynchronisation réussie

    5. Vérifiez que le Exporter le profil ne contient pas de notifications d'enregistrement ayant échoué en ouvrant le profil d'exportation de données et en affichant le compteur Notifications ayant échoué dans l'onglet PROPRIÉTÉS ET VUE D'ENSEMBLE, qui doit être défini sur 0. Cliquez sur ACTUALISER dans la barre d'outils du Exporter le profil pour vérifier que la valeur Notifications ayant échoué est actuelle.

      Indication Aucun enregistrement n'a échoué

  4. Si les échecs de synchronisation des enregistrements persistent après avoir effectué une resynchronisation en suivant les étapes précédentes, supprimez les tables, les types et les procédures stockées de la base de données de destination, puis supprimez les entités et rajoutez-les au Exporter le profil.

    1. Supprimez les objets de base de données associés dans la Base de données SQL Azure de destination. Par exemple, si vous rencontrez des problèmes de synchronisation d'entité prospect persistants, supprimez les tables de prospect, les types et les procédures stockées de la Base de données SQL Azure de destination.Pour plus d'informations :Comment supprimer des tables et des procédures stockées du Profil d'exportation des données pour une entité spécifique

    2. Supprimez l'entité, par exemple l'entité prospects, du Exporter le profil.Pour plus d'informations :Modifier un profil d'exportation existant

    3. Rajoutez l'entité, par exemple l'entité prospects, au Exporter le profil, puis activez le profil.

Gestion des erreurs et surveillance

Pour afficher le statut de synchronisation d'un Exporter le profil, accédez à Paramètres > Exportation de données et ouvrez le Exporter le profil. Dans l'onglet ENTITÉS, le statut de synchronisation s'affiche avec une colonne Enregistrements ayant échoué pour les enregistrements qui n'ont pas pu être synchronisés. Pour tout enregistrement ayant échoué, une liste de ces enregistrements y compris la raison du statut peut être téléchargée en cliquant sur ENREGISTREMENTS AYANT ÉCHOUÉ dans la barre de commandes.

Barre de commande de profil d'exportation - Bouton Enregistrements ayant échoué

Dans le Exporter le profil, vous pouvez cliquer sur PROPRIÉTÉS ET VUE D'ENSEMBLE pour afficher les propriétés du profil. Cliquez sur RELATIONS pour afficher le statut de synchronisation de la relation.

Comment afficher des informations détaillées sur les enregistrements qui n'ont pas été synchronisés

L'affichage des journaux d'enregistrement ayant échoué peut vous aider à déterminer la cause des échecs de synchronisation. Pour afficher les enregistrements ayant échoué dans la base de données de destination Azure, utilisez l'Explorateur de stockage Microsoft Azure, une application autonome gratuite qui vous permet d'utiliser facilement les données de stockage Azure. Pour plus d'informations : Explorateur de stockage Microsoft Azure.

  1. Dans Dynamics 365, accédez à Paramètres > Gestion des données.

  2. Dans la vue Tous les profils d'exportation des données, sélectionnez le Exporter le profil contenant des notifications en échec.

    Notifications ayant échoué

  3. Dans la barre d'outils Actions, cliquez sur ENREGISTREMENTS AYANT ÉCHOUÉ.

    Bouton de barre d'outils Enregistrements ayant échoué

  4. Dans la boîte de dialogue Télécharger les enregistrements ayant échoué, cliquez sur Copier l'URL d'objet blob, puis sur OK.

    Boîte de dialogue Télécharger les enregistrements ayant échoué

    Notes

    L'URL de l'objet blob est valable pendant 24 heures. Si l'URL dépasse les 24 heures, répétez les étapes décrites précédemment pour générer une nouvelle URL d'objet blob.

  5. Démarrez l'Explorateur de stockage Microsoft Azure.

  6. Dans l'Explorateur de stockage Microsoft Azure, cliquez sur Se connecter au stockage Azure.

  7. Collez l'URL de votre Presse-papiers vers la zone Se connecter au stockage Azure, puis cliquez sur Suivant.

    URL de stockage

  8. Dans la page Résumé des connexions, cliquez sur Se connecter.

  9. L'Explorateur de stockage Azure se connecte à la base de données de destination. Si des enregistrements ayant échoué existent pour le Exporter le profil, l'Explorateur de stockage Azure affiche les dossiers de synchronisation des enregistrements ayant échoué.

Structure des dossiers de synchronisation des enregistrements ayant échoué et fichiers journaux

L'URL de stockage d'objets blob Azure pour les enregistrements ayant échoué pointe vers un emplacement dont la structure de dossiers se présente comme suit :

  • data. Ce dossier contient les notifications de données ayant échoué et le JSON associé pour les données d'enregistrement.

  • metadata. Ce dossier contient les notifications de métadonnées ayant échoué et le JSON associé pour les métadonnées.

  • failurelog. Ce dossier contient des journaux qui fournissent des informations sur l'échec de la synchronisation et la raison de cet échec.

  • forcerefreshfailurelog. Ce dossier contient les erreurs issues de la dernière exécution de la commande Enregistrements ayant échoué du Service d'exportation de données, qui est utilisée pour resynchroniser les enregistrements ayant échoué.

  • unprocessablemessages. Ce dossier contient les notifications de données qui n'ont pas été traitées en raison de la suppression des données ou métadonnées et le JSON associé.

Les dossiers failurelog et forcerefreshfailurelog sont structurés comme suit : Année\Mois\Jour\Heure pour vous permettre de localiser rapidement les échecs les plus récents. Tous les enregistrements d'échec antérieurs à 30 jours sont supprimés.

Voici un exemple de fichier journal qui indique un échec de synchronisation des enregistrements de l'entité contact.

Entité : contact, RecordId : 459d1d3e-7cc8-e611-80f7-5065f38bf1c1, NotificationTime : 28/12/2016 12:32:39, ChangeType : mise à jour, FailureReason : la base de données 'tempdb' a atteint son quota de taille. Partitionnez ou supprimez les données, supprimez les index ou consultez la documentation pour rechercher des solutions possibles. L'instruction a été terminée.

Raisons courantes aux échecs de synchronisation des enregistrements

Voici quelques raisons pour lesquelles des échecs de synchronisation des enregistrements peuvent se produire.

  • Stockage insuffisant pour la base de données de destination. Avant d'essayer de resynchroniser les enregistrements ayant échoué, augmentez ou libérez de l'espace de stockage dans la Base de données SQL Azure, si nécessaire. Lorsque ce problème se produit, un message similaire au suivant est enregistré dans le journal d'échec.

    La base de données 'databasename' a atteint son quota de taille. Partitionnez ou supprimez les données, supprimez les index ou consultez la documentation pour rechercher des solutions possibles.

  • Expiration de la synchronisation avec la Base de données SQL Azure. Cela peut se produire pendant la synchronisation initiale d'un profil d'exportation de données lorsque de grandes quantités de données sont traitées simultanément. Lorsque ce problème se produit, resynchronisez les enregistrements ayant échoué.Résolution des problèmes de synchronisation

Pratiques recommandées lors de l'utilisation de la base de données SQL Azure avec le service d'exportation de données

  • Pour éviter les erreurs de synchronisation dues à la limitation des ressources, il est recommandé de disposer d'une Base de données SQL Azure Premium P1 ou plus lorsque vous utilisez le Service d'exportation de données.Pour plus d'informations :Limites de ressources de base de données SQL Azure et Tarification de la base de données SQL

  • Configurez la Base de données SQL Azure de manière à utiliser l'isolation RCSI (Read Committed Snapshot Isolation) pour les charges de travail exécutées simultanément sur la base de données de destination qui exécutent des requêtes de lecture longues, telles que des tâches de création de rapport et ETL. Cela réduit l'occurrence des erreurs d'expiration pouvant se produire avec le Service d'exportation de données en raison de conflits de lecture ou d'écriture.

À propos de la latence de la synchronisation des données

Service d'exportation de données est organisé pour synchroniser les modifications de données dans la base de données de destination à l'aide d'un mécanisme de transmission (push) en coutant les modifications quand elle se produisent dans Dynamics 365. Le service tâche de transmettre les données en quelques minutes, mais il existe un certain nombre de facteurs qui peuvent avoir une influence sur la latence d'un bout à l'autre de la synchronisation.

Les facteurs qui influencent la durée de la synchronisation comprennent :

  • La charge de travail actuelle sur Dynamics 365.

  • Le taux de modification des données dans Dynamics 365.

  • Le nombre d'entités ajoutées à chaque profil d'exportation et leurs attributs.

  • Performances de SQL Server. Par exemple :

    • Le délai d'établissement de la connexion SQL.

    • Le délai d'exécution de l'instruction SQL.

Selon notre surveillance du service, nous avons observé que la plupart des synchronisations delta courantes s'achèvent en 15 minutes lorsque le service fonctionne dans les conditions suivantes :

  • La synchronisation qui se produit est une synchronisation delta et non la synchronisation initiale. La synchronisation delta est uniquement pour les opérations de modifications des données, qui inclue la création d'enregistrements, la mise à jour et la suppression des transactions. Notez que la synchronisation delta commence une fois la synchronisation initiale terminée.

  • Le taux de modification de données maximal dans Dynamics 365 pour toutes les entités du profil d'exportation est inférieur à 3 000 enregistrements par heure. Toute hausse soudaine du taux de modification des données suite à une modification en bloc des enregistrements dépassant le taux maximal de modification entraînera de la latence supplémentaire.

  • Chaque entité ajoutée à un profil d'exportation implique moins de 150 attributs.

  • La connexion à la base de données ou l'exécution d'une instruction SQL s'achève en moins de 10 secondes. Si cette limite est dépassée, cela entraîne de la latence supplémentaire.

  • Aucune erreur de connexion à la base de données de destination ou d'exécution SQL ne se produit pendant la synchronisation.

Lorsque les conditions ci-dessus sont remplies, 15 minutes est une latence de synchronisation standard.Microsoft ne fournit aucun contrat de niveau de service (SLA) pour le Service d'exportation de données et ne prend aucune garantie ou ni aucun engagement concernant les délais de latence de synchronisation.

Procédure de configuration de Azure Key Vault

Exécutez le script Windows PowerShell décrit ici en tant qu'administrateur de compte Azure pour accorder l'autorisation à la fonctionnalité Service d'exportation de données d'accéder à votre Azure Key Vault. Ce script affiche l'URL de Key Vault requise pour créer le Exporter le profil qui permet d'accéder à la chaîne de connexion.

Avant d'exécuter le script, remplacez les espaces réservés pour les variables suivantes.

  • $subscriptionId. ID d'abonnement Azure L'ID d'abonnement est affichée lorsque vous exécutez la commande Login-AzureRmAccount.

  • $keyvaultName. Sélectionnez un nom pour un Coffre de clés existant ou un nouveau. Le nom est utilisé comme référence de Coffre de clés . Dans cet exemple, ContosoKeyVault est utilisé. Vous utiliserez ce nom pour d'autres applets de commande Coffre de clés .

  • $secretName. Indiquez le nom utilisé pour la clé protégée par logiciel de Coffre de clés . S'il n'existe pas de clé protégée, elle sera créée avec le nom secret spécifié. Dans cet exemple, ContosoDataExportSecret est utilisé.

  • $resourceGroupName. Spécifiez le nom du groupe de ressources Azure que vous souhaitez utiliser. S'il n'existe pas déjà de groupe de ressources, un nouveau groupe de ressources portant le nom de votre choix sera créé. Dans cet exemple, ContosoResourceGroup1 est utilisé.

  • $location. Indiquez l'emplacement dans lequel le groupe de ressources est, ou doit être, localisé, tel que Ouest des États-Unis.

  • $connectionString. Chaîne de connexion de la Base de données SQL Microsoft Azure. Vous pouvez utiliser la chaîne de connexion ADO.NET telle qu'elle est affichée dans votre tableau de bord Azure.

  • $organizationIdList = Liste séparée par des virgules d'organisations Microsoft Dynamics 365 autorisées, répertoriées par ID d'organisation (organizationId), permettant d'activer le Service d'exportation de données. Pour trouver l'ID d'une organisation, dans Microsoft Dynamics 365, accédez à Paramètres > Personnalisations > Ressources du développeur. L'ID d'organisation est située sous Informations de référence d'instance.

  • $tenantId. Spécifie l'ID du client Active Directory Azure auquel les instances Microsoft Dynamics 365 sont associées. Pour plus d'informations, voir Rechercher l'ID de client Azure Active Directory pour vos instances Dynamics 365

# -------------------------------------------------------------------------------- #
    #  Provide the value for the following parameters before executing the script
$subscriptionId = 'ContosoSubscriptionId'   
$keyvaultName = 'ContosoKeyVault'
    $secretName = 'ContosoDataExportSecret'
    $resourceGroupName = 'ContosoResourceGroup1'
    $location = 'West US'
    $connectionString = 'AzureSQLconnectionString'
$organizationIdList = 'ContosoSalesOrg1_id, ContosoSalesOrg2_id'
$tenantId = 'tenantId'
    # -------------------------------------------------------------------------------- #

# Login to Azure account, select subscription and tenant Id
Login-AzureRmAccount
Set-AzureRmContext -TenantId $tenantId -SubscriptionId $subscriptionId

# Create new resource group if not exists.
$rgAvail = Get-AzureRmResourceGroup -Name $resourceGroupName -Location $location -ErrorAction SilentlyContinue
if(!$rgAvail){
    New-AzureRmResourceGroup -Name $resourceGroupName -Location $location
}

# Create new key vault if not exists.
$kvAvail = Get-AzureRmKeyVault -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -ErrorAction SilentlyContinue
if(!$kvAvail){
    New-AzureRmKeyVault -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -Location $location
    # Wait few seconds for DNS entry to propagate
    Start-Sleep -Seconds 15
}

# Create tags to store allowed set of Organizations.
$secretTags = @{}
foreach ($orgId in $organizationIdList.Split(',')) {
    $secretTags.Add($orgId.Trim(), $tenantId)
}

# Add or update a secret to key vault.
$secretVaule = ConvertTo-SecureString $connectionString -AsPlainText -Force
$secret = Set-AzureKeyVaultSecret -VaultName $keyvaultName -Name $secretName -SecretValue $secretVaule -Tags $secretTags

# Authorize application to access key vault.
$servicePrincipal = 'b861dbcc-a7ef-4219-a005-0e4de4ea7dcf'
Set-AzureRmKeyVaultAccessPolicy -VaultName $keyvaultName -ServicePrincipalName $servicePrincipal -PermissionsToSecrets get

# Display secret url.
Write-Host "Connection key vault URL is "$secret.id.TrimEnd($secret.Version)"" 

Comment supprimer toutes les tables et procédures stockées du Profil d'exportation des données

Important

  • Avant d'exécuter cette instruction SQL, vérifiez que vous avez défini correctement les valeurs @prefix et @schema dans l'instruction.

  • Le Exporter le profil doit être recréé après l'exécution de cette instruction SQL.

-----------------------------------------------------------------
-- Provide the value for the following parameters
DECLARE @prefix nvarchar(32) =''
DECLARE @schema nvarchar(32) ='dbo'
-----------------------------------------------------------------

DECLARE @sql nvarchar(max) = '';

SELECT @sql += 'DROP TABLE ' + QUOTENAME([TABLE_SCHEMA]) + '.' + QUOTENAME([TABLE_NAME]) + ';'
FROM [INFORMATION_SCHEMA].[TABLES]
WHERE [TABLE_TYPE] = 'BASE TABLE' AND [TABLE_NAME] like @prefix + '_%' AND [TABLE_SCHEMA]= @schema;

PRINT @sql
EXEC SP_EXECUTESQL @sql;

PRINT 'Finished dropping all tables. Starting to drop all stored procedures now.'

SELECT @sql='';
SELECT @sql += 'DROP PROCEDURE ' + QUOTENAME([ROUTINE_SCHEMA]) + '.' + QUOTENAME([ROUTINE_NAME]) + ';'
FROM [INFORMATION_SCHEMA].[ROUTINES]
WHERE [ROUTINE_TYPE] = 'PROCEDURE' AND [ROUTINE_NAME] like @prefix + '_%' AND [ROUTINE_SCHEMA]= @schema;
PRINT @sql
EXEC SP_EXECUTESQL @sql;

PRINT 'Finished dropping all stored procedures. Starting to drop all types now.'

SELECT @sql=''; 
SELECT @sql += 'DROP TYPE ' + QUOTENAME(SCHEMA_NAME([SCHEMA_ID])) + '.' +  QUOTENAME([NAME]) + ';'
FROM SYS.TYPES
WHERE is_user_defined = 1 AND [NAME] LIKE @prefix + '_%' AND [SCHEMA_ID]=SCHEMA_ID(@schema);

PRINT @sql
EXEC SP_EXECUTESQL @sql;

Comment supprimer des tables et des procédures stockées du Profil d'exportation des données pour une entité spécifique

Important

Avant d'exécuter cette instruction SQL, vérifiez que vous avez défini correctement les valeurs @prefix, @schema et @entityName dans l'instruction. Dans cet exemple, la table, les types et les procédures stockées de l'entité prospects sont supprimés.

-----------------------------------------------------------------
-- Provide the value for the following parameters
DECLARE @prefix nvarchar(32) ='crm'
DECLARE @schema nvarchar(32) ='dbo'
DECLARE @entityName nvarchar(32) ='lead'
-----------------------------------------------------------------
DECLARE @sql nvarchar(max) = '';

IF @prefix != '' 
BEGIN
       SET @prefix = @prefix + '_'
END

SELECT @sql += 'DROP TABLE ' + QUOTENAME([TABLE_SCHEMA]) + '.' + QUOTENAME([TABLE_NAME]) + ';'
FROM [INFORMATION_SCHEMA].[TABLES]
WHERE [TABLE_TYPE] = 'BASE TABLE' AND [TABLE_NAME] like @prefix + @entityName  AND [TABLE_SCHEMA]= @schema;
PRINT @sql
EXEC SP_EXECUTESQL @sql;
PRINT 'Finished dropping the entity. Starting to drop the types associated with the entity'

SELECT @sql='';
SELECT @sql += 'DROP TYPE ' + QUOTENAME(SCHEMA_NAME([SCHEMA_ID])) + '.' + QUOTENAME([NAME]) + ';'
FROM SYS.TYPES
WHERE is_user_defined = 1 AND [NAME] LIKE @prefix + @entityName +'Type' 
OR [NAME] LIKE @prefix + @entityName +'IdType'
AND [SCHEMA_ID]=SCHEMA_ID(@schema);
PRINT @sql
EXEC SP_EXECUTESQL @sql;

Rechercher l'ID de client Azure Active Directory pour vos instances Dynamics 365

  1. Connectez-vous au portail Azure.

  2. Accédez à Azure Active Directory > Inscriptions d'application > Points de terminaison.

  3. L'ID de client est affiché dans les URL de point de terminaison répertoriées avec l'abonnement Azure.

Important

Un abonnement Azure peut posséder plusieurs ID de client Azure Active Directory. Veillez à sélectionner l'ID correcte du client Azure Active Directory associée à l'instance de Microsoft Dynamics 365 que vous utiliserez pour l'exportation des données.

Adresses IP statiques des bases de données SQL Azure utilisées par le service d'exportation de données

Dans la Base de données SQL Azure, cliquez sur Définir le pare-feu du serveur, définissez Autoriser l'accès aux services Azure sur DÉSACTIVÉ, cliquez sur Ajouter une adresse IP cliente, puis ajoutez les adresses IP appropriées à la région de votre Base de données SQL Azure.Pour plus d'informations :Microsoft Azure : Configurer une règle de pare-feu au niveau du serveur de base de données SQL Azure à l'aide du portail Azure

Région

Adresse IP

Ouest des États-Unis

40.112.139.218

Est des États-Unis

23.96.92.86

Europe de l'Ouest

40.68.252.224

Asie de l'Est

52.175.24.148

Asie du Sud-Est

52.163.231.218

Centre de l'Inde

52.172.191.195

Sud de l'Inde

52.172.51.15

Europe du Nord

52.169.117.212

Ouest du Japon

138.91.22.196

Est du Japon

13.73.7.177

Sud du Brésil

191.235.81.249

Sud-Est de l'Australie

40.115.78.163

Est de l'Australie

13.73.202.160

Centre du Canada

52.228.26.31

Est du Canada

40.86.251.81

Sud du Royaume-Uni

51.140.71.166

Ouest du Royaume-Uni

51.141.44.218

Problèmes connus et restrictions

Les enregistrements supprimés peuvent être réinsérés dans la table d'entités après un échec de synchronisation

Lorsque vous procédez à une récupération suite à des échecs de synchronisation, les enregistrements précédemment supprimés peuvent être réinsérés dans la table d'entités d'origine. Pour contourner ce problème lorsque des échecs de synchronisation se produisent, procédez comme suit.

  1. Créez des profils d'exportation dont l'option Écrire le journal de suppression est activée. Recréez les profils d'exportation existants dont l'option Écrire le journal de suppression n'est pas activée.

  2. Créez et exécutez une requête SQL pour la base de données de destination SQL Azure qui recherche des enregistrements dans la table DeleteLog. Si un ou plusieurs enregistrements sont trouvés, cela indique la présence d'enregistrements supprimés.

  3. Si un ou plusieurs enregistrements existent dans la table DeleteLog, créez et exécutez une requête SQL qui détecte les instances où l'ID d'un enregistrement trouvé dans la table DeleteLog correspond à l'ID d'un enregistrement dans une table EntityName et le versionNumber dans la table deleteLog est supérieur au versionNumber de l'enregistrement dans la table EntityName. En cas de correspondance d'ID d'enregistrement, supprimez l'enregistrement de la table EntityName. Par exemple, si un ID d'enregistrement dans la colonne AccountId de la table DeleteLog correspond à un ID d'enregistrement dans la colonne AccountId de la table d'entités AccountBase et le versionNumber de la table DeleteLog est supérieur au versionNumber de la table Account, supprimez l'enregistrement de la table d'entités AccountBase.

    Important

    Selon les besoins de votre organisation et la configuration requise, nous vous recommandons d'exécuter les requêtes SQL pour la suppression fréquente d'enregistrements, mais en dehors des heures de travail.

Exemple de requête pour la suppression d'un enregistrement d'entité.

DELETE FROM [dbo].[prefix_account] A
WHERE id IN (SELECT CONVERT(uniqueidentifier, recordid) FROM [dbo].[prefix_DeleteLog] DL WHERE DL.entityname ='account'
AND DL.VersionNumber > A.VersionNumber)

Entités qui ne prennent pas en charge l'exportation de données

Bien qu'elles prennent en charge le suivi des modifications, les entités répertoriées ici ne sont pas prises en charge pour l'exportation de données à l'aide du Service d'exportation de données.

Entité

Nom de la table

Solution de contournement

Activité

ActivityPointerBase

Sélectionnez les entités d'activité spécifiques pour l'exportation, par exemple Appel téléphonique, Courrier électronique et Tâche.

Déclaration de confidentialité

En utilisant le service d'exportation des données, quand vous activez un profil d'exportation des données dans Microsoft Dynamics 365, les données des entités ajoutées au profil sont envoyées à Azure. La synchronisation initiale comprend toutes les données associées à des entités ajoutées au profil d'exportation, mais après la synchronisation, elle contient uniquement les nouvelles modifications, qui sont fréquemment envoyées au service d'exportation des données. Les données envoyées au service d'exportation des données sont stockées temporairement dans le stockage Azure Service Bus et Azure, elles sont traitées dans Azure Service Fabric, et enfin elles sont synchronisées (insérées, mises à jour ou supprimées) dans la base de données de destination spécifiée dans votre abonnement Azure. Une fois que les données ont été synchronisées, elles sont supprimées du stockage Azure Service Bus et Azure. S'il y a une défaillance lors de la synchronisation des données, les données minimales correspondant au type d'entité, l'ID d'enregistrement, et l'horodatage de synchronisation sont stockés dans le stockage Azure pour permettre de télécharger une liste d'enregistrements qui n'ont pas été mis à jour.

Un administrateur peut désactiver le profil d'exportation des données à tout moment pour arrêter la synchronisation des données. En outre, un administrateur peut supprimer le profil d'exportation pour supprimer tous les journaux d'enregistrement qui ont échoué et peut désinstaller le service d'exportation des données pour arrêter de l'utiliser.

La synchronisation des données s'exécute en continu entre Dynamics 365 et le service d'exportation des données de manière sécurisée. Les données sont chiffrées quand elles sont échangées en continu entre Dynamics 365 et le service d'exportation des données.

Les composants et services Azure faisant partie du service d'exportation des données sont décrits en détail dans les sections ci-dessous.

Remarque : Pour plus d'informations sur les offres de service supplémentaires Azure, consultez le Centre de gestion de la confidentialité Microsoft Azure.

Azure Service Fabric

Cela permet à l'API et aux machines virtuelles de calcul Azure de traiter les notifications de synchronisation d'enregistrement reçues de Dynamics 365, puis de les traiter pour insérer, mettre à jour, ou supprimer des données d'enregistrement dans la base de données de destination. Les micro-services qui doivent être déployés sur des machines virtuelles gérées par le runtime Azure Service Fabric gèrent tous les services de calcul associés à la synchronisation des données.

Azure Service Bus

Cela fournit le bus de message dans lequel Dynamics 365 insère les messages de notification de synchronisation qui sont traités par les nœuds de calcul dans Azure Service Fabric. Chaque message stocke des informations telles que l'ID de l'organisation et l'enregistrement pour lesquels synchroniser les données. Les données Azure Service Bus ne sont pas chiffrées au repos, mais sont uniquement accessibles par le service d'exportation de données.

Stockage Blob Azure

Les données sont stockées temporairement dans Stockage d'objets blob Azure au cas où les données de la notification de synchronisation d'enregistrement soient trop importantes pour être stockées dans un message ou si des échecs passagers se produisent lors du traitement de la notification de synchronisation. Ces blobs sont chiffrés en exploitant la toute dernière fonctionnalité du SDK de stockage Azure qui fournit une prise en charge du chiffrement symétrique et asymétrique et l'intégration au Azure Key Vault.

Azure SQL

La Base de données SQL Azure stocke la configuration du profil d'exportation des données et les mesures de synchronisation des données.

Voir aussi

AppSource : Microsoft Dynamics 365 - Service d'exportation de données
Nouveautés de Dynamics 365 - Service d'exportation de données
Gérer vos données
MSDN : Service exportation de données
Blog de l'équipe : Présentation de Dynamics 365 – Service d'exportation de données

© 2017 Microsoft. Tous droits réservés. Copyright