Copiar e transformar dados do Microsoft 365 (Office 365) no Azure usando o Azure Data Factory ou o Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

Os pipelines do Azure Data Factory e do Synapse Analytics integram-se com a conexão de dados do Microsoft Graph, permitindo que você traga os dados organizacionais avançados em seu locatário do Microsoft 365 (Office 365) para o Azure de forma escalável e crie aplicativos de análise e extraia insights com base nesses valiosos ativos de dados. A integração com o Privileged Access Management fornece controle de acesso seguro para os valiosos dados selecionados no Microsoft 365 (Office 365). Consulte este link para obter uma visão geral da conexão de dados do Microsoft Graph.

Este artigo descreve como usar a atividade de cópia para copiar dados e fluxo de dados para transformar dados do Microsoft 365 (Office 365). Para obter uma introdução à cópia de dados, leia a visão geral da atividade de cópia. Para obter uma introdução à transformação de dados, leia Visão geral do fluxo de dados de mapeamento.

Nota

O conector de fluxo de dados do Microsoft 365 está atualmente em visualização. Para participar, use este formulário de inscrição: M365 + Analytics Preview.

Capacidades suportadas

Este conector do Microsoft 365 (Office 365) é suportado para as seguintes capacidades:

Capacidades suportadas IR
Atividade de cópia (fonte/-)
Mapeando o fluxo de dados (fonte/-)

(1) Tempo de execução de integração do Azure (2) Tempo de execução de integração auto-hospedado

O conector ADF Microsoft 365 (Office 365) e o Microsoft Graph Data Connect permitem a ingestão em escala de diferentes tipos de conjuntos de dados de caixas de correio habilitadas para Email do Exchange, incluindo contatos do catálogo de endereços, eventos de calendário, mensagens de email, informações do usuário, configurações de caixa de correio e assim por diante. Consulte aqui para ver a lista completa de conjuntos de dados disponíveis.

Por enquanto, dentro de uma única atividade de cópia e fluxo de dados, você só pode ingerir dados do Microsoft 365 (Office 365) no Armazenamento de Blobs do Azure, no Azure Data Lake Storage Gen1 e no Azure Data Lake Storage Gen2 no formato JSON (tipo setOfObjects). Ao copiar para o Armazenamento de Blobs do Azure, a saída é um blob contendo texto JSON. Se quiser carregar o Microsoft 365 (Office 365) em outros tipos de armazenamentos de dados ou em outros formatos, você pode encadear a primeira atividade de cópia ou o fluxo de dados com uma atividade subsequente para carregar dados adicionais em qualquer um dos armazenamentos de destino do ADF suportados (consulte a coluna "suportado como coletor" na tabela "Armazenamentos e formatos de dados suportados").

Importante

  • A assinatura do Azure que contém o data factory ou o espaço de trabalho Synapse e o armazenamento de dados do coletor deve estar sob o mesmo locatário do Microsoft Entra que o locatário do Microsoft 365 (Office 365).
  • Verifique se a região do Tempo de Execução de Integração do Azure usada para a atividade de cópia, bem como o destino, está na mesma região onde a caixa de correio dos usuários locatários do Microsoft 365 (Office 365) está localizada. Consulte aqui para entender como o local de IR do Azure é determinado. Consulte a tabela aqui para obter a lista de regiões do Office suportadas e regiões do Azure correspondentes.
  • A autenticação da Entidade de Serviço é o único mecanismo de autenticação suportado para o Armazenamento de Blobs do Azure, o Azure Data Lake Storage Gen1 e o Azure Data Lake Storage Gen2 como armazenamentos de destino.

Nota

Use o tempo de execução de integração do Azure nos serviços vinculados de origem e coletor. O tempo de execução de integração auto-hospedado e o tempo de execução de integração de rede virtual gerenciada não são suportados.

Pré-requisitos

Para copiar e transformar dados do Microsoft 365 (Office 365) no Azure, você precisa concluir as seguintes etapas de pré-requisito:

  • Seu administrador de locatário do Microsoft 365 (Office 365) deve concluir as ações de integração conforme descrito aqui.
  • Crie e configure um aplicativo Web Microsoft Entra no Microsoft Entra ID. Para obter instruções, consulte Criar um aplicativo Microsoft Entra.
  • Anote os seguintes valores, que você usará para definir o serviço vinculado para o Microsoft 365 (Office 365):
  • Adicione a identidade do usuário que fará a solicitação de acesso a dados como o proprietário do aplicativo Web Microsoft Entra (do proprietário Adicionar proprietário de configurações >> do aplicativo > Web Microsoft Entra).
    • A identidade do usuário deve estar na organização do Microsoft 365 (Office 365) da qual você está recebendo dados e não deve ser um usuário convidado.

