Copier et transformer des données de Microsoft 365 (Office 365) vers Azure Data Factory ou Synapse Analytics

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !

Les pipelines Azure Data Factory et Synapse Analytics s’intègrent à Microsoft Graph data connect et vous permettent de transférer de façon progressive vers Azure les données de votre organisation présentes dans votre locataire Microsoft 365 (Office 365), de créer des applications d’analytique et d’extraire des insights basés sur ces riches ressources de données. L’intégration avec Privileged Access Management fournit un contrôle d’accès sécurisé pour les données organisées dans Microsoft 365 (Office 365). Consultez ce lien pour obtenir une vue d’ensemble de la connexion de données Microsoft Graph.

Cet article explique comment utiliser l’activité de copie pour copier des données, et un flux de données pour transformer des données de Microsoft 365 (Office 365). Pour une introduction à la copie de données, lisez la vue d’ensemble de l’activité de copie. Pour une introduction à la transformation de données, consultez la vue d’ensemble du mappage de flux de données.

Notes

Le connecteur de flux de données Microsoft 365 est actuellement en préversion. Pour participer, utilisez ce formulaire d’inscription : M365 + Analytics Preview.

Fonctionnalités prises en charge

Ce connecteur Microsoft 365 (Office 365) est pris en charge pour les fonctionnalités suivantes :

Fonctionnalités prises en charge IR
Activité de copie (source/-) 0
Flux de données de mappage (source/-) 0

① Runtime d’intégration Azure ② Runtime d’intégration auto-hébergé

Le connecteur ADF Microsoft 365 (Office 365) et les technologies Connexion aux données Microsoft Graph permettent l’ingestion à grande échelle de différents types de jeux de données à partir de boîtes aux lettres prenant en charge l’e-mail Exchange, notamment le carnet d’adresses, les événements de calendrier, les messages, les informations utilisateur, les paramètres de boîte aux lettres, etc. Reportez-vous ici pour voir la liste complète des jeux de données disponibles.

Actuellement, au sein d’une activité de copie et d’un flux de données, vous pouvez seulement ingérer des données depuis Microsoft 365 (Office 365) dans Stockage Blob Azure, Azure Data Lake Storage Gen1 et Azure Data Lake Storage Gen2 au format JSON (type setOfObjects). Lors de la copie vers un Stockage Blob Azure, la sortie est un objet blob contenant du texte JSON. Si vous voulez charger des données Microsoft 365 (Office 365) dans d’autres types de banques de données ou dans d’autres formats, vous pouvez faire suivre la première activité de copie ou le flux de données d’une autre activité pour charger les données dans un des magasins de données de destination ADF pris en charge (reportez-vous à la colonne « pris en charge en tant que récepteur » du tableau « Magasins de données et formats pris en charge »).

Important

  • L’abonnement Azure contenant la fabrique de données ou l’espace de travail Synapse et la banque de données réceptrice doit être sous le même locataire Microsoft Entra que le locataire Microsoft 365 (Office 365).
  • Vérifiez que la région Azure Integration Runtime utilisée pour l’activité de copie et la destination se trouvent dans la même région que celle où se trouve la boîte aux lettres des utilisateurs du locataire Microsoft 365 (Office 365). Pour comprendre comment l’emplacement d’Azure Integration Runtime est déterminé, suivez ce lien. Consultez ce tableau pour obtenir la liste des régions Office et des régions Azure correspondantes prises en charge.
  • L’authentification d’un principal de service est le seul mécanisme d’authentification pris en charge pour Stockage Blob Azure, Azure Data Lake Storage Gen1 et Azure Data Lake Storage Gen2 comme magasins de destination.

Notes

Veuillez utiliser le runtime d’intégration Azure dans les services liés source et récepteur. Le runtime d’intégration auto-hébergé et le runtime d’intégration de réseau virtuel géré ne sont pas pris en charge.

Prérequis

