Copier des données dans Azure depuis Office 365 avec Azure Data FactoryCopy data from Office 365 into Azure using Azure Data Factory

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics (préversion)

Azure Data Factory s’intègre avec Microsoft Graph data connect et vous permet de transférer de façon progressive vers Azure les données de votre organisation présentes dans votre locataire Office 365, de créer des applications d’analytique et d’extraire des insights basés sur ces riches ressources de données.Azure Data Factory integrates with Microsoft Graph data connect, allowing you to bring the rich organizational data in your Office 365 tenant into Azure in a scalable way and build analytics applications and extract insights based on these valuable data assets. L’intégration avec Privileged Access Management fournit un contrôle d’accès sécurisé pour les données organisées dans Office 365.Integration with Privileged Access Management provides secured access control for the valuable curated data in Office 365. Reportez-vous à ce lien pour une vue d’ensemble sur Microsoft Graph data connect et à ce lien pour les informations de licence.Please refer to this link for an overview on Microsoft Graph data connect and refer to this link for licensing information.

Cet article explique comment utiliser l’activité de copie dans Azure Data Factory pour copier des données d’Office 365.This article outlines how to use the Copy Activity in Azure Data Factory to copy data from Office 365. Il s’appuie sur l’article Vue d’ensemble de l’activité de copie.It builds on the copy activity overview article that presents a general overview of copy activity.

Fonctionnalités prises en chargeSupported capabilities

Le connecteur ADF Office 365 et Microsoft Graph data connect favorisent 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.ADF Office 365 connector and Microsoft Graph data connect enables at scale ingestion of different types of datasets from Exchange Email enabled mailboxes, including address book contacts, calendar events, email messages, user information, mailbox settings, and so on. Reportez-vous ici pour voir la liste complète des jeux de données disponibles.Refer here to see the complete list of datasets available.

À ce stade, au sein d’une seule activité de copie, vous pouvez seulement copier des données depuis Office 365 dans Stockage Blob Azure, Azure Data Lake Storage Gen1 et Azure Data Lake Storage Gen2 au format JSON (type setOfObjects).For now, within a single copy activity you can only copy data from Office 365 into Azure Blob Storage, Azure Data Lake Storage Gen1, and Azure Data Lake Storage Gen2 in JSON format (type setOfObjects). Si vous voulez charger des données 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 d’une autre activité de copie pour charger les données dans une des banques de données de destination ADF prises en charge (reportez-vous à la colonne « prise en charge en tant que récepteur »du tableau « Banques de données et formats pris en charge »).If you want to load Office 365 into other types of data stores or in other formats, you can chain the first copy activity with a subsequent copy activity to further load data into any of the supported ADF destination stores (refer to "supported as a sink" column in the "Supported data stores and formats" table).

Important

  • L’abonnement Azure contenant la fabrique de données et la banque de données réceptrice doit être sous le même locataire Azure Active Directory (Azure AD) que le locataire Office 365.The Azure subscription containing the data factory and the sink data store must be under the same Azure Active Directory (Azure AD) tenant as Office 365 tenant.
  • 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 Office 365.Ensure the Azure Integration Runtime region used for copy activity as well as the destination is in the same region where the Office 365 tenant users' mailbox is located. Pour comprendre comment l’emplacement d’Azure Integration Runtime est déterminé, suivez ce lien.Refer here to understand how the Azure IR location is determined. Consultez ce tableau pour obtenir la liste des régions Office et des régions Azure correspondantes prises en charge.Refer to table here for the list of supported Office regions and corresponding Azure regions.
  • 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.Service Principal authentication is the only authentication mechanism supported for Azure Blob Storage, Azure Data Lake Storage Gen1, and Azure Data Lake Storage Gen2 as destination stores.

PrérequisPrerequisites

