Sugerencias para usar la conexión de datos de Microsoft GraphTips for using Microsoft Graph data connect

La conexión de datos de Microsoft Graph permite a los desarrolladores crear aplicaciones que los clientes pueden usar para proporcionar acceso administrado a los conjuntos de datos de Microsoft Graph en escala.Microsoft Graph data connect allows developers to create applications that customers can provide managed access to their at-scale Microsoft Graph datasets. Este artículo proporciona sugerencias que le ayudarán a la característica de conexión de datos.This article provides tips that will help you take advantage of the data connect feature. Para obtener una introducción a la conexión de datos de Microsoft Graph, consulte el artículo Introducción.For an introduction to Microsoft Graph data connect, see the Overview article.

¿Es la conexión de datos de Microsoft Graph adecuada para usted?Is Microsoft Graph data connect right for you?

La conexión de datos y las API de Microsoft Graph proporcionan acceso a los mismos datos subyacentes, pero de formas muy diferentes.Data connect and the Microsoft Graph APIs provide access to the same underlying data but in very different ways. La conexión de datos está diseñada para extraer grandes cantidades de datos de forma masiva, mientras que las API de Microsoft Graph son más adecuadas para acceder a conjuntos menores de datos en tiempo real.Data connect is designed to extract large amounts of data in bulk while the Microsoft Graph APIs are more suitable for accessing discrete sets of data in real time. En algunos casos, incluso puede ser lógico combinarlas.In some cases, it might even make sense to combine them. Por ejemplo, es posible que le interese usar la conexión de datos para realizar una extracción inicial de los datos de correo electrónico del último año y, a partir de ahí, usar la API de Microsoft Graph para analizar los mensajes de correo electrónico en tiempo real.For example, you might want use data connect to do an initial extraction of the last year of email data, and then use the Microsoft Graph APIs to analyze emails in real time moving forward. La conexión de datos y las API de Microsoft Graph son herramientas diferentes para tareas distintas.Data connect and the Microsoft Graph APIs are different tools for different jobs. Es importante considerar cuál es el mejor método de acceso para su caso.It's important to think about which access method best fits your scenario.

Espere una sobrecarga inicialExpect an initial overhead

Puesto que la conexión de datos está diseñada para extraer grandes cantidades de datos de forma masiva, se produce cierta sobrecarga antes de que se puedan extraer los datos.Because data connect is designed to extract large amounts of data in bulk, some overhead is incurred before the data can be extracted. Esta sobrecarga es de aproximadamente 45 minutos, lo que significa que todas las canalizaciones le llevarán al menos ese tiempo independientemente del tamaño de los datos.This overhead is around 45 minutes, meaning all pipelines will take at least that long regardless of the data size. Esto puede ser un coste mínimo para grandes cantidades de datos, pero si no es aceptable en su caso, las API de Microsoft Graph pueden proporcionar un método mejor.This might be a negligible cost for large amounts of data, but if this time is unacceptable for your scenario, the Microsoft Graph APIs might provide a better approach.

Los datos deben permanecer en la suscripción de la organizaciónData must stay within the organization's subscription

Las canalizaciones de conexión de datos están organizadas por Azure Data Factory, un servicio de integración de datos que se ejecuta en una suscripción de Azure.Data connect pipelines are orchestrated by Azure Data Factory, a data integration service that runs in an Azure subscription. La suscripción de Azure está asociada exactamente con un inquilino de Office 365.The Azure subscription is associated with exactly one Office 365 tenant. De esta forma, los datos deben transmitirse inicialmente a una suscripción de Azure asociada.This way, the data must initially flow to an associated Azure subscription. Tras una mayor minimalización y agregación, los datos pueden usarse en otro lugar.After further minimalization and aggregation, the data can be used elsewhere.

Si quiere crear una aplicación para que otros puedan extraer sus datos de Office 365, puede empaquetar la aplicación como una aplicación de administración de Azure y publicarla en el Microsoft Azure Marketplace.If you want to build an app for others to use to extract their Office 365 data, you can package the app as an Azure managed application and publish it to the Azure Marketplace. Después, alguien puede implementar la aplicación en su propia suscripción de Azure y la aplicación puede acceder a los datos en su espacio empresarial.Then someone can deploy your app into their own Azure subscription, and the app can access data in their tenant.