Pour copier et transformer des données depuis Microsoft 365 (Office 365) dans Azure, vous devez effectuer les étapes préalables suivantes :

  • L’administrateur de votre locataire Microsoft 365 (Office 365) doit effectuer des actions d’intégration comme décrit ici.
  • Créez et configurez une application web Microsoft Entra dans l’ID Microsoft Entra. Pour obtenir des instructions, consultez Créer une application Microsoft Entra.
  • Prenez note des valeurs suivantes, que vous utiliserez afin de définir le service lié pour Microsoft 365 (Office 365) :
  • Ajoutez l’identité de l’utilisateur effectuant la demande d’accès aux données en tant que propriétaire de l’application web Microsoft Entra (à partir de l’application web Microsoft Entra > Paramètres > Propriétaires > Ajouter un propriétaire).
    • L’identité de l’utilisateur doit être dans l’organisation Microsoft 365 (Office 365) à partir de laquelle vous obtenez des données et ne doit pas être un utilisateur Invité.

Approbation de nouvelles demandes d’accès aux données

Si c’est la première fois que vous demandez des données pour ce contexte (une combinaison de la table de données consultée, du compte de destination dans lequel les données sont chargées et de l’identité de l’utilisateur à l’origine de la demande d’accès aux données), vous voyez l’activité de copie avec l’état « En cours d’exécution », et l’état ne devient « RequestingConsent » que quand vous cliquez sur le lien « Détails » sous Actions. Un membre du groupe d’approbateurs pour l’accès aux données doit approuver la requête dans Privileged Access Management pour permettre l’extraction de données.

Cliquez ici pour obtenir des informations sur la façon dont l’approbateur peut approuver les demandes d’accès aux données et cliquez ici pour obtenir une explication sur l’intégration globale à Privileged Access Management, notamment comment configurer le groupe d’approbateurs d’accès aux données.

Prise en main

Conseil

Pour obtenir une procédure pas à pas de l’utilisation du connecteur Microsoft 365 (Office 365), consultez l’article Charger des données à partir de Microsoft 365 (Office 365).

Vous pouvez créer un pipeline avec l’activité de copie et un flux de données à l’aide d’un des outils ou kits de développement logiciel suivants. Sélectionnez un lien pour accéder à un didacticiel contenant des instructions détaillées pour créer un pipeline avec une activité de copie.

Créer un service lié à Microsoft 365 (Office 365) à l’aide de l’interface utilisateur

Utilisez les étapes suivantes pour créer un service lié à Microsoft 365 (Office 365) dans l’interface utilisateur du portail Azure.

  1. Accédez à l’onglet Gérer dans votre espace de travail Azure Data Factory ou Synapse, sélectionnez Services liés, puis cliquez sur Nouveau :

  2. Recherchez Microsoft 365 (Office 365) et sélectionnez le connecteur Microsoft 365 (Office 365).

    Screenshot of the Microsoft 365 (Office 365) connector.

  3. Configurez les informations du service, testez la connexion et créez le nouveau service lié.

    Screenshot of linked service configuration for Microsoft 365 (Office 365).

Détails de configuration du connecteur

Les sections suivantes fournissent des informations détaillées sur les propriétés utilisées pour définir les entités Data Factory spécifiques du connecteur Microsoft 365 (Office 365).

Propriétés du service lié

Les propriétés prises en charge pour le service lié Microsoft 365 (Office 365) sont les suivantes :

Propriété Description Obligatoire
type La propriété type doit être définie sur : Office365 Oui
office365TenantId ID de locataire Azure auquel le compte Microsoft 365 (Office 365) appartient. Oui
servicePrincipalTenantId Spécifiez les informations du locataire où se trouve votre application web Microsoft Entra. Oui
servicePrincipalId Spécifiez l’ID client de l’application. Oui
servicePrincipalKey Spécifiez la clé de l’application. Marquez ce champ en tant que SecureString afin de le stocker en toute sécurité. Oui
connectVia Runtime d’intégration à utiliser pour la connexion à la banque de données. À défaut de spécification, le runtime d’intégration Azure par défaut est utilisé. Non

Notes

La différence entre office365TenantId et servicePrincipalTenantId, et la valeur correspondante à fournir :

  • Si vous êtes développeur en entreprise et que vous développez une application avec des données Microsoft 365 (Office 365) pour l’utiliser au sein de votre propre organisation, vous devez fournir le même ID de locataire pour les deux propriétés, qui est l’ID de locataire Microsoft Entra de votre organisation.
  • Si vous êtes développeur chez un éditeur de logiciels indépendant et que vous développez une application pour vos clients, office365TenantId est l’ID de locataire Microsoft Entra (programme d’installation de l’application) de votre client et servicePrincipalTenantId est l’ID de locataire Microsoft Entra de votre entreprise.

