Compartilhar via


Replicar os dados no Banco de Dados SQL do Azure usando o Serviço de Exportação de Dados

Nota

Desde novembro de 2021, o Serviço de Exportação de Dados foi preterido. O Serviço de Exportação de Dados continuará a funcionar e terá suporte total até atingir o fim do suporte e da vida útil em novembro de 2022. Mais Informações: https://aka.ms/DESDeprecationBlog

O Serviço de Exportação de Dados é um serviço complementar disponibilizado no Microsoft AppSource que adiciona a capacidade de replicar dados do banco de dados do Microsoft Dataverse a um repositório de Banco de Dados SQL do Azure em uma assinatura do Azure que pertence ao cliente. Os destinos com suporte são o banco de dados SQL do Azure e SQL Server nas máquinas virtuais do Azure. A Serviço de Exportação de Dados sincroniza de forma inteligente e completa os dados no início e, daí em diante, sincroniza continuamente conforme ocorrerem alterações (alterações delta) no sistema. Isso também ajuda a habilitar vários cenários de análise e de relatório sobre os dados com os serviços de dados e de análise do Azure e abre novas possibilidades para que os clientes e os parceiros criem soluções personalizadas.

Nota

É altamente recomendável que você exporte seus dados do Dataverse para o Azure Synapse Analytics e/ou Azure Data Lake Gen2 com Azure Synapse Link for Dataverse. Mais informações: Acelere o tempo para obter insights com o Azure Synapse Link for Dataverse

Você pode usar o Serviço de Exportação de Dados com os aplicativos Customer Engagement (Dynamics 365 Sales, Dynamics 365 Customer Service, Dynamics 365 Field Service, Dynamics 365 Marketing e Dynamics 365 Project Service Automation).

Para saber mais sobre a interface programática para gerenciar a configuração e a administração do Serviço de Exportação de Dados, consulte Serviço de Exportação de Dados no guia do desenvolvedor.

Pré-requisitos para usar o Serviço de Exportação de Dados

Para começar a usar o Serviço de Exportação de Dados, os pré-requisitos a seguir são necessários:

Serviço de Banco de Dados SQL do Azure

  • Uma assinatura do Banco de Dados SQL do Azure de propriedade do cliente. Essa assinatura deve permitir o volume de dados sincronizados.

  • Configurações do firewall. Recomendamos que você desative a opção Permitir acesso a serviços do Azure e especifique os endereços IP adequados do cliente que estão listados neste tópico. Mais informações: Endereços de IP estáticos do banco de dados SQL do Azure usados pelo Serviço de Exportação de Dados

    Como alternativa, é possível ativar a opção Permitir acesso a serviços do Azure para permitir todo acesso aos serviços do Azure.

    Para o Servidor SQL em VM do Azure, a opção "Conectar ao SQL Server pela Internet" deve estar habilitada. Mais informações: Azure: Conectar-se a uma Máquina Virtual do SQL Server no Azure

    Além disso, configure suas regras de firewall para permitir a comunicação entre o Serviço de Exportação de Dados e o SQL Server.

  • O usuário do banco de dados deve ter permissões no nível do banco de dados e no nível do esquema de acordo com as tabelas a seguir. O usuário do banco de dados é usado na cadeia de conexão de exportação de dados.

    Permissões do banco de dados necessárias.

    Código do tipo de permissão Nome da permissão
    CRTB CRIAR TABELAS
    CRTY CRIAR TIPO
    CRVW CRIAR EXIBIÇÃO
    CRPR CRIAR PROCEDIMENTO
    ALUS ALTERAR QUALQUER USUÁRIO
    VWDS EXIBIR ESTADO DO BANCO DE DADOS

    Permissões de esquema necessárias.

    Código do tipo de permissão Nome da permissão
    AL ALTERAR
    IN INSERIR
    DL EXCLUIR
    SL SELECIONAR
    UP ATUALIZAR
    EX EXECUTAR
    RF REFERÊNCIAS

Serviço Azure Key Vault

  • A assinatura do Key Vault de propriedade do cliente, que é usada para manter segura a cadeia de conexão do banco de dados.

  • Conceda a permissão PermissionsToSecrets ao aplicativo com a identificação "b861dbcc-a7ef-4219-a005-0e4de4ea7dcf." Isso pode ser concluído executando o comando AzurePowerShell abaixo, e é usado para acessar o Key Vault que contém o segredo da cadeia de conexão Mais informações: Como configurar o Azure Key Vault

  • Os segredos no Key Vault deve ser marcado com as IDs de organização (OrgId) e locatário (TenantId). Isso pode ser feito executando-se o comando AzurePowerShell abaixo. Mais informações: Como configurar o Azure Key Vault

  • Configure suas regras de firewall para permitir a comunicação entre o Serviço de Exportação de Dados e o Azure Key Vault.

Aplicativos do envolvimento de clientes

  • Ambiente com a versão 9.0 ou posterior.

  • A solução Serviço de Exportação de Dados deve ser instalada.

    • Vá para Configurações>Microsoft Appsource> pesquise ou procure Microsoft Dynamics 365 - Serviço de Exportação de Dados e selecione Instale agora.
    • Ou localize-o no Microsoft AppSource.
  • As entidades que serão adicionadas ao Perfil de Exportação devem ser habilitadas com o controle de alterações. Para garantir que uma entidade padrão ou personalizada possa ser sincronizada, vá para Personalização>Personalizar o Sistema e selecione a entidade. Na guia Geral, verifique se a opção Controle de Alterações na seção Serviços de Dados está habilitada.

  • Você deve ter o direito de acesso de Administrador do Sistema no ambiente.

Navegador da Web

Habilite pop-ups para o domínio https://discovery.crmreplication.azure.net/ no seu navegador. Isso é necessário para a entrada automática quando você navega até Configurações > Exportação de Dados.

Serviços, credenciais e privilégios necessários