Uso de entidades de servicioUse of service principals

Al crear la canalización de Data Factory, tendrá que proporcionar a una entidad de servicio en el servicio vinculado de Office 365.When creating the Data Factory pipeline, you will have to provide a service principal to the Office 365 linked service. En Azure, una entidad de servicio es una identidad de seguridad que representa una aplicación o servicio (en lugar de un usuario).In Azure, a service principal is a security identity that represents an application/service (as opposed to a user). La conexión de datos usa esta entidad de servicio como su identidad cuando reciba acceso autorizado a los datos de Office 365.Data connect uses this service principal as its identity when getting authorized access to your Office 365 data. Si crea una aplicación administrada por Azure para que otros puedan usarla en sus espacios empresariales, aún deberá proporcionar una entidad de servicio para que use la aplicación.If you create an Azure Managed Application for others to use in their tenants, you'll still provide a service principal for the app to use. Esta entidad de servicio se encuentra en el espacio empresarial (del editor).This service principal will exist in your (the publisher's) tenant. Sin embargo, si la aplicación necesita otras entidades de servicio, el cliente (el instalador) las creará en su propio espacio empresarial.However, if the app needs other service principals, your customer (the installer) will create them in their own tenant. Por ejemplo, es probable que la canalización de Data Factory necesite acceder a un recurso de almacenamiento de Azure.For example, your Data Factory pipeline will likely need access to a storage resource in Azure. El cliente crearía la entidad de servicio con permisos para la cuenta de almacenamiento para que use la canalización.The customer would create the service principal with permissions to the storage account for the pipeline to use.

Buscar solicitudes pendientes de administración del acceso con privilegios Check for pending Privileged Access Management requests

Antes de que la conexión de datos pueda copiar los datos, un administrador debe aprobar una solicitud de administración de acceso con privilegios (PAM).Before data connect can copy your data, an administrator must approve a Privileged Access Management (PAM) request. PAM es el mecanismo utilizado para autorizar el acceso a la canalización de datos en Office 365.PAM is the mechanism used to authorize your data pipeline access to the data in Office 365. La primera vez que desencadena una canalización, esperará a que un administrador de Office 365 (o delegado designado) apruebe la solicitud de acceso.The first time you trigger a pipeline, it will wait on an Office 365 administrator (or appointed delegate) to approve the access request. Aunque el estado de la canalización muestra En curso, la actividad de copia subyacente tendrá el estado de ConsentPending hasta que se apruebe, como se muestra en la siguiente captura de pantalla.Although the pipeline status shows In progress, the underlying copy activity will have a status of ConsentPending until approval is granted, as shown in the following screenshot.

Captura de pantalla del panel de estado de la canalización con un estado de ConsentPending

Durante el desarrollo, es recomendable asegurarse de que las ejecuciones de canalización no se detienen en ConsentPending, especialmente después de realizar un cambio en la canalización.During development, it's a good idea to make sure your pipeline runs aren't stuck on ConsentPending, especially after you make a change to your pipeline. Por ejemplo, si agrega un campo adicional en el esquema, la siguiente ejecución de canalización emitirá una nueva solicitud de PAM que deberá aprobarse.For example, if you add an additional field to the schema, the next pipeline run will issue a new PAM request that has to be approved. No pierda el tiempo esperando una canalización que está esperando su aprobación.Don't waste time waiting on a pipeline that's waiting for your approval.

Aprobar solicitudes de PAM a través del portal de administración de Office 365Approve PAM requests via Office 365 admin portal

La documentación de conexión de datos muestra cómo usar PowerShell y PAM UX para aprobar las solicitudes de PAM.The data connect documentation shows you how to use PowerShell and the PAM UX to approve PAM requests. Para aprobar con PAM UX, visite la interfaz de PAM en el portal de administración de Office 365.To approve using the PAM UX, visit the PAM interface in the Office 365 admin portal. El portal proporciona una forma fácil e intuitiva para ver y aprobar, denegar o revocar solicitudes de PAM.The portal provides an easy and user-friendly way to view and approve/deny/revoke PAM requests. Encontrará un vínculo en el complemento de conexión de datos de Microsoft Graph en Configuración > Servicios y complementos > Conexión de datos de Microsoft Graph.You can find a link to it in the Microsoft Graph data connect add-in under Settings > Services & Add-ins > Microsoft Graph data connect.

