Copia y transformación de datos de Microsoft 365 (Office 365) en Azure con Azure Data Factory o Synapse Analytics

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Sugerencia

Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.

Las canalizaciones de Azure Data Factory y Synapse Analytics se integran con Microsoft Graph data connect, lo que permite incluir los datos importantes de la organización en el inquilino de Microsoft 365 (Office 365) en Azure de una manera escalable, además de crear aplicaciones de análisis y de extraer información en función de estos importantes recursos de datos. La integración con Privileged Access Management proporciona control de acceso seguro para los datos protegidos valiosos en Microsoft 365 (Office 365). Consulte este vínculo para obtener información general sobre Microsoft Graph data connect.

En este artículo se describe cómo usar la actividad de copia para copiar datos y el flujo de datos para transformar datos de Microsoft 365 (Office 365). Para obtener una introducción a los datos de copia, lea la introducción a la actividad de copia. Para obtener una introducción a la transformación de datos, consulte la introducción al flujo de datos de asignación.

Nota:

El conector de flujo de datos de Microsoft 365 se encuentra actualmente en versión preliminar. Para participar, use este formulario de registro: M365 y Versión preliminar de Analytics.

Funcionalidades admitidas

Este conector de Microsoft 365 (Office 365) es compatible con las funcionalidades siguientes:

Funcionalidades admitidas IR
Actividad de copia (origen/-) 6
Flujo de datos de asignación (origen/-) 6

① Azure Integration Runtime ② Entorno de ejecución de integración autohospedado

El conector ADF de Microsoft 365 (Office 365) y Microsoft Graph Data Connect permiten la ingesta a escala de diferentes tipos de conjuntos de datos desde buzones habilitados para correo electrónico de Exchange, incluidos los contactos de la libreta de direcciones, los eventos de calendario, los mensajes de correo electrónico, la información de usuario, la configuración de los buzones, etc. Consulte aquí una lista completa de los conjuntos de datos disponibles.

Por ahora, en una única actividad de copia y flujo de datos, solo puede ingerir datos de Microsoft 365 (Office 365) en Azure Blob Storage, Azure Data Lake Storage Gen1 y Azure Data Lake Storage Gen2 en formato JSON (tipo setOfObjects). Al copiar en Azure Blob Storage, la salida es un blob que contiene texto JSON. Si desea cargar Microsoft 365 (Office 365) en otros tipos de almacenes de datos o en otros formatos, puede encadenar la primera actividad de copia con una actividad de copia posterior para cargar más datos en cualquiera de los almacenes de destino de ADF admitidos; consulte la columna "Se admite como receptor" de la tabla "Almacenes de datos y formatos que se admiten".

Importante

  • La suscripción de Azure que contiene la factoría de datos o el área de trabajo de Synapse y el almacén de datos del receptor debe estar en el mismo inquilino de Azure Active Directory (Azure AD) que Microsoft 365 (Office 365).
  • Asegúrese de que la región de Azure Integration Runtime utilizada para la actividad de copia y el destino están en la misma región donde se encuentra el buzón de los usuarios del inquilino de Microsoft 365 (Office 365). Haga clic aquí para obtener información sobre cómo se determina la ubicación de Azure IR. Consulte la tabla aquí para obtener la lista de las regiones admitidas de Office y las regiones de Azure correspondientes.
  • La autenticación de la entidad de servicio es el único mecanismo de autenticación admitido para Azure Blob Storage, Azure Data Lake Storage Gen1 y Azure Data Lake Storage Gen2 como almacenes de destino.

Nota:

Use Azure Integration Runtime en los servicios vinculados de origen y receptor. No se admiten el entorno de ejecución de integración autohospedado ni el entorno de ejecución de integración de red virtual administrada.

Prerrequisitos

Para copiar y transformar datos de Microsoft 365 (Office 365) en Azure, debe completar los siguientes pasos de requisitos previos:

  • El administrador de inquilinos de Microsoft 365 (Office 365) debe completar las acciones de incorporación como se describe aquí.
  • Cree y configure una aplicación web de Microsoft Entra en Microsoft Entra ID. Para obtener instrucciones, consulte Creación de una aplicación de Microsoft Entra.
  • Anote los siguientes valores; los usará para definir el servicio vinculado para Microsoft 365 (Office 365):
  • Agregue la identidad del usuario que va a realizar la solicitud de acceso a los datos como propietario de la aplicación web de Microsoft Entra (desde >Configuración > Propietarios > Agregar propietario de la aplicación web de Microsoft Entra).
    • La identidad del usuario debe pertenecer a la organización de Microsoft 365 (Office 365) de la que obtendrá los datos. Además, no debe un usuario invitado.