Para usar o recurso Serviço de Exportação de Dados, você deve ter os seguintes serviços, credenciais e privilégios.

  • Uma assinatura. Somente os usuários aos quais estão atribuídos os direitos de acesso de administrador do sistema podem configurar ou fazer alterações em um Perfil de Exportação.

  • Assinatura do Azure que inclui os seguintes serviços.

    • Banco de dados SQL do Azure ou Servidor SQL do Azure em máquinas virtuais do Azure.

    • Azure Key Vault.

Importante

Para usar o Serviço de Exportação de Dados, os aplicativos de engajamento de cliente e serviços do Azure Key Vault devem operar sob o mesmo locatário e dentro do mesmo Microsoft Entra ID. Mais informações: Integração do Azure com o Microsoft 365

O serviço Banco de Dados SQL do Azure pode estar em um mesmo locatário ou em um locatário diferente do serviço.

O que você deve saber antes de usar o Serviço de Exportação de Dados

  • Perfis de exportação deverão ser excluídos e recriados sempre que você executar uma das ações a seguir em um ambiente.

    • Restaurar um ambiente.
    • Copiar um ambiente (completo ou mínimo).
    • Redefinir um ambiente.
    • Mover um ambiente para um país ou uma região diferente.

    Para isso, exclua o Perfil de Exportação na exibição PERFIS DE EXPORTAÇÃO e exclua as tabelas e os procedimentos armazenados. Em seguida, crie um novo perfil. Mais informações: Como excluir todas as tabelas e procedimentos armazenados do Perfil de Exportação de Dados

  • O Serviço de Exportação de Dados não funciona para ambientes de área restrita ou de produção que são configurados com a opção Habilitar modo de administração ativada. Mais informações: Modo de administração.

  • O Serviço de Exportação de Dados não remove (exclui) as tabelas, colunas ou objetos de procedimento armazenado associados ao banco de dados Azure SQL de destino quando as ações a seguir ocorrem.

Perfil de Exportação

Para exportar dados de aplicativos de engajamento de cliente, o administrador cria um Perfil de Exportação. Vários perfis podem ser criados e ativados para sincronizar dados em bancos de dados diferentes simultaneamente.

O Perfil de Exportação é o conceito principal do Serviço de Exportação de Dados. O Perfil de Exportação reúne informações de instalação e configuração para sincronizar os dados com o banco de dados de destino. Como parte do Perfil de Exportação, o administrador fornece uma lista de entidades a serem exportadas para o banco de dados de destino. Depois de ativado, o Perfil de Exportação iniciará a sincronização automática de dados. Inicialmente, todos os dados que correspondam a cada entidade selecionada serão exportados. Depois disso, apenas as alterações em dados que ocorrerem nos metadados ou registros da entidade em aplicativos de engajamento de cliente serão sincronizadas continuamente por um mecanismo de push quase em tempo real. Portanto, não é preciso definir uma agenda para recuperar dados de aplicativos de engajamento de cliente.

Somente as entidades que tenham o controle de alterações habilitado podem ser adicionadas ao Perfil de Exportação. Note que a maioria das entidades padrão que capturam dados têm o controle de alterações habilitado. As entidades personalizadas devem ser explicitamente habilitadas para o controle de alterações antes que possam ser adicionadas a um Perfil de Exportação. Mais informações: Habilitar o controle de alterações para controlar a sincronização de dados

O Serviço de Exportação de Dados faz a sincronização de dados e de metadados. Cada entidade é traduzida em uma tabela, e cada campo é traduzido em uma coluna na tabela do banco de dados de destino. Nomes de tabelas e de colunas usam o nome de esquema dos metadados.

Depois de ativado, um Perfil de Exportação reúne as estatísticas para a sincronização dos dados, que ajudam na visibilidade operacional e no diagnóstico dos dados exportados.

Sincronização de dados disponível com um Perfil de exportação

Categoria Recurso Tipos de dados compatíveis
Sincronização inicial Metadados - tipos básicos de dados Tipos de dados de número inteiro, número de ponto flutuante, número decimal, linha única de texto, várias linhas de texto, data e hora.
Sincronização inicial Metadados - tipos avançados de dados Moeda, PartyList, conjunto de opções, status, razão do status, pesquisa (incluindo pesquisas de tipo de cliente e de tipo referente). PartyList está disponível para exportação somente a partir da versão 8.1 e posterior.
Sincronização inicial Dados - tipos básicos Todos os tipos básicos de dados.
Sincronização inicial Dados - tipos avançados Todos os tipos avançados de dados.
Sincronização Delta Modificar o esquema - tipos básicos Adicionar ou modificar alteração de campo, todos os tipos básicos de dados.
Sincronização Delta Modificar o esquema - tipos avançados Adicionar ou modificar alteração de campo, todos os tipos avançados de dados.
Sincronização Delta Modificar dados - tipos básicos Todos os tipos básicos de dados.
Sincronização Delta Modificar dados - tipos avançados Todos os tipos avançados de dados, como PartyList.

Criar um Perfil de Exportação