Usar un segundo usuario para aprobar solicitudes PAMUse a second user to approve PAM requests

Al ejecutar una canalización y desencadenar una solicitud PAM, la solicitud se adjunta a la cuenta de usuario a la que pertenezca la entidad de servicio usada por la canalización.When you run a pipeline and trigger a PAM request, the request is attached to your user account that owns the service principal used by the pipeline. Pero, aunque esta cuenta forme parte del grupo de aprobadores que configuró, no puede utilizarla para aprobar la solicitud de PAM porque las aprobaciones propias no están permitidas.But even if this account is part of the approver group you set up, you can't use it to approve the PAM request because self-approvals are not allowed. Si lo intenta, recibirá un mensaje de error en el portal de PAM: "El solicitante y el aprobador coinciden.If you try, you'll get an error message in the PAM portal: "Requestor and approver are the same. No se admite la aprobación automática."Self-approval is not allowed." Para el desarrollo, es recomendable tener una segunda cuenta además del administrador responsable de aprobar las solicitudes.For development, you'll want to have a second account in addition to the admin who approves requests. Tanto el remitente como el aprobador deben tener cuentas activas de Exchange Online.Both the submitter and the approver must have active Exchange Online accounts.

Eliminar duplicados de mensajes de correo electrónico cuando sea necesarioDeduplicate emails when needed

Al extraer los correos electrónicos del conjunto de datos de Message, a menudo verá que existen varios objetos JSON para el mismo correo electrónico.When you extract emails from the Message dataset, there will often be multiple JSON objects for the same email. Estos duplicados existen porque cuando se envía un correo electrónico a varias personas, hay una copia del correo electrónico en el buzón de cada destinatario.These duplicates exist because when an email is sent to multiple people, there is a copy of the email in every recipient's mailbox. Puesto que el conjunto de datos se extrae de todos los buzones, contendrá todas las copias de los usuarios.Because the dataset is extracted from every mailbox, it will contain all copies across users. En algunos casos, puede que sea necesario mantener todas las copias, pero en otros casos, puede que quiera eliminar los duplicados.In some scenarios, it might be necessary to keep every copy but in others, you may want to remove the duplicates. Puede eliminar los duplicados de los objetos JSON exportados según el internetMessageId de los mensajes: dos mensajes con el mismo internetMessageId son duplicados de la misma instancia.You can deduplicate the exported JSON objects based on the internetMessageId of the messages: Two messages with the same internetMessageId are duplicate copies of the same instance. Como los duplicados pueden existir en diferentes blobs, debe eliminar los duplicados en todos los blobs en lugar de hacerlo en cada blob por separado.Because the duplicates can exist in different blobs, you must deduplicate across all blobs rather than deduplicating in each blob separately.

Use el campo puser para determinar el usuario correspondienteUse puser field to determine the relevant user

Los datos extraídos incluyen algunas propiedades de metadatos que no se encuentran al usar las API de Microsoft Graph correspondientes.The extracted data includes some meta properties that don't exist when using the corresponding Microsoft Graph APIs. Concretamente, el campo puser puede ser útil para determinar de qué usuario se han extraído los datos.Specifically, the puser field can be useful for determining which user the data was extracted from. En el caso de que tenga dos copias del mismo correo electrónico en diferentes buzones, puede usar el campo puser para determinar de qué buzón proviene cada copia.In the scenario where you have two copies of the same email in different mailboxes, you can use the puser field to determine which copy came from which mailbox. El campo puser también es útil para conjuntos de datos, como el conjunto de datos Manager.The puser field is also useful for datasets such as the Manager dataset. El JSON exportado contiene información sobre un administrador, pero esto solo es útil si sabe de quién es administrador.The exported JSON will contain information about a manager, but this is only useful if you know whose manager they are. El campo puser le indicará a qué administrador corresponde ese objeto JSON.The puser field will tell you whose manager that JSON object corresponds to.

Siguientes pasosNext Steps

Póngase en contacto en UserVoice para solicitar características.Reach out on UserVoice for feature requests.