Pour copier des données depuis Office 365 dans Azure, vous devez effectuer les étapes prérequises suivantes :To copy data from Office 365 into Azure, you need to complete the following prerequisite steps:

  • L’administrateur de votre locataire Office 365 doit effectuer des actions d’intégration comme décrit ici.Your Office 365 tenant admin must complete on-boarding actions as described here.
  • Créez et configurez une application web Azure AD dans Azure Active Directory.Create and configure an Azure AD web application in Azure Active Directory. Pour obtenir des instructions, consultez la page Créer une application Azure AD.For instructions, see Create an Azure AD application.
  • Prenez note des valeurs suivantes, que vous utiliserez afin de définir le service lié pour Office 365 :Make note of the following values, which you will use to define the linked service for 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 Azure AD (à partir de l’application web Azure AD > Paramètres > Propriétaires > Ajouter un propriétaire).Add the user identity who will be making the data access request as the owner of the Azure AD web application (from the Azure AD web application > Settings > Owners > Add owner).
    • L’identité de l’utilisateur doit être dans l’organisation Office 365 à partir de laquelle vous obtenez des données et ne doit pas être un utilisateur Invité.The user identity must be in the Office 365 organization you are getting data from and must not be a Guest user.

Approbation de nouvelles demandes d’accès aux donnéesApproving new data access requests

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.If this is the first time you are requesting data for this context (a combination of which data table is being access, which destination account is the data being loaded into, and which user identity is making the data access request), you will see the copy activity status as "In Progress", and only when you click into "Details" link under Actions will you see the status as “RequestingConsent”. 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.A member of the data access approver group needs to approve the request in the Privileged Access Management before the data extraction can proceed.

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.Refer here on how the approver can approve the data access request, and refer here for an explanation on the overall integration with Privileged Access Management, including how to set up the data access approver group.

Validation de la stratégiePolicy validation

Si ADF est créé dans le cadre d’une application managée et que les affectations de stratégies Azure sont effectuées sur des ressources au sein du groupe de ressources de gestion, puis pour chaque exécution de l’activité de copie, ADF vérifie que les affectations de stratégie sont appliquées.If ADF is created as part of a managed app and Azure policies assignments are made on resources within the management resource group, then for every copy activity run, ADF will check to make sure the policy assignments are enforced. Cliquez ici pour obtenir la liste des stratégies prises en charge.Refer here for a list of supported policies.

Prise en mainGetting started

Conseil

Pour obtenir une procédure pas à pas de l’utilisation du connecteur Office 365, consultez l’article Charger des données depuis Office 365.For a walkthrough of using Office 365 connector, see Load data from Office 365 article.

Vous pouvez créer un pipeline avec l’activité de copie à l’aide d’un des outils ou kits de développement logiciel suivants.You can create a pipeline with the copy activity by using one of the following tools or SDKs. 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.Select a link to go to a tutorial with step-by-step instructions to create a pipeline with a copy activity.

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 Office 365.The following sections provide details about properties that are used to define Data Factory entities specific to Office 365 connector.

Propriétés du service liéLinked service properties

Les propriétés prises en charge pour le service lié Office 365 sont les suivantes :The following properties are supported for Office 365 linked service:

PropriétéProperty DescriptionDescription ObligatoireRequired
typetype La propriété type doit être définie sur : Office365The type property must be set to: Office365 OuiYes
office365TenantIdoffice365TenantId ID de locataire Azure auquel le compte Office 365 appartient.Azure tenant ID to which the Office 365 account belongs. OuiYes
servicePrincipalTenantIdservicePrincipalTenantId Spécifiez les informations du locataire où se trouve votre application web Azure AD.Specify the tenant information under which your Azure AD web application resides. OuiYes
servicePrincipalIdservicePrincipalId Spécifiez l’ID client de l’application.Specify the application's client ID. OuiYes
servicePrincipalKeyservicePrincipalKey Spécifiez la clé de l’application.Specify the application's key. Marquez ce champ comme SecureString pour le stocker de façon sécurisée dans Data Factory.Mark this field as a SecureString to store it securely in Data Factory. OuiYes
connectViaconnectVia Runtime d’intégration à utiliser pour la connexion à la banque de données.The Integration Runtime to be used to connect to the data store. À défaut de spécification, le runtime d’intégration Azure par défaut est utilisé.If not specified, it uses the default Azure Integration Runtime. NonNo

Notes

La différence entre office365TenantId et servicePrincipalTenantId, et la valeur correspondante à fournir :The difference between office365TenantId and servicePrincipalTenantId and the corresponding value to provide:

  • Si vous êtes développeur en entreprise et que vous développez une application avec des données 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 AAD de votre organisation.If you are an enterprise developer developing an application against Office 365 data for your own organization's usage, then you should supply the same tenant ID for both properties, which is your organization's AAD tenant ID.
  • 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 AAD (programme d’installation de l’application) de votre client et servicePrincipalTenantId est l’ID de locataire AAD de votre entreprise.If you are an ISV developer developing an application for your customers, then office365TenantId will be your customer’s (application installer) AAD tenant ID and servicePrincipalTenantId will be your company’s AAD tenant ID.