Certifique-se de que os seguintes requisitos sejam atendidos antes de criar um Perfil de Exportação:

  • A solução Serviço de Exportação de Dados está instalada em seu ambiente.

  • Mantenha a cadeia de conexão do banco de dados do Banco de Dados SQL no Key Vault e copie a URL do Key Vault para fornecê-la no Perfil de Exportação. Mais informações: Azure: Introdução ao Azure Key Vault

  • As entidades a serem adicionadas ao Perfil de Exportação estejam habilitadas para o controle de alterações. Mais informações: Habilitar o controle de alterações para controlar a sincronização de dados

  • Seu serviço de Banco de Dados SQL tem espaço de armazenamento suficiente para armazenar os dados.

  • Você é um Administrador do Sistema no ambiente.

  1. Vá para Configurações>Exportação de Dados.

  2. Examine o aviso e selecione Continuar ou Cancelar se não desejar exportar dados.

  3. Selecione Novo para criar um novo Perfil de Exportação.

  4. Na etapa Propriedades, insira as informações a seguir e selecione Avançar para continuar sem se conectar ao Key Vault. Selecionar Validar usa a URL do Key Vault que você forneceu para conectar-se ao Key Vault.

    • Nome. Nome exclusivo do perfil. Este campo é obrigatório.

    • URL de conexão do Key Vault. A URL do Key Vault apontando para a cadeia de conexão armazenada com as credenciais usadas para se conectar ao banco de dados de destino. Este campo é obrigatório. Mais informações: Como configurar o Azure Key Vault

      Importante

      A URL de conexão ao KeyVault diferencia maiúscula de minúscula. Digite a URL de conexão ao KeyVault exatamente como exibido após executar os comandos do Windows PowerShell neste tópico.

    • Esquema. Nome de um esquema de banco de dados alternativo. Somente caracteres alfanuméricos são válidos. Este campo é opcional. Por padrão, dbo é o esquema usado para o Banco de Dados SQL de destino.

    • Prefixo. Prefixo a ser usado para os nomes de tabela criadas no banco de dados de destino. Isso ajuda você a identificar facilmente as tabelas criadas para o Perfil de Exportação nos bancos de dados de destino. Quando especificado, certifique-se de que o prefixo tenha menos de 15 caracteres. Este campo é opcional e somente caracteres alfanuméricos são permitidos.

    • Contagem de novas tentativas. O número de vezes que um registro é repetido em caso de falha ao ser inserido ou atualizado na lista de destino. Este campo é obrigatório. Os valores aceitáveis são 0 a 20, e o padrão é 12.

    • intervalo de repetição. O número de segundos a aguardar antes de uma tentativa em caso de falha. Este campo é obrigatório. Os valores aceitáveis são 0 a 3600, e o padrão é 5.

    • Escreva Log de Exclusão. Configuração opcional para registrar registros excluídos.

    Guia Propriedades na caixa de diálogo Criar Perfil de Exportação.

  5. Na etapa Selecionar Entidades, selecione as entidades que deseja exportar para o Banco de Dados SQL de destino e, em seguida, selecione Avançar.

    Selecione a guia Entidades na caixa de diálogo Criar Perfil de Exportação.

  6. Na etapa Selecionar Relacionamentos, você poderá sincronizar as relações M:N (muitos para muitos) existentes com as entidades selecionadas na etapa anterior. Selecione Avançar

    Criar exportação de perfil - Gerenciar relacionamentos - Selecionar relacionamentos.

  7. Na etapa Resumo, selecione Criar e Ativar para criar o registro de perfil e se conectar ao Key Vault, que inicia o processo de sincronização. Caso contrário, selecione Criar para salvar o Perfil de Exportação e ativar posteriormente.

    Guia Resumo na caixa de diálogo Criar Perfil de Exportação.

Modificar um perfil existente de exportação

É possível adicionar ou remover as entidades e os relacionamentos de um Perfil de Exportação já existente que você queira replicar.

  1. Vá para Configurações>Exportação de Dados.

  2. Na exibição Todos os Perfis de Exportação de Dados, selecione o Perfil de Exportação que você deseja alterar.

    Selecionar um Perfil de Exportação.

  3. Na barra de ferramentas Ações, selecione GERENCIAR ENTIDADES para adicionar ou remover entidades para exportação de dados. Para adicionar ou remover relacionamentos da entidade, selecione GERENCIAR RELACIONAMENTOS.

    Gerenciar entidades e relacionamentos de entidades.

  4. Selecione as entidades ou relacionamentos da entidade que você deseja adicionar ou remover.

    Selecione as entidades ou relacionamentos da entidade que você deseja adicionar ou remover.

  5. Selecione Atualizar para enviar suas alterações ao Perfil de Exportação.

Importante

Quando você remove uma entidade ou um relacionamento entre entidades de um Perfil de Exportação, ele não remove a tabela correspondente no banco de dados de destino. Para poder adicionar novamente uma entidade que foi removida, você deve remover a tabela correspondente no banco de dados de destino. Para remover uma tabela de entidades, consulte Como excluir tabelas e procedimentos armazenados do Perfil de Exportação de Dados para uma entidade específica.

Detalhes de tabelas do Banco de Dados SQL do Azure de destino

O Serviço de Exportação de Dados cria tabelas para dados e metadados. Será criada uma tabela para cada entidade e cada relação M:N que for sincronizada.

Depois que um Perfil de Exportação é ativado, estas tabelas são criadas no banco de dados de destino. Estas são as tabelas do sistema e não terão os campos SinkCreatedTime e SinkModifiedTime adicionados.

Nome da tabela Data de criação
<Prefixo>_GlobalOptionsetMetadata Na ativação do Perfil de Exportação.
<Prefixo>_OptionsetMetadata Na ativação do Perfil de Exportação.
<Prefixo>_StateMetadata Na ativação do Perfil de Exportação.
<Prefixo>_StatusMetadata Na ativação do Perfil de Exportação.
<Prefixo>_TargetMetadata Na ativação do Perfil de Exportação.
<Prefixo>_AttributeMetadata Na ativação do Perfil de Exportação.
<Prefixo>_DeleteLog Na ativação do Perfil de Exportação quando a opção de excluir log está habilitada.

Resolvendo problemas de sincronização

