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

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

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

Os pipelines do Azure Data Factory e Synapse Analytics integram-se à Conexão de dados do Microsoft Graph, que permite que você leve os dados organizacionais avançados de seu locatário do Microsoft 365 (Office 365) para o Azure de maneira escalonável e compile aplicativos de análise e extraia insights com base nesses ativos de dados valiosos. A integração com o Privileged Access Management fornece controle de acesso protegido para os dados importantes coletados 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 o Fluxo de Dados para transformar dados do Microsoft 365 (Office 365). Para uma introdução aos dados de cópia, leia a Visão geral da atividade de cópia. Para uma introdução à transformação de dados, leia a Visão geral de fluxo de dados de mapeamento.

Observação

No momento, o conector de Fluxo de Dados do Microsoft 365 está em versão prévia. Para participar, use este formulário de inscrição: Versão prévia do M365 + Analytics.

Funcionalidades com suporte

O conector do Microsoft 365 (Office 365) tem suporte para os seguintes recursos:

Funcionalidades com suporte IR
Atividade de cópia (origem/-) 2
Fluxo de dados de mapeamento (origem/-) 2

① Runtime de integração do Azure ② Runtime de integração auto-hospedada

O conector do ADF Microsoft 365 (Office 365) e a Conexão de Dados do Microsoft Graph permite a ingestão em escala de diferentes tipos de conjuntos de dados de caixas de correio habilitadas para Exchange Email, 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. Clique aqui para ver a lista completa de conjuntos de dados disponíveis.

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

Importante

  • A assinatura do Azure que contém o data factory ou o espaço de trabalho do Synapse e o armazenamento de dados do coletor deve estar no mesmo locatário do Microsoft Entra que o locatário do Microsoft 365 (Office 365).
  • Certifique-se de que a região do Azure Integration Runtime usada para atividade de cópia bem como o destino estejam na mesma região da caixa de correio dos usuários locatários do Microsoft 365 (Office 365). Clique aqui para entender como a localização do Azure IR é determinada. Consulte esta tabela para obter a lista de regiões com suporte do Office e regiões do Azure correspondentes.
  • A autenticação da Entidade de Serviço é o único mecanismo de autenticação com suporte para o Armazenamento de Blobs do Azure, Azure Data Lake Storage Gen1 e Azure Data Lake Storage Gen2 como os armazenamentos de destino.

Observação

Use o runtime de integração do Azure nos serviços vinculados de fonte e de coletor. Não há suporte para o runtime de integração auto-hospedado, nem para o runtime de integração de rede virtual gerenciada.

Pré-requisitos

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

  • O administrador do seu locatário do Microsoft 365 (Office 365) deve concluir ações de integração, conforme descrito aqui.
  • Criar e configurar um plicativo Web do Microsoft Entra no Microsoft Entra ID. Para obter instruções, consulte Criar um aplicativo do Microsoft Entra.
  • Anote os seguintes valores, que serão usados 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 aplicativo Web Microsoft Entra > Configurações > Proprietários > Adicionar proprietário).
    • A identidade do usuário deve estar na organização do Microsoft 365 (Office 365) da qual você está obtendo dados e não deve ser um usuário Convidado.

Aprovação de novas solicitações de acesso a dados

Se esta for a primeira vez que você estiver solicitando dados para este contexto (uma combinação de qual tabela de dados está sendo acessada, em qual conta de destino os dados 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 Copy como "Em andamento", e somente quando você clicar no link "Detalhes", em Ações, você verá o status como "RequestingConsent". Um membro do grupo de aprovadores de acesso a dados precisa aprovar a solicitação no Privileged Access Management antes que seja possível prosseguir com a extração de dados.

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

Introdução

Dica

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).

É possível criar um pipeline com a atividade de cópia e fluxo de dados usando uma das seguintes ferramentas ou SDKs. Selecione um link para acessar um tutorial com instruções passo a passo para criar um pipeline com uma atividade de cópia.