Aprovar novos pedidos de acesso a dados

Se esta for a primeira vez que você está solicitando dados para este contexto (uma combinação de qual tabela de dados está sendo acessada, em qual conta de destino são os dados que estão sendo carregados e qual identidade de usuário está fazendo a solicitação de acesso a dados), você verá o status da atividade de cópia como "Em andamento", e somente quando clicar no link "Detalhes" em Ações você verá o status como "SolicitandoConsentimento". Um membro do grupo de aprovadores de acesso a dados precisa aprovar a solicitação no Gerenciamento de Acesso Privilegiado antes que a extração de dados possa prosseguir.

Consulte aqui como o aprovador pode aprovar a solicitação de acesso a dados e consulte aqui para obter uma explicação sobre a integração geral com o Privileged Access Management, incluindo como configurar o grupo de aprovador de acesso a dados.

Introdução

Gorjeta

Para obter um passo a passo sobre como usar o conector do Microsoft 365 (Office 365), consulte o artigo Carregar dados do Microsoft 365 (Office 365).

Você pode criar um pipeline com a atividade de cópia e o fluxo de dados usando uma das seguintes ferramentas ou SDKs. Selecione um link para ir para um tutorial com instruções passo a passo para criar um pipeline com uma atividade de cópia.

Criar um serviço vinculado ao Microsoft 365 (Office 365) usando a interface do usuário

Use as etapas a seguir para criar um serviço vinculado ao Microsoft 365 (Office 365) na interface do usuário do portal do Azure.

  1. Navegue até a guia Gerenciar em seu espaço de trabalho do Azure Data Factory ou Synapse e selecione Serviços Vinculados e clique em Novo:

  2. Procure Microsoft 365 (Office 365) e selecione o conector Microsoft 365 (Office 365).

    Screenshot of the Microsoft 365 (Office 365) connector.

  3. Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.

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

Detalhes de configuração do conector

As seções a seguir fornecem detalhes sobre as propriedades usadas para definir entidades do Data Factory específicas para o conector do Microsoft 365 (Office 365).

Propriedades do serviço vinculado

As seguintes propriedades são suportadas para o serviço vinculado do Microsoft 365 (Office 365):

Propriedade Descrição Necessário
tipo A propriedade type deve ser definida como: Office365 Sim
office365TenantId ID do locatário do Azure ao qual a conta do Microsoft 365 (Office 365) pertence. Sim
servicePrincipalTenantId Especifique as informações do locatário sob as quais seu aplicativo Web Microsoft Entra reside. Sim
servicePrincipalId Especifique o ID do cliente do aplicativo. Sim
servicePrincipalKey Especifique a chave do aplicativo. Marque este campo como um SecureString para armazená-lo com segurança. Sim
ConecteVia O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Se não for especificado, ele usará o Tempo de Execução de Integração do Azure padrão. Não

Nota

A diferença entre office365TenantId e servicePrincipalTenantId e o valor correspondente a fornecer:

  • Se você for um desenvolvedor corporativo desenvolvendo um aplicativo em dados do Microsoft 365 (Office 365) para uso de sua própria organização, deverá fornecer a mesma ID de locatário para ambas as propriedades, que é a ID de locatário do Microsoft Entra da sua organização.
  • Se você for um desenvolvedor ISV desenvolvendo um aplicativo para seus clientes, o office365TenantId será o ID do locatário Microsoft Entra do seu cliente (instalador de aplicativos) e servicePrincipalTenantId será o ID do locatário Microsoft Entra da sua empresa.

Exemplo:

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

Propriedades do conjunto de dados

Para obter uma lista completa de seções e propriedades disponíveis para definir conjuntos de dados, consulte o artigo sobre conjuntos de dados. Esta seção fornece uma lista de propriedades suportadas pelo conjunto de dados do Microsoft 365 (Office 365).