Exemple :

{
    "name": "Office365LinkedService",
    "properties": {
        "type": "Office365",
        "typeProperties": {
            "office365TenantId": "<Microsoft 365 (Office 365) tenant id>",
            "servicePrincipalTenantId": "<AAD app service principal tenant id>",
            "servicePrincipalId": "<AAD app service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<AAD app service principal key>"
            }
        }
    }
}

Propriétés du jeu de données

Pour obtenir la liste complète des sections et propriétés disponibles pour la définition de jeux de données, consultez l’article sur les jeux de données. Cette section contient la liste des propriétés prises en charge par le jeu de données Microsoft 365 (Office 365).

Pour copier des données à partir de Microsoft 365 (Office 365), les propriétés suivantes sont prises en charge :

Propriété Description Obligatoire
type La propriété type du jeu de données doit être définie sur : Office365Table Oui
tableName Nom du jeu de données à extraire de Microsoft 365 (Office 365). Cliquez ici pour obtenir la liste des jeux de données Microsoft 365 (Office 365) disponibles pour l’extraction. Oui

Si vous avez défini dateFilterColumn, startTime, endTime et userScopeFilterUri dans le jeu de données, il reste pris en charge tel quel, mais nous vous suggérons d’utiliser le nouveau modèle dans la source d’activité à l’avenir.

Exemple

{
    "name": "DS_May2019_O365_Message",
    "properties": {
        "type": "Office365Table",
        "linkedServiceName": {
            "referenceName": "<Microsoft 365 (Office 365) linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [],
        "typeProperties": {
            "tableName": "BasicDataSet_v0.Event_v1"
        }
    }
}

Propriétés de l’activité de copie

Pour obtenir la liste complète des sections et des propriétés disponibles pour la définition des activités, consultez l’article Pipelines. Cette section contient la liste des propriétés prises en charge par une source Microsoft 365 (Office 365).

Microsoft 365 (Office 365) comme source

Si vous souhaitez copier des données à partir de Microsoft 365 (Office 365), les propriétés suivantes sont prises en charge dans la section source de l’activité de copie :

Propriété Description Obligatoire
type La propriété type de la source d’activité de copie doit être définie sur : Office365Source Oui
allowedGroups Prédicat de sélection de groupe. Cette propriété permet de sélectionner jusqu'à 10 groupes d’utilisateurs pour lesquels les données seront récupérées. Si aucun groupe n’est spécifié, les données sont retournées pour toute l’organisation. Non
userScopeFilterUri Lorsque la propriété allowedGroups n’est pas spécifiée, vous pouvez utiliser une expression de prédicat appliquée sur l’ensemble du locataire pour filtrer les lignes spécifiques à extraire de Microsoft 365 (Office 365). Le format de prédicat doit correspondre au format de requête des API Microsoft Graph, par exemple, https://graph.microsoft.com/v1.0/users?$filter=Department eq 'Finance'. Non
dateFilterColumn Nom de la colonne de filtre de date/heure. Cette propriété permet de limiter l’intervalle de temps pendant lequel les données Microsoft 365 (Office 365) sont extraites. Oui, si le jeu de données comporte une ou plusieurs colonnes de date/heure. Reportez-vous ici pour obtenir la liste des jeux de données qui nécessitent ce filtre de date/heure.
startTime Valeur de date/heure de début sur laquelle filtrer. Oui, si dateFilterColumn est spécifié
endTime Valeur de date/heure de fin sur laquelle filtrer. Oui, si dateFilterColumn est spécifié
outputColumns Tableau des colonnes à copier dans le récepteur. Non

Exemple :

"activities": [
    {
        "name": "CopyFromO365ToBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Microsoft 365 (Office 365) input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "Office365Source",
                "dateFilterColumn": "CreatedDateTime",
                "startTime": "2019-04-28T16:00:00.000Z",
                "endTime": "2019-05-05T16:00:00.000Z",
                "userScopeFilterUri": "https://graph.microsoft.com/v1.0/users?$filter=Department eq 'Finance'",
                "outputColumns": [
                    {
                        "name": "Id"
                    },
                    {
                        "name": "CreatedDateTime"
                    },
                    {
                        "name": "LastModifiedDateTime"
                    },
                    {
                        "name": "ChangeKey"
                    },
                    {
                        "name": "Categories"
                    },
                    {
                        "name": "OriginalStartTimeZone"
                    },
                    {
                        "name": "OriginalEndTimeZone"
                    },
                    {
                        "name": "ResponseStatus"
                    },
                    {
                        "name": "iCalUId"
                    },
                    {
                        "name": "ReminderMinutesBeforeStart"
                    },
                    {
                        "name": "IsReminderOn"
                    },
                    {
                        "name": "HasAttachments"
                    },
                    {
                        "name": "Subject"
                    },
                    {
                        "name": "Body"
                    },
                    {
                        "name": "Importance"
                    },
                    {
                        "name": "Sensitivity"
                    },
                    {
                        "name": "Start"
                    },
                    {
                        "name": "End"
                    },
                    {
                        "name": "Location"
                    },
                    {
                        "name": "IsAllDay"
                    },
                    {
                        "name": "IsCancelled"
                    },
                    {
                        "name": "IsOrganizer"
                    },
                    {
                        "name": "Recurrence"
                    },
                    {
                        "name": "ResponseRequested"
                    },
                    {
                        "name": "ShowAs"
                    },
                    {
                        "name": "Type"
                    },
                    {
                        "name": "Attendees"
                    },
                    {
                        "name": "Organizer"
                    },
                    {
                        "name": "WebLink"
                    },
                    {
                        "name": "Attachments"
                    },
                    {
                        "name": "BodyPreview"
                    },
                    {
                        "name": "Locations"
                    },
                    {
                        "name": "OnlineMeetingUrl"
                    },
                    {
                        "name": "OriginalStart"
                    },
                    {
                        "name": "SeriesMasterId"
                    }
                ]
            },
            "sink": {
                "type": "BlobSink"
            }
        }
    }
]