Mesmo depois de várias tentativas de repetição, podem ocorrer falhas na sincronização de registros a partir de restrições de armazenamento do banco de dados ou de bloqueio de tabelas devido a consultas de longa execução. Para resolver essas falhas, você pode forçar uma nova sincronização apenas dos registros com falha ou uma nova sincronização de todos os registros.

  1. Veja seus perfis de exportação para procurar perfis que tenham falhas de sincronização de registros. Você faz isso exibindo os perfis de dados na área Sincronização ou abrindo um Perfil de Exportação, como esse perfil que tem uma falha de sincronização do registro de contato de entidade.

    DataExport_failed_records_exist.

  2. Examine a origem da falha de sincronização e resolva-a. Mais informações: Tratamento de erros e monitoramento

  3. Quando o problema for resolvido, sincronize novamente os registros com falha.

    Nota

    A sincronização de registros com falha é um recurso do modo de exibição público.

    • Os recursos em versão preliminar não foram criados para uso em ambientes de produção e podem ter funcionalidade restrita. Esses recursos são disponibilizados antes de um lançamento oficial para que os clientes possam ter acesso antecipado e forneçam comentários.
      • Nós esperamos fazer alterações nesse recurso, por isso, não o use em ambientes de produção. Use-o apenas em ambientes de teste e desenvolvimento.
      • A Microsoft não fornece suporte a este recurso de versão preliminar. O suporte técnico do Microsoft Dynamics 365 não poderá ajudar você a resolver problemas ou esclarecer dúvidas. Os recursos de visualização não foram criados para uso em ambientes de produção e estão sujeitos aos termos complementares de uso.
    1. Entre em seu ambiente e vá para Configurações>Exportação de Dados.

    2. Abra o Perfil de Exportação que inclui as falhas de sincronização de registro.

    3. Na barra de ferramentas do Perfil de Exportação, selecione RESSINCRONIZAR REGISTROS COM FALHA.

    4. Selecione Ok depois de uma ressincronização bem-sucedida dos registros com falha na caixa de diálogo de confirmação.

    Notificação de uma ressincronização bem-sucedida.

    1. Verifique se o Perfil de Exportação não contém notificações de registros com falha abrindo o perfil de exportação de dados e exibindo o contador Notificações com Falha na guia PROPRIEDADES E VISÃO GERAL, que deve ser 0. Selecione ATUALIZAR na barra de ferramentas do Perfil de Exportação para verificar se o valor de Notificações com Falha está atualizado.

    Indicação de nenhum registro com falha.

  4. Caso as falhas de sincronização persistam depois de você tentar ressincronizar seguindo as etapas anteriores, contate os Serviços de Atendimento ao Cliente da Microsoft.

Tratamento de erros e monitoramento

Para exibir o status da sincronização de um Perfil de Exportação, vá para Configurações>Exportação de Dados e abra o Perfil de Exportação. Na guia, ENTIDADES, será exibido o status de sincronização que inclui uma coluna Registros com Falha para os registros não puderam ser sincronizados. Para todos os registros com falha, poderá ser baixada uma lista desses registros, incluindo a razão do status, selecionando REGISTROS COM FALHA na barra de comandos.

Barra de comandos de perfil de exportação: botão Registros com Falha.

No Perfil de Exportação, você pode selecionar PROPRIEDADES E VISÃO GERAL para exibir as propriedades do perfil. Selecione RELACIONAMENTOS para exibir o status de sincronização dos relacionamentos.

Como exibir informações detalhadas sobre os registros que não foram sincronizados

A exibição dos logs de registros com falha pode ajudar a determinar a causa das falhas de sincronização. Para exibir os registros com falhas no banco de dados de destino do Azure, use o Gerenciador de Armazenamento do Azure, um aplicativo autônomo gratuito que permite que você trabalhe facilmente com os dados do Armazenamento do Azure. Mais informações: Gerenciador de Armazenamento do Azure.

  1. Vá para Configurações>Exportação de Dados.

  2. Na exibição Todos os Perfis de Exportação de Dados, selecione o Perfil de Exportação com notificações com falha.

    Notificações com falha.

  3. Na barra de ferramentas Ações, selecione REGISTROS COM FALHA.

    Botão de registros com falha na barra de ferramentas.

  4. Na caixa de diálogo Baixar Registros com Falha, selecione Copiar URL do Blob e, em seguida, selecione Ok.

    Caixa de diálogo Baixar Registros com Falha.

    Observação

    O URL de blob é válido por até 24 horas. Se a URL exceder o período de 24 horas, repita as etapas descritas anteriormente para gerar uma nova URL de blob.

  5. Inicie o Gerenciador de Armazenamento do Azure.

  6. No Gerenciador de Armazenamento do Azure, selecione Conectar ao Armazenamento do Azure.

  7. Cole a URL da área de transferência na caixa Conectar ao Armazenamento do Azure e, em seguida, selecione Avançar.

  8. Na página Resumo de Conexão, selecione Conectar.

  9. O Gerenciador de Armazenamento do Azure conecta-se ao banco de dados de destino. Se houver registros com falha do Perfil de Exportação, o Gerenciador de Armazenamento do Azure exibirá pastas de sincronização de registros com falha.

Como exibir informações detalhadas sobre os registros que não foram sincronizados (Visualização)

Você pode baixar os registros com falha diretamente na interface de usuário do Serviço de Exportação de Dados. Esse recurso atualmente está em Visualização e seria ótimo se você o testasse e fornecesse comentários.

Etapas para baixar registros com falha:

  1. Identifique o perfil que contém registros com falha.

    Perfis de exportação de dados.

  2. Selecione o perfil e, em seguida, selecione Baixar Registros com Falha (Visualização) na barra de menus superior.

    Baixar registros com falha (versão prévia).

  3. Na caixa de diálogo Baixar Registros com Falha, você verá uma lista classificada dos 20 (máximo) arquivos de blob mais recentes. Selecione o arquivo que deseja baixar e, em seguida, selecione Ok.

    Baixar registros com falha.

  4. Após o download, abra o arquivo no editor de texto de sua preferência (por exemplo, Bloco de Notas) e veja os detalhes das falhas.

    Exemplo de log de erros.

Estrutura da pasta e arquivos de log da sincronização de registros com falha