Para copiar dados do Microsoft 365 (Office 365), as seguintes propriedades são suportadas:

Propriedade Descrição Necessário
tipo A propriedade type do conjunto de dados deve ser definida como: Office365Table Sim
tableName Nome do conjunto de dados a ser extraído do Microsoft 365 (Office 365). Consulte aqui a lista de conjuntos de dados do Microsoft 365 (Office 365) disponíveis para extração. Sim

Se você estava definindo dateFilterColumn, , , e no conjunto de dados, ele ainda é suportado no estado em que se encontra, startTimeendTimeuserScopeFilterUri enquanto é sugerido que você use o novo modelo na fonte de atividade no futuro.

Exemplo

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

Propriedades da atividade Copy

Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, consulte o artigo Pipelines . Esta seção fornece uma lista de propriedades suportadas pela fonte Microsoft 365 (Office 365).

Microsoft 365 (Office 365) como fonte

Para copiar dados do Microsoft 365 (Office 365), as seguintes propriedades são suportadas na seção de fonte de atividade de cópia:

Propriedade Descrição Necessário
tipo A propriedade type da fonte de atividade de cópia deve ser definida como: Office365Source Sim
allowedGrupos Predicado de seleção de grupo. Use essa propriedade para selecionar até 10 grupos de usuários para os quais os dados serão recuperados. Se nenhum grupo for especificado, os dados serão retornados para toda a organização. Não
userScopeFilterUri Quando allowedGroups a propriedade não é especificada, você pode usar uma expressão de predicado que é aplicada em todo o locatário para filtrar as linhas específicas para extrair do Microsoft 365 (Office 365). O formato de predicado deve corresponder ao formato de consulta das APIs do Microsoft Graph, por exemplo. https://graph.microsoft.com/v1.0/users?$filter=Department eq 'Finance' Não
dateFilterColumn Nome da coluna de filtro DateTime. Use essa propriedade para limitar o intervalo de tempo para o qual os dados do Microsoft 365 (Office 365) são extraídos. Sim, se o conjunto de dados tiver uma ou mais colunas DateTime. Consulte aqui a lista de conjuntos de dados que exigem esse filtro DateTime.
startTime Inicie o valor DateTime para filtrar. Sim, se dateFilterColumn especificado
endTime Valor DateTime final para filtrar. Sim, se dateFilterColumn especificado
outputColumns Matriz das colunas a serem copiadas para o coletor. Não

Exemplo:

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

Transformar dados com o conector Microsoft 365

Os conjuntos de dados do Microsoft 365 podem ser usados como uma fonte com fluxos de dados de mapeamento. O fluxo de dados transformará os dados nivelando o conjunto de dados automaticamente. Isso permite que os usuários se concentrem em aproveitar o conjunto de dados nivelado para acelerar seus cenários de análise.

Mapeando propriedades de fluxo de dados

Para criar um fluxo de dados de mapeamento usando o conector do Microsoft 365 como origem, conclua as seguintes etapas:

  1. No ADF Studio, vá para a seção Fluxos de dados do hub Autor, selecione o botão ... para abrir o menu Ações de fluxo de dados e selecione o item Novo fluxo de dados. Ative o modo de depuração usando o botão de depuração de fluxo de dados na barra superior da tela de fluxo de dados.

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

  2. No editor de fluxo de dados de mapeamento, selecione Adicionar fonte.

    Screenshot of add source in mapping data flow.

  3. Na guia Configurações de origem, selecione Inline na propriedade Tipo de origem , Microsoft 365 (Office 365) no tipo de conjunto de dados embutido e o serviço vinculado do Microsoft 365 que você criou anteriormente.

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

  4. Na guia Opções de origem, selecione o Nome da tabela do Microsoft 365 que você deseja transformar. Selecione também a opção Nivelamento automático para decidir se deseja que o fluxo de dados nivele automaticamente o conjunto de dados de origem.

    Screenshot of the source options of mapping data flow source.

  5. Para as abas Projeção, Otimizar e Inspecionar, siga o fluxo de dados de mapeamento.

  6. Na guia Visualização de dados, clique no botão Atualizar para buscar um conjunto de dados de exemplo para validação.

Para obter uma lista de armazenamentos de dados suportados como fontes e coletores pela atividade de cópia, consulte Armazenamentos de dados suportados.