Transformer des données avec le connecteur Microsoft 365

Des jeux de données Microsoft 365 peuvent être utilisés comme source avec des flux de données de mappage. Le flux de données transforme automatiquement les données en aplatissant le jeu de données. Cela permet aux utilisateurs de se concentrer sur l’utilisation du jeu de données aplati pour accélérer leurs scénarios d’analyse.

Propriétés du mappage de flux de données

Pour créer un flux de données de mappage en utilisant le connecteur Microsoft 365 comme source, procédez comme suit :

  1. Dans ADF Studio, accédez à la section Flux de données du hub Auteur, sélectionnez le bouton ... pour dérouler le menu Actions du flux de données, puis sélectionnez l’élément Nouveau flux de données. Activez le mode débogage avec le bouton Débogage du flux de données dans la barre supérieure du canevas de flux de données.

    Screenshot of the data flow debug button in mapping data flow.

  2. Dans l’éditeur de flux de données de mappage, sélectionnez Ajouter une source.

    Screenshot of add source in mapping data flow.

  3. Sous l’onglet Paramètres de la source, sélectionnez Inline dans la propriété Type de source, Microsoft 365 (Office 365) dans Type de jeu de données inclus, et le service lié Microsoft 365 que vous avez créé précédemment.

    Screenshot of the select dataset option in source settings of mapping data flow source.

  4. Sous l’onglet Options de la source, sélectionnez le Nom de table de la table Microsoft 365 que vous souhaitez transformer. Sélectionnez également l’option Aplatir automatiquement pour indiquer que vous souhaitez que le flux de données aplatisse automatiquement le jeu de données source.

    Screenshot of the source options of mapping data flow source.

  5. Pour les onglets Projection, Optimiser et Inspecter, suivez le flux de données de mappage.

  6. Sous l’onglet Aperçu des données, cliquez sur le bouton Actualiser afin d’extraire un échantillon de jeu de données pour validation.

Pour obtenir une liste des magasins de données pris en charge comme sources et récepteurs par l’activité de copie, consultez la section sur les magasins de données pris en charge.