A URL do Armazenamento de Blob do Azure de Registros com Falha aponta para um local que tem a seguinte estrutura de pastas:

  • dados. Essa pasta contém notificações de dados com falha e o JSON associado dos dados do registro.

  • metadados. Essa pasta contém notificações de metadados com falha e o JSON associado dos metadados.

  • log de falhas. Essa pasta contém logs que fornecem informações sobre uma falha na sincronização e a razão da ocorrência da falha.

  • forcerefreshfailurelog. Essa pasta contém erros da última execução do comando Registros com Falha do Serviço de Exportação de Dados usado para ressincronizar os registros com falha.

  • mensagens não processáveis. Essa pasta contém as notificações de dados que não foram processadas devido a exclusão dos dados ou dos metadados e do JSON associado.

    As pastas failurelog e forcerefreshfailurelog são estruturadas como Ano\Mês\Dia\Hora para que você possa localizar rapidamente as falhas mais recentes. Todos os registros de falha com mais de 30 dias são excluídos.

    Veja um arquivo de log de exemplo que indica uma falha de sincronização de registro da entidade contato.

Entity: contact, RecordId: 459d1d3e-7cc8-e611-80f7-5065f38bf1c1, NotificationTime: 12/28/2016 12:32:39 AM, ChangeType: Update, FailureReason: The database 'tempdb' has reached its size quota. Partition or delete data, drop indexes, or consult the documentation for possible resolutions.  
The statement has been terminated.  

Razões comuns de falhas na sincronização de registros

Estas são algumas das razões pelas quais ocorrem falhas na sincronização de registros.

  • Armazenamento insuficiente no banco de dados de destino. Antes de tentar sincronizar novamente os registros com falha, aumente ou libere armazenamento no Banco de Dados SQL do Azure conforme apropriado. Quando ocorre esse problema, uma mensagem semelhante a esta é registrada no log de falhas.

    O banco de dados 'databasename' atingiu sua cota de tamanho. Particione ou exclua os dados, remova os índices ou consulte a documentação para obter possíveis resoluções.

  • Tempos limite de sincronização com o Banco de Dados SQL do Azure. Isso pode ocorrer durante a sincronização inicial de um perfil de exportação de dados quando grandes quantidades de dados são processadas ao mesmo tempo. Quando esse problema ocorrer, sincronize novamente os registros com falhas. Resolvendo problemas de sincronização

Melhores práticas ao usar o Banco de Dados SQL do Azure com a Exportação de Dados

  • Para evitar erros de sincronização devido à limitação de recursos, é recomendável ter um Banco de Dados SQL Premium P1 do Azure ou um plano melhor ao usar o Serviço de Exportação de Dados. Mais informações: Limites de recursos do Banco de Dados SQL do Azure e Preço do Banco de Dados SQL

  • Defina o Banco de Dados SQL do Azure para usar RCSI (isolamento de instantâneo de leitura confirmada) para cargas de trabalho executadas simultaneamente no banco de dados de destino que executam consultas de leitura de longa execução, como trabalhos de relatório e de ETL. Isso reduz a ocorrência de erros de tempo limite que podem acontecer com o Serviço de Exportação de Dados devido a conflitos de leitura\gravação.

  • Para ajudar a melhorar o desempenho da consulta, recomendamos que o grau máximo de paralelismo (MAXDOP) do banco de dados do Serviço de Exportação de Dados seja definido como 1. Mais informações: MSDN: Opções de memória do servidor

  • Avalie com frequência o grau fragmentação e, quando necessário, recrie os índices no banco de dados do Serviço de Exportação de Dados. Mais informações: Reorganizar e recriar índices

  • Atualize periodicamente as estatísticas do banco de dados em tabelas e em exibições indexadas no banco de dados do Serviço de Exportação de Dados. Mais informações: Atualizar estatísticas

  • Monitore a utilização do banco de dados do Serviço de Exportação de Dados. Mais informações: Monitoramento de desempenho

Sobre a latência de sincronização de dados

O Serviço de Exportação de Dados foi arquitetado para sincronizar alterações de dados para o banco de dados de destino usando um mecanismo de push e observando as alterações conforme elas ocorrem em aplicativos de engajamento de cliente. O serviço se esforça para enviar dados dentro de alguns minutos, mas há vários fatores que podem influenciar a latência de sincronização completa.

Os fatores que influenciam a duração da sincronização incluem o seguinte:

  • A carga de trabalho atual em aplicativos de engajamento de cliente.
  • A taxa de alteração de dados em aplicativos de engajamento de cliente.
  • O número de entidades adicionadas a cada perfil de exportação e seus atributos.
  • Desempenho do SQL Server. Por exemplo:
    • Tempo de configuração da conexão SQL.
    • Hora de execução da instrução SQL.

Com base em nosso monitoramento de serviço, foi observado que a maior parte da sincronização delta contínua termina em 15 minutos quando o serviço opera nas seguintes condições:

  • A sincronização que ocorre é uma sincronização delta e não a sincronização inicial. A sincronização delta é somente para operações de alterações de dados, que inclui transações de criação, atualização e exclusão de registro. Observe que a sincronização delta inicia depois que a sincronização inicial terminar.
  • A taxa máxima de alteração de dados em aplicativos de engajamento de cliente para todas as entidades no perfil de exportação é inferior a 3.000 registros por hora. Qualquer aumento repentino na taxa de alteração de dados devido a alteração de registros em massa que excede a taxa máxima de alteração causará latência adicional.
  • Cada entidade adicionada a um perfil de exportação tem menos de 150 atributos.
  • A conexão do banco de dados ou execução da instrução SQL em menos de 10 segundos. Se este limite for excedido, ele resultará em latência adicional.
  • Nenhum erro de conexão do banco de dados de destino ou de execução de SQL ocorre durante a sincronização.