Exemple :Example:

{
    "name": "Office365LinkedService",
    "properties": {
        "type": "Office365",
        "typeProperties": {
            "office365TenantId": "<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éesDataset properties

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.For a full list of sections and properties available for defining datasets, see the datasets article. Cette section contient la liste des propriétés prises en charge par le jeu de données Office 365.This section provides a list of properties supported by Office 365 dataset.

Pour copier des données depuis Office 365, les propriétés suivantes sont prises en charge :To copy data from Office 365, the following properties are supported:

PropriétéProperty DescriptionDescription ObligatoireRequired
typetype La propriété type du jeu de données doit être définie sur : Office365TableThe type property of the dataset must be set to: Office365Table OuiYes
tableNametableName Nom du jeu de données à extraire d’Office 365.Name of the dataset to extract from Office 365. Cliquez ici pour obtenir la liste des jeux de données Office 365 disponibles pour l’extraction.Refer here for the list of Office 365 datasets available for extraction. OuiYes

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.If you were setting dateFilterColumn, startTime, endTime, and userScopeFilterUri in dataset, it is still supported as-is, while you are suggested to use the new model in activity source going forward.

ExempleExample

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

Propriétés de l’activité de copieCopy activity properties

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.For a full list of sections and properties available for defining activities, see the Pipelines article. Cette section contient la liste des propriétés prises en charge par une source Office 365.This section provides a list of properties supported by Office 365 source.

Office 365 comme sourceOffice 365 as source

Pour copier des données à partir d’Office 365, les propriétés prises en charge dans la section source de l'activité de copie sont les suivantes :To copy data from Office 365, the following properties are supported in the copy activity source section:

PropriétéProperty DescriptionDescription ObligatoireRequired
typetype La propriété type de la source d’activité de copie doit être définie sur : Office365SourceThe type property of the copy activity source must be set to: Office365Source OuiYes
allowedGroupsallowedGroups Prédicat de sélection de groupe.Group selection predicate. Cette propriété permet de sélectionner jusqu'à 10 groupes d’utilisateurs pour lesquels les données seront récupérées.Use this property to select up to 10 user groups for whom the data will be retrieved. Si aucun groupe n’est spécifié, les données sont retournées pour toute l’organisation.If no groups are specified, then data will be returned for the entire organization. NonNo
userScopeFilterUriuserScopeFilterUri 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 d’Office 365.When allowedGroups property is not specified, you can use a predicate expression that is applied on the entire tenant to filter the specific rows to extract from 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'.The predicate format should match the query format of Microsoft Graph APIs, e.g. https://graph.microsoft.com/v1.0/users?$filter=Department eq 'Finance'. NonNo
dateFilterColumndateFilterColumn Nom de la colonne de filtre de date/heure.Name of the DateTime filter column. Cette propriété permet de limiter l’intervalle de temps pendant lequel les données Office 365 sont extraites.Use this property to limit the time range for which Office 365 data is extracted. Oui, si le jeu de données comporte une ou plusieurs colonnes de date/heure.Yes if dataset has one or more DateTime columns. Reportez-vous ici pour obtenir la liste des jeux de données qui nécessitent ce filtre de date/heure.Refer here for list of datasets that require this DateTime filter.
startTimestartTime Valeur de date/heure de début sur laquelle filtrer.Start DateTime value to filter on. Oui, si dateFilterColumn est spécifiéYes if dateFilterColumn is specified
endTimeendTime Valeur de date/heure de fin sur laquelle filtrer.End DateTime value to filter on. Oui, si dateFilterColumn est spécifiéYes if dateFilterColumn is specified
outputColumnsoutputColumns Tableau des colonnes à copier dans le récepteur.Array of the columns to copy to sink. NonNo

Exemple :Example:

"activities": [
    {
        "name": "CopyFromO365ToBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<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"
            }
        }
    }
]

Étapes suivantesNext steps

Pour obtenir la liste des banques de données prises en charge en tant que sources et récepteurs par l’activité de copie dans Azure Data Factory, consultez le tableau banques de données prises en charge.For a list of data stores supported as sources and sinks by the copy activity in Azure Data Factory, see supported data stores.