Aprobar nuevas solicitudes de acceso a los datos

Si es la primera vez que solicita datos para este contexto (una combinación de los datos de tabla a los que se accede, la cuenta de destino en la que se cargan los datos y la identidad de usuario que realiza la solicitud de acceso a los datos), verá el estado de la actividad de copia como "En curso", y solo al hacer clic en el vínculo "Detalles" en Acciones, verá el estado como "RequestingConsent". Un miembro del grupo de aprobadores de acceso a datos debe aprobar la solicitud en Privileged Access Management antes de pasar a la extracción de datos.

Consulte aquí cómo el aprobador puede aprobar la solicitud de acceso a los datos y haga clic aquí para obtener una explicación sobre la integración total con Privileged Access Management, incluida la forma de configurar el grupo de aprobadores de acceso a los datos.

Introducción

Sugerencia

Para ver un tutorial sobre el uso del conector de Microsoft 365 (Office 365), consulte el artículo Carga de datos de Microsoft 365 (Office 365).

Puede crear una canalización con la actividad de copia y el flujo de datos mediante una de las siguientes herramientas o SDK. Seleccione un vínculo para acceder a un tutorial con instrucciones detalladas sobre cómo crear una canalización con una actividad de copia.

Creación de un servicio vinculado a Microsoft 365 (Office 365) mediante la interfaz de usuario

Siga estos pasos para crear un servicio vinculado a Microsoft 365 (Office 365) en la interfaz de usuario de Azure Portal.

  1. Vaya a la pestaña Administrar del área de trabajo de Azure Data Factory o Synapse y seleccione Servicios vinculados; luego haga clic en Nuevo:

  2. Busque Microsoft 365 (Office 365) y seleccione el conector de Microsoft 365 (Office 365).

    Screenshot of the Microsoft 365 (Office 365) connector.

  3. Configure los detalles del servicio, pruebe la conexión y cree el nuevo servicio vinculado.

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

Detalles de configuración del conector

En las secciones siguientes se proporcionan detalles sobre las propiedades que se usan para definir entidades de Data Factory específicas para el conector de Microsoft 365 (Office 365).

Propiedades del servicio vinculado

Las siguientes propiedades son compatibles con el servicio vinculado de Microsoft 365 (Office 365):

Propiedad Descripción Obligatorio
type La propiedad type debe establecerse en: Office365
office365TenantId Id. de inquilino de Azure al que pertenece la cuenta de Microsoft 365 (Office 365).
servicePrincipalTenantId Especifique la información del inquilino en el que reside la aplicación web de Microsoft Entra.
servicePrincipalId Especifique el id. de cliente de la aplicación.
servicePrincipalKey Especifique la clave de la aplicación. Marque este campo como SecureString para almacenarlo de forma segura.
connectVia El entorno de ejecución de integración que se usará para conectarse al almacén de datos. Si no se especifica, se usará Azure Integration Runtime. No

Nota

La diferencia entre office365TenantId y servicePrincipalTenantId y el valor correspondiente que se debe proporcionar:

  • Si es un desarrollador empresarial que va a desarrollar una aplicación con los datos de Microsoft 365 (Office 365) para usarla en su organización, debe proporcionar el mismo identificador de inquilino para ambas propiedades, que es el identificador de inquilino de Microsoft Entra de su organización.
  • Si es un ISV que va a desarrollar una aplicación para los clientes, office365TenantId será el identificador de inquilino de Microsoft Entra (instalador de la aplicación) del cliente y servicePrincipalTenantId será el identificador de inquilino de Microsoft Entra de la empresa.

Ejemplo:

{
    "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>"
            }
        }
    }
}

Propiedades del conjunto de datos

Si desea ver una lista completa de las secciones y propiedades disponibles para definir conjuntos de datos, consulte el artículo sobre conjuntos de datos. En esta sección se proporciona una lista de las propiedades que admite el conjunto de datos de Microsoft 365 (Office 365).

Para copiar datos de Microsoft 365 (Office 365), se admiten las siguientes propiedades:

Propiedad Descripción Obligatorio
type La propiedad type del conjunto de datos debe establecerse en: Office365Table
tableName Nombre del conjunto de datos para extraer de Microsoft 365 (Office 365). Haga clic aquí para obtener la lista de conjuntos de datos de Microsoft 365 (Office 365) disponibles para la extracción.

Si estaba configurando dateFilterColumn, startTime, endTime y userScopeFilterUri en el conjunto de datos, todavía se admite tal cual, aunque se aconseja usar en el futuro el nuevo modelo del origen de la actividad.

Ejemplo

{
    "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"
        }
    }
}

Propiedades de la actividad de copia

Si desea ver una lista completa de las secciones y propiedades disponibles para definir actividades, consulte el artículo sobre canalizaciones. En esta sección se proporciona una lista de las propiedades que admite el origen de Microsoft 365 (Office 365).

Microsoft 365 (Office 365) como origen

Para copiar datos desde Microsoft 365 (Office 365), en la sección source de la actividad de copia se admiten las siguientes propiedades:

Propiedad Descripción Obligatorio
type La propiedad type del origen de la actividad de copia debe establecerse en: Office365Source
allowedGroups Predicado de la selección de grupo. Utilice esta propiedad para seleccionar hasta 10 grupos de usuarios para los que se recuperarán los datos. Si no se especifica ningún grupo, se devolverán datos para toda la organización. No
userScopeFilterUri Cuando la propiedad allowedGroups no se especifica, puede usar una expresión de predicado que se aplica en todo el inquilino para filtrar las filas específicas que extraer de Microsoft 365 (Office 365). El formato de predicado debe coincidir con el formato de consultas de las API de Microsoft Graph, por ejemplo, https://graph.microsoft.com/v1.0/users?$filter=Department eq 'Finance'. No
dateFilterColumn Nombre de la columna de filtro DateTime. Utilice esta propiedad para limitar el intervalo de tiempo para que se extraigan los datos de Microsoft 365 (Office 365). Sí, si el conjunto de datos tiene una o varias columnas DateTime. Consulte aquí para obtener la lista de conjuntos de datos que requieren este filtro DateTime.
startTime Valor DateTime de inicio para el filtro. Sí, si se especifica dateFilterColumn
endTime Valor DateTime de fin para el filtro. Sí, si se especifica dateFilterColumn
outputColumns Matriz de las columnas que se van a copiar en el receptor. No

Ejemplo:

"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"
            }
        }
    }
]

Transformación de datos con el conector de Microsoft 365

Los conjuntos de datos de Microsoft 365 se pueden usar como origen con flujos de datos de asignación. El flujo de datos transformará los datos mediante la aplanación automática del conjunto de datos. De esta manera, se permite que los usuarios se centren en sacar provecho del conjunto de datos aplanado para acelerar los escenarios de análisis.

Propiedades de Asignación de instancias de Data Flow

Para crear un flujo de datos de asignación mediante el conector de Microsoft 365 como origen, complete los pasos siguientes:

  1. En ADF Studio, vaya a la sección Flujos de datos del centro Autor, seleccione el botón ... para desplegar el menú Acciones de flujo de datos y seleccione el elemento Nuevo flujo de datos. Active el modo de depuración mediante el botón Depuración del flujo de datos en la barra superior del lienzo del flujo de datos.

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

  2. En el editor de flujo de datos de asignación, seleccione Agregar origen.

    Screenshot of add source in mapping data flow.

  3. En la pestaña Configuración de origen, seleccione Insertado en la propiedad Tipo de origen, Microsoft 365 (Office 365) en el tipo de conjunto de datos insertado y el servicio vinculado de Microsoft 365 que ha creado anteriormente.

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

  4. En la pestaña Opciones de origen, seleccione el nombre de tabla de la tabla de Microsoft 365 que quiere transformar. Seleccione también la opción Aplanar automáticamente para decidir si quiere que el flujo de datos aplane automáticamente el conjunto de datos de origen.

    Screenshot of the source options of mapping data flow source.

  5. Para las pestañas Proyección, Optimizar e Inspeccionar, consulte el flujo de datos de asignación.

  6. En la pestaña Versión preliminar de datos, haga clic en el botón Actualizar para capturar un conjunto de datos de ejemplo para la validación.

Para obtener una lista de almacenes de datos que la actividad de copia admite como orígenes y receptores, vea Almacenes de datos que se admiten.