Quando as condições acima são atendidas, 15 minutos é uma latência de sincronização comum. A Microsoft não fornece um contrato de nível de serviço (SLA) para o Serviço de Exportação de Dados e não oferece garantias ou compromissos referentes ao tempo de latência de sincronização.

Como configurar o Azure Key Vault

Execute o script do Windows PowerShell aqui descrito como administrador da conta do Azure para dar permissão ao recurso Serviço de Exportação de Dados para que possa acessar seu Azure Key Vault. Este script mostra a URL do Key Vault necessária para criar o Perfil de Exportação que será usado para acessar a cadeia de conexão.

Antes de executar o script, substitua espaços reservados pela variáveis a seguir.

  • $subscriptionId. O grupo de recursos do Key Vault que você deseja usar. Se um grupo de recursos ainda não existe, será criado um novo com o nome que você especificar. Neste exemplo, ContosoResourceGroup1 é usado.

  • $location. Especifique o local onde o grupo de recursos está, ou deve estar localizado, como Oeste dos EUA.

  • $connectionString. A cadeia de conexão para o Banco de Dados SQL do Azure. Você pode usar a cadeia de conexão ADO.NET conforme exibida no painel do Azure.

  • $organizationIdList = lista separada por vírgulas de organizações permitidas, listada por ID da organização (organizationId), para habilitar o Serviço de Exportação de Dados. Para localizar a ID de uma organização, vá para Configurações>Personalizações>Recursos do Desenvolvedor. A ID da organização está em Informações de Referência do Ambiente.

  • $tenantId. Especifica a ID do locatário do Azure Active Directory à qual tem a assinatura do Key Vault.

Importante

Uma assinatura do Azure pode ter vários IDs de locatário do Azure Active Directory. Verifique se você selecionou a ID correta do locatário do Azure Active Directory que está associada ao ambiente que será usado para exportar dados.

Nota

Verifique se a ID de Usuário referenciada na $connectionString tem a permissão apropriada para o banco de dados SQL do Azure de destino.

# -------------------------------------------------------------------------------- #
    #  Provide the value for the following parameters before executing the script
$subscriptionId = 'ContosoSubscriptionId'    
$keyvaultName = 'ContosoKeyVault'
    $secretName = 'ContosoDataExportSecret'
    $resourceGroupName = 'ContosoResourceGroup1'
    $location = 'West US'
    $connectionString = 'AzureSQLconnectionString'
$organizationIdList = 'ContosoSalesOrg1_id, ContosoSalesOrg2_id'
$tenantId = 'tenantId'
    # -------------------------------------------------------------------------------- #

# Login to Azure account, select subscription and tenant Id
Connect-AzAccount -Tenant $tenantId -Subscription $subscriptionId

# Create new resource group if not exists.
$rgAvail = Get-AzResourceGroup -Name $resourceGroupName -Location $location -ErrorAction SilentlyContinue
if(!$rgAvail){
    New-AzResourceGroup -Name $resourceGroupName -Location $location
}

# Create new key vault if not exists.
$kvAvail = Get-AzKeyVault -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -ErrorAction SilentlyContinue
if(!$kvAvail){
    New-AzKeyVault -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -Location $location
    # Wait few seconds for DNS entry to propagate
    Start-Sleep -Seconds 15
}

# Create tags to store allowed set of Organizations.
$secretTags = @{}
foreach ($orgId in $organizationIdList.Split(',')) {
    $secretTags.Add($orgId.Trim(), $tenantId)
}

# Add or update a secret to key vault.
$secretValue = ConvertTo-SecureString $connectionString -AsPlainText -Force
$secret = Set-AzKeyVaultSecret -VaultName $keyvaultName -Name $secretName -SecretValue $secretValue -Tags $secretTags

# Authorize application to access key vault.
$servicePrincipal = 'b861dbcc-a7ef-4219-a005-0e4de4ea7dcf'
Set-AzKeyVaultAccessPolicy -VaultName $keyvaultName -ServicePrincipalName $servicePrincipal -PermissionsToSecrets get

# Display secret url.
Write-Host "Connection key vault URL is "$secret.id.TrimEnd($secret.Version)""

Como excluir todas as tabelas e procedimentos armazenados do Perfil de Exportação de Dados

Importante

Antes de executar esta instrução SQL, verifique se foram definidos valores corretamente de @prefix e @schema na declaração. O Perfil de Exportação precisará ser recriado depois que você executar esta instrução SQL.

-----------------------------------------------------------------
-- Provide the value for the following parameters
DECLARE @prefix nvarchar(32) =''
DECLARE @schema nvarchar(32) ='dbo'
-----------------------------------------------------------------

DECLARE @sql nvarchar(max) = '';

SELECT @sql += 'DROP TABLE ' + QUOTENAME([TABLE_SCHEMA]) + '.' + QUOTENAME([TABLE_NAME]) + ';'
FROM [INFORMATION_SCHEMA].[TABLES]
WHERE [TABLE_TYPE] = 'BASE TABLE' AND [TABLE_NAME] like @prefix + '_%' AND [TABLE_SCHEMA]= @schema;

PRINT @sql
EXEC SP_EXECUTESQL @sql;

PRINT 'Finished dropping all tables. Starting to drop all stored procedures now.'

SELECT @sql='';
SELECT @sql += 'DROP PROCEDURE ' + QUOTENAME([ROUTINE_SCHEMA]) + '.' + QUOTENAME([ROUTINE_NAME]) + ';'
FROM [INFORMATION_SCHEMA].[ROUTINES]
WHERE [ROUTINE_TYPE] = 'PROCEDURE' AND [ROUTINE_NAME] like @prefix + '_%' AND [ROUTINE_SCHEMA]= @schema;
PRINT @sql
EXEC SP_EXECUTESQL @sql;

PRINT 'Finished dropping all stored procedures. Starting to drop all types now.'