Criar um serviço vinculado para o 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 do Synapse e selecione Serviços Vinculados, em seguida, clique em Novo:

  2. Pesquise o Microsoft 365 (Office 365) e selecione o conector do 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 da configuração do conector

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

Propriedades do serviço vinculado

As propriedades a seguir são compatíveis com o serviço vinculado do Microsoft 365 (Office 365):

Propriedade Descrição Obrigatório
type A propriedade de tipo deve ser definida como: Office365 Sim
office365TenantId ID de locatário do Azure ao qual a conta do Microsoft 365 (Office 365) pertence. Sim
servicePrincipalTenantId Especifique as informações de locatário nas quais seu aplicativo Web do Microsoft Entra reside. Sim
servicePrincipalId Especifique a ID do cliente do aplicativo. Sim
servicePrincipalKey Especifique a chave do aplicativo. Marque esse campo como SecureString para armazená-lo com segurança. Sim
connectVia O Integration Runtime a ser usado para se conectar ao armazenamento de dados. Se não for especificado, ele usa o Integration Runtime padrão do Azure. Não

Observação

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

  • Se você for um desenvolvedor corporativo desenvolvendo um aplicativo em relação aos dados do Microsoft 365 (Office 365) para uso da 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á a ID do locatário do Microsoft Entra do cliente (instalador de aplicativo) e servicePrincipalTenantId será a ID de locatário do 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 das seções e propriedades disponíveis para definir os conjuntos de dados, confira o artigo sobre conjuntos de dados. Esta seção fornece uma lista das propriedades compatíveis com o conjunto de dados do Microsoft 365 (Office 365).

Para copiar dados do Microsoft 365 (Office 365), as seguintes propriedades têm suporte:

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

Se você está definindo dateFilterColumn, startTime, endTime e userScopeFilterUri no conjunto de dados, ainda há suporte para eles no estado em que se encontram, mas, de agora em diante, recomendamos usar o novo modelo na origem de atividade.

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 de cópia

Para obter uma lista completa das seções e propriedades disponíveis para definir atividades, confia o artigo Pipelines. Esta seção fornece uma lista das propriedades com suporte da origem do Microsoft 365 (Office 365).

Microsoft 365 (Office 365) como origem

Para copiar dados do Microsoft 365 (Office 365), as propriedades a seguir têm suporte na seção origem da atividade de cópia:

Propriedade Descrição Obrigatório
type A propriedade type da fonte da atividade Copy precisa ser definida como: Office365Source Sim
allowedGroups 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 a propriedade allowedGroups não é especificada, você pode usar uma expressão de predicado que é aplicada em todo o locatário para filtrar as linhas específicas a serem extraídas do Microsoft 365 (Office 365). O formato do 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. Clique aqui para ver a lista de conjuntos de dados que exigem este filtro DateTime.
startTime Valor DateTime inicial pelo qual fazer a filtragem. Sim, se dateFilterColumn for especificado
endTime Valor DateTime final pelo qual fazer a filtragem. Sim, se dateFilterColumn for 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 do Microsoft 365

Os conjuntos de dados do Microsoft 365 podem ser usados como uma fonte nos 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 nivelados para acelerar seus cenários de análise.

Propriedades do fluxo de dados de mapeamento

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

  1. No ADF Studio, vá para a seção Fluxo de dados do hub Autor, selecione o botão ... para abrir o menu Ações do fluxo de dados e selecione o item Novo fluxo de dados. Ative o modo de depuração usando o botão 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 Origem.

    Screenshot of add source in mapping data flow.

  3. Na guia Configurações de origem, selecione Embutido 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 seja nivelado automaticamente no conjunto de dados de origem.

    Screenshot of the source options of mapping data flow source.

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

  6. Na guia Visualização prévia 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 com suporte como coletores e fontes da atividade de cópia, confira os armazenamentos de dados com suporte.