SELECT @sql=''; 
SELECT @sql += 'DROP TYPE ' + QUOTENAME(SCHEMA_NAME([SCHEMA_ID])) + '.' +  QUOTENAME([NAME]) + ';'
FROM SYS.TYPES
WHERE is_user_defined = 1 AND [NAME] LIKE @prefix + '_%' AND [SCHEMA_ID]=SCHEMA_ID(@schema);

PRINT @sql
EXEC SP_EXECUTESQL @sql;

Como excluir tabelas e procedimentos armazenados do Perfil de Exportação de Dados para uma entidade específica

Importante

Antes de executar esta instrução SQL, verifique se foram definidos valores corretamente de @prefix, @schema e @entityName na declaração. Neste exemplo, a tabela da entidade, tipos e procedimentos armazenados dos clientes potenciais são removidos.

-----------------------------------------------------------------
-- Provide the value for the following parameters
DECLARE @prefix nvarchar(32) ='crm'
DECLARE @schema nvarchar(32) ='dbo'
DECLARE @entityName nvarchar(32) ='lead'
-----------------------------------------------------------------
DECLARE @sql nvarchar(max) = '';

IF @prefix != '' 
BEGIN
       SET @prefix = @prefix + '_'
END

SELECT @sql += 'DROP TABLE ' + QUOTENAME([TABLE_SCHEMA]) + '.' + QUOTENAME([TABLE_NAME]) + ';'
FROM [INFORMATION_SCHEMA].[TABLES]
WHERE [TABLE_TYPE] = 'BASE TABLE' AND [TABLE_NAME] like @prefix + @entityName  AND [TABLE_SCHEMA]= @schema;
PRINT @sql
EXEC SP_EXECUTESQL @sql;
PRINT 'Finished dropping the entity. Starting to drop the types associated with the entity'

SELECT @sql='';
SELECT @sql += 'DROP TYPE ' + QUOTENAME(SCHEMA_NAME([SCHEMA_ID])) + '.' + QUOTENAME([NAME]) + ';'
FROM SYS.TYPES
WHERE
  is_user_defined = 1
  AND (
    [NAME] LIKE @prefix + @entityName +'Type' 
    OR [NAME] LIKE @prefix + @entityName +'IdType'
  )
  AND [SCHEMA_ID] = SCHEMA_ID(@schema);
PRINT @sql
EXEC SP_EXECUTESQL @sql;

Como desinstalar o Serviço de Exportação de Dados de Administrar o Power Platform

  1. Navegue até as Configurações avançadas.
  2. Selecione Configurações > Personalizações e, em seguida, selecione Soluções.
  3. Escolha DataExportService publicado pelo Microsoft Dynamics 365 e, em seguida, selecione Excluir.

Localize o id do locatário do Microsoft Entra de seu locatário

  1. Entre no Portal do Azure.
  2. Em Serviços do Azure selecione Propriedades do locatário.
  3. Selecione o valor no campo ID do locatário.

Os endereços de IP estáticos do banco de dados do Azure SQL usados pelo Serviço de Exportação de Dados

No Banco de Dados SQL do Azure, selecione Definir firewall do servidor, defina Permitir acesso aos serviços do Azure como DESATIVADO, selecione Adicionar IP do cliente e depois adicione os endereços IP apropriados para a região do seu ambiente. More information: Azure: Configurar uma regra de firewall no nível do servidor do Banco de Dados do SQL do Azure usando o Portal do Azure

Região Novo endereço IP Endereço IP antigo
Oeste dos EUA 20.245.127.60 13.64.148.9
Leste dos EUA 172.174.41.63 20.228.153.81
Leste da Ásia 20.239.192.9 104.208.84.217
Sudeste Asiático 20.24.15.60 20.205.153.14
Índia Central 20.219.158.75 20.198.113.107
Sul da Índia 52.140.54.95 104.211.204.18
Oeste da Europa 20.126.43.104 40.68.244.253
Norte da Europa 20.166.94.137 20.238.83.32
Oeste do Japão Sem alteração 104.214.144.93
Leste do Japão 52.253.104.175 20.89.138.246
Sul do Brasil 4.228.211.102 20.197.186.17
Sudeste da Austrália Sem alteração 20.70.112.80
Leste da Austrália 20.5.88.96 20.213.58.3
Canadá Central 20.220.227.230 20.151.173.107
Leste do Canadá 40.86.216.207 52.229.109.91
Oeste do Reino Unido 51.142.173.150 20.68.113.18
Sul do Reino Unido 20.117.159.198 20.117.89.184

Observação

Os clientes da América do Norte devem adicionar endereços IP a uma lista de aprovados para o leste dos EUA e o oeste dos EUA.

Para evitar interrupções na sincronização de dados, os clientes devem manter o novo endereço IP e o endereço IP antigo.

Problemas conhecidos

Registros excluídos podem ser reinseridos na tabela de entidades depois de uma falha na sincronização

Quando você recupera falhas de sincronização, os registros que tinham sido excluídos podem ser inseridos novamente na tabela de entidades de origem. Como solução alternativa para esse problema de falha na sincronização, siga estas etapas.

  1. Crie Perfis de Exportação que são habilitados para Gravação de Log de Exclusão. Recrie os Perfis de Exportação existentes que não têm Gravação de Log de Exclusão habilitada.

  2. Crie e execute uma consulta SQL no banco de dados SQL do Azure de destino que pesquise registros na tabela DeleteLog. Se um ou mais registros forem localizados, isso indicará a presença de registros excluídos.

  3. Se houver um ou mais registros na tabela do DeleteLog, crie e execute uma consulta SQL que detecte ambientes em que a ID do registro para um registro encontrado na tabela DeleteLog corresponda à ID do registro para um registro na tabela EntityName e o versionNumber no deleteLog seja maior que o versionNumber no registro na tabela EntityName. Quando houver uma correspondência de Id de registro, exclua o registro da tabela EntityName. Por exemplo, se uma ID do registro na coluna AccountId da tabela DeleteLog corresponder a uma ID do registro na coluna AccountId da tabela de entidade AccountBase e o versionNumber no DeleteLog for maior que o versionNumber na tabela da Conta, exclua o registro da tabela da entidade AccountBase.

    Importante

    Dependendo dos seus requisitos e necessidades de negócios, é recomendável executar consultas SQL para exclusão do registro, mas geralmente durante horas não operacionais.

    Consulta de exemplo para a exclusão do registro de entidade.

DELETE A FROM [dbo].[prefix_account] A
WHERE id IN (SELECT CONVERT(uniqueidentifier, recordid) FROM [dbo].[prefix_DeleteLog] DL WHERE DL.entityname ='account'
AND DL.VersionNumber > A.VersionNumber)

Entidades que não aceitam exportação de dados

As entidades listadas aqui, apesar de oferecerem suporte ao controle de alterações, não dão suporte ao uso do Serviço de Exportação de Dados.

Entity Nome da Tabela Solução alternativa
Atividade ActivityPointerBase Selecione as entidades de atividade específicas para a exportação, como Telefonema, Compromisso, E-mail, e Tarefa.

Não é possível criar uma linha maior do que o tamanho máximo de linha permitido (8.000)

Se os logs de erro mostrarem "Não é possível criar uma linha de tamanho (tamanho) maior do que o tamanho máximo de linha permitido de 8.060", significa que você excedeu o limite máximo do tamanho de linha permitido. O Serviço de Exportação de Dados não oferece suporte a um tamanho de linha maior do que o tamanho máximo de linha permitido de 8.000. Para atenuar isso, você deverá respeitar os limites de tamanho de linha.

O tamanho da cadeia de caracteres na origem é maior do que o esquema de destino para ColumnName

Se os logs de erro mostrarem a mensagem "Tamanho da cadeia de caracteres na origem maior do que o esquema de destino para [ColumnName, MaxDataLength]", o tamanho da cadeia de caracteres dos dados de origem será maior do que o destino. Se o tamanho da cadeia de caracteres dos dados de origem for maior do que o destino, ocorrerão falhas nas gravações no destino. Para atenuar esse problema, você precisará reduzir o tamanho dos dados ou aumentar o tamanho da coluna, maior do que MaxLength, manualmente no banco de dados.

Não há suporte para anexos

A exportação de anexos, como corpo de documento na tabela Anotação não é compatível.

Aviso de privacidade

Ao usar o Serviço de Exportação de Dados, quando você ativar um perfil de exportação de dados no Dynamics 365, os dados das entidades adicionadas ao perfil serão enviados ao Azure. A sincronização inicial inclui todos os dados associados às entidades adicionadas ao perfil de exportação, mas a sincronização posterior inclui somente as alterações novas, que são continuamente enviadas ao Serviço de Exportação de Dados. Os dados enviados ao Serviço de Exportação de Dados são armazenados temporariamente no Barramento de Serviço do Azure e no Armazenamento do Azure, processados no Azure Service Fabric e, por fim, sincronizados (inseridos, atualizados ou excluídos) com o banco de dados de destino especificado na sua assinatura do Azure. Após a sincronização dos dados, eles são excluídos do Barramento de Serviço do Azure e do Armazenamento do Azure. Se ocorrer uma falha durante a sincronização de dados, os dados mínimos correspondentes ao tipo de entidade, à ID de registro e ao carimbo de data/hora de sincronização são armazenados no Armazenamento do Azure para permitir o download de uma lista dos registros que não foram atualizados.

Um administrador poderá desativar o perfil de exportação de dados a qualquer momento para interromper a sincronização de dados. Além disso, um administrador pode excluir o perfil de exportação para remover os logs de registro com falha e desinstalar a solução de Serviço de Exportação de Dados para interromper seu uso.

A sincronização de dados ocorre continuamente entre o Dynamics 365 e o Serviço de Exportação de Dados de maneira segura. Os dados são criptografados, pois são continuamente trocados entre o Dynamics 365 e o Serviço de Exportação de Dados.

Os componentes e os serviços do Azure usados em conjunto com o Serviço de Exportação de Dados são descritos detalhadamente nas seções a seguir.

Microsoft Azure Centro de Confiança

Azure Service Fabric

Ele fornece a API e as VMs de computação do Azure para processar as notificações de sincronização de registros recebidas do Dynamics 365 e as processa para inserir, atualizar ou excluir dados de registros no banco de dados de destino. Os microsserviços implantados em máquinas virtuais gerenciadas pelo tempo de execução do Azure Service Fabric manipulam todos os serviços de computação relacionados à sincronização de dados.

Barramento de Serviço do Azure

Ele fornece o barramento de mensagens no qual o Dynamics 365 insere as mensagens de notificação de sincronização que são processadas pelos nós de computação no Azure Service Fabric.. Cada mensagem armazena informações, como a ID e o registro da organização, com as quais os dados serão sincronizados. Os dados no Barramento de Serviço do Azure são criptografados em repouso e são acessíveis somente pelo Serviço de Exportação de Dados.

Armazenamento de Blobs do Azure

Os dados são temporariamente armazenados no Armazenamento de Blobs do Azure, caso os dados da notificação de sincronização de registro sejam muito grandes para serem armazenados em uma mensagem ou uma falha temporária seja encontrada para processar a notificação de sincronização. Esses blobs são criptografados por meio do recurso mais recente no SDK do Armazenamento do Azure, que fornece suporte a criptografia simétrica e assimétrica, além de integração ao Azure Key Vault.

Azure SQL

O Banco de Dados SQL do Azure armazena métricas de sincronização de dados e de configuração de perfil de exportação de dados.

Confira também

Visão geral dos relacionamentos de entidade
Serviço Exportação de Dados
Blog da equipe: Introdução ao serviço Exportação de Dados