Partilhar via


Replicar dados para a Base de Dados SQL do Microsoft Azure utilizando o Serviço de Exportação de Dados

Nota

A partir de 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 será totalmente suportado até atingir o fim de suporte e o fim de vida em novembro de 2022. Mais informações: https://aka.ms/DESDeprecationBlog

O Serviço de Exportação de Dados é um serviço de suplemento disponibilizado no Microsoft AppSource que adiciona a capacidade de replicar dados da base de dados do Microsoft Dataverse num arquivo de Base de Dados SQL do Azure numa subscrição do cliente do Azure. Os destinos alvo suportados são Base de Dados SQL do Azure e SQL Server nas máquinas virtuais do Azure. O Serviço de Exportação de Dados efetua uma sincronização inicial inteligente de todos os dados e depois sincroniza-os continuamente à medida que ocorrem alterações (alterações delta) no sistema. Isto ajuda a ativar alguns cenários de análise e de relatórios sobre os dados com os dados e os serviços de análise do Azure e abre novas possibilidades de construção de soluções personalizadas aos clientes e parceiros.

Nota

É altamente encorajado que exporte os seus dados do Dataverse para o Azure Synapse Analytics e/ou Azure Data Lake Gen2 com Azure Synapse Link for Dataverse. Mais informações: Acelerar o tempo para as informações com o Azure Synapse Link for Dataverse

Pode utilizar o Serviço de Exportação de Dados com aplicações de cativação de clientes (Dynamics 365 Sales, Dynamics 365 Customer Service, Dynamics 365 Field Service, Dynamics 365 Marketing e Dynamics 365 Project Service Automation).

Para obter informações sobre a interface programática para gerir a configuração e a administração do Serviço de Exportação de Dados, consulte Exportação de Dados no guia do programador.

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

Para começar a utilizar o Serviço de Exportação de Dados, são obrigatórios os seguintes pré-requisitos.

Serviço de Base de Dados SQL do Azure

  • Uma subscrição da Base de Dados SQL do Azure do cliente. Esta subscrição tem de permitir o volume de dados que é sincronizado.

  • Definições da firewall. Recomendamos que desative Permitir o acesso aos serviços do Azure e especifique os endereços IP do cliente adequados listados neste tópico. Mais informações: Endereços IP da base de dados SQL do Azure utilizados pelo Serviço de Exportação de Dados

    Em alternativa, pode ativar Permitir o acesso aos serviços do Azure para permitir o acesso a todos os serviços do Azure.

    Para o SQL Server numa VM do Azure, a opção “Ligar ao SQL Server através da Internet” deve ser ativada. Mais informações: Azure: Ligar a uma Máquina Virtual do SQL Server no Azure

    Para além disso, configure as suas regras de firewall para permitir comunicação entre o serviço de exportação de dados e o SQL Server.

  • O utilizador da base de dados tem de ter permissões ao nível da base de dados e do esquema de acordo com as tabelas seguintes. O utilizador da base de dados é utilizado na cadeia de ligação de exportação de dados.

    Permissões de base de dados necessárias.

    Código de tipo de permissão Nome da permissão
    CRTB CRIAR TABELA
    CRTY CRIAR TIPO
    CRVW CRIAR VISTA
    CRPR CRIAR PROCEDIMENTO
    ALUS ALTERAR TODOS OS UTILIZADORES
    VWDS VER ESTADO DE BASE DE DADOS

    Permissões de esquema necessárias.

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

Serviço Cofre de Chaves do Azure

  • Subscrição do Cofre de Chaves do cliente, que é utilizada para manter a cadeia de ligação à base de dados em segurança.

  • Conceda a permissão PermissionsToSecrets à aplicação com o ID "b861dbcc-a7ef-4219-a005-0e4de4ea7dcf". Isto pode ser conseguido por execução do comando AzurePowerShell abaixo e é utilizado para aceder ao Cofre de Chaves que contém a cadeia de ligação do segredo. Mais informações: Como configurar o Azure Key Vault

  • Os segredos dentro do Key Vault devem ser etiquetados com os IDs da organização (OrgId) e de inquilino (TenantId). Isto pode ser conseguido por execução do comando AzurePowerShell do abaixo. Mais informações: Como configurar o Azure Key Vault

  • Configure as suas regras de firewall para permitir comunicação entre o serviço de exportação de dados e o Azure Key Vault.

Aplicações de interação com os clientes

  • Um ambiente de versão 9.0 ou posterior.

  • A solução Serviço de Exportação de Dados tem de estar instalada.

    • Aceda a Definições>Microsoft Appsource> procurar ou navegar para o Microsoft Dynamics 365 – Serviço de Exportação de Dados e, em seguida, selecione Obter agora.
    • Alternativamente, encontre-o em Microsoft AppSource.
  • As entidades que serão adicionadas ao Perfil de Exportação terão de ser ativadas com a monitorização de alterações. Para assegurar que uma entidade personalizada ou padrão pode ser sincronizada, vá para Personalização>Personalizar o Sistema e, em seguida, selecione a entidade. No separador Geral, certifique-se de que a opção de Monitorização de Alterações da secção Serviços de Dados está ativada.

  • Tem de ter o direito de acesso Administrador de Sistema no ambiente.

Browser

Habilite pop-ups para o domínio https://discovery.crmreplication.azure.net/ em seu navegador da Web. Isto é necessário para o início de sessão automático quando navegar para Definições > Exportar Dados.

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

Para utilizar a caraterística do Serviço de Exportação de Dados, tem de ter os seguintes serviços, credenciais e privilégios.

  • Uma subscrição. Apenas os utilizadores a quem é atribuído o direito de acesso de Administrador de Sistema podem configurar ou efetuar alterações a um Perfil de Exportação.

  • Subscrição do Azure que inclui os seguintes serviços.

    • Base de Dados SQL do Azure SQL Server em máquinas virtuais do Azure.

    • Azure Key Vault.

Importante

Para utilizar o Serviço de Exportação de Dados, as aplicações de customer engagement e serviços do Azure Key Vault terão de funcionar no mesmo inquilino e no mesmo Microsoft Entra ID. Mais informações: Integração do Azure com o Microsoft 365

O serviço de Base de Dados SQL do Azure pode estar no mesmo inquilino ou num inquilino diferente do serviço.

O que deve saber antes de utilizar o Serviço de Exportação de Dados

  • Os Perfis de Exportação têm ser eliminados e, em seguida, recriados sempre que efetuar qualquer uma das seguintes ações num ambiente.

    • Restaure um ambiente.
    • Copie (completa ou mínima) um ambiente.
    • Reponha um ambiente.
    • Mova um ambiente para um país ou região diferente.

    Para tal, elimine o Perfil de Exportação na vista PERFIS DE EXPORTAÇÃO, em seguida elimine as tabelas e os procedimentos armazenados e, em seguida, crie um novo perfil. Mais informações: Como eliminar todos os procedimentos armazenados e tabelas de Perfis de Exportação de Dados

  • O Serviço de Exportação de Dados não funciona para os ambientes de sandbox ou de produção configurados com Ativar modo de administração ativado. Mais informações: Modo de administração.

  • O Serviço de Exportação de Dados não remove (elimina) as tabelas, colunas ou objetos de procedimento armazenado na base de dados Azure SQL de destino quando ocorrem as seguintes ações.

Perfil de Exportação

Para exportar dados a partir das aplicações de interação com os clientes, o administrador cria um Perfil de Exportação. Podem ser criados e ativados vários perfis para sincronizar os dados simultaneamente em diferentes bases de dados de destino.

O Perfil de Exportação é o conceito básico do Serviço de Exportação de Dados. O Perfil de Exportação recolhe informações de definição e configuração para sincronizar dados com as bases de dados de destino. No contexto do Perfil de Exportação, o administrador fornece uma lista de entidades a ser exportadas para a base de dados de destino. Depois de ativado, o Perfil de Exportação começa a sincronizar automaticamente os dados. Inicialmente, são exportados todos os dados que correspondem a cada entidade selecionada. Depois, apenas são sincronizadas as alterações aos dados, continuamente, quase em tempo real, à medida que ocorrem nos registos ou metadados da entidade nas aplicações de interação com os clientes, através de um mecanismo de emissão via push. Consequentemente, não tem de configurar uma agenda para obter os dados das aplicações de interação com os clientes.

Apenas as entidades que tenham a monitorização de alterações ativada podem ser adicionadas ao Perfil de Exportação. Note que quase todas as entidades padrão que captam dados têm a monitorização de alterações ativada. A monitorização de alterações tem de ser ativada explicitamente nas entidades personalizadas para que as possa adicionar ao Perfil de Exportação. Para saber mais, veja: Ativar a monitorização de alterações para controlar a sincronização de dados

O Serviço de Exportação de Dados sincroniza tanto os metadados como os dados. Cada entidade corresponde a uma tabela e cada campo corresponde a uma coluna da tabela da base de dados de destino. Os nomes de tabelas e colunas utilizam o nome de esquema dos metadados.

Depois de ativada, um Perfil de Exportação recolhe estatísticas de sincronização de dados que ajudam a dar visibilidade operacional e ao diagnóstico dos dados exportados.

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

Categoria Funcionalidade Tipos de dados suportados:
Sincronização Inicial Metadados - Tipos de Dados Básicos Tipos de dados de Número Inteiro, Número de Vírgula Flutuante, Número Decimal, Uma Linha de Texto, Várias Linhas de Texto, Data e Hora.
Sincronização Inicial Metadados - Tipos de Dados Avançados Moeda, PartyList, Conjunto de Opções, Razão do Estado, Pesquisa (incluindo as pesquisas do tipo Cliente e Relativo a). PartyList só está disponível para exportação na versão 8.1 ou superior.
Sincronização Inicial Dados - Tipos Básicos Todos os tipos de dados básicos
Sincronização Inicial Dados - Tipos Avançados Todos os tipos de dados avançados
Sincronização Delta Modificar o Esquema - Tipos Básicos Alteração adicionar ou modificar campo, todos os tipos de dados básicos.
Sincronização Delta Modificar o Esquema - Tipos Avançados Alteração adicionar ou modificar campo, todos os tipos de dados avançados.
Sincronização Delta Modificar os Dados - Tipos Básicos Todos os tipos de dados básicos
Sincronização Delta Modificar os Dados - Tipos Avançados Todos os tipos de dados avançados, tais como PartyList.

Criar um Perfil de Exportação

Certifique-se de que os seguintes requisitos foram satisfeitos antes de criar um Perfil de Exportação.

  1. Aceda a Definições>Exportação de Dados.

  2. Reveja o aviso e selecione Continuar ou Cancelar, se não pretender exportar dados.

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

  4. No passo Propriedades, introduza as seguintes informações e selecione Seguinte para continuar sem ligar ao Cofre de Chaves. Selecionar Validar utiliza o URL do Key Vault que tiver fornecido ao Key Vault.

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

    • URL de conexão do Cofre da Chave. O URL do Cofre de Chaves que aponta para a cadeia de ligação armazenada com as credenciais utilizadas para ligar à base de dados de destino. Este campo é obrigatório. Mais informações: Como configurar o Azure Key Vault

      Importante

      O URL de Ligação ao Cofre de Chaves é sensível às maiúsculas e minúsculas. Introduza o URL de Ligação ao Cofre de Chaves tal como é apresentado depois de executar os comandos do Windows PowerShell neste tópico.

    • Esquema. Nome para um esquema de base de dados alternativo. Só são válidos carateres alfanuméricos. Este campo é opcional. Por predefinição, dbo é o esquema que é utilizado para a Base de Dados SQL de destino.

    • Prefixo. O prefixo a utilizar para os nomes das tabelas criadas na base de dados de destino. Isto ajuda-o a identificar facilmente as tabelas criadas para o Perfil de Exportação na base de dados de destino. Quando especificado, certifique-se de que o prefixo tem menos de 15 carateres. Este campo é opcional e só são permitidos carateres alfanuméricos.

    • Contagem de novas tentativas. O número de tentativas adicionais para inserir ou atualizar um registo na tabela de destino em caso de falha. Este campo é obrigatório. Os valores aceitáveis são 0-20 e a predefinição é 12.

    • Intervalo de novas tentativas. O número de segundos a aguardar antes de tentar repetir em caso de falha. Este campo é obrigatório. Os valores aceitáveis são 0-3600 e a predefinição é 5.

    • Escreva o log de exclusão. Definição opcional para registar os registos eliminados.

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

  5. No passo Selecionar Entidades, selecione as entidades que pretende exportar para a Base de Dados SQL de destino e, em seguida, selecione Seguinte.

    Selecionar o separador Entidades na caixa de diálogo Criar Perfil de Exportação.

  6. No passo Selecionar Relações, poderá sincronizar as relações M:M (muitos-para-muitos) existentes com as entidades que selecionou no passo anterior. Selecione Seguinte.

    Criar Perfil de Exportação – Gerir Relações - Selecionar Relações.

  7. No passo Resumo, selecione Criar e Ativar para criar o registo do perfil e para o ligar ao Cofre de Chaves, o que dá início ao processo de sincronização. Caso contrário, selecione Criar para guardar o Perfil de Exportação e o ativar mais tarde.

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

Modificar um Perfil de Exportação existente

Poderá adicionar ou remover as entidades e as relações num Perfil de Exportação existente que pretenda replicar.

  1. Aceda a Definições>Exportação de Dados.

  2. Na vista Todos os Perfis de Exportação de Dados, selecione o Perfil de Exportação que pretende alterar.

    Selecionar um Perfil de Exportação.

  3. Na barra de ferramentas Ações, selecione GERIR ENTIDADES para adicionar ou remover entidades para exportação de dados. Para adicionar ou remover relações entre entidades, selecione GERIR RELAÇÕES.

    Gerir entidades ou relações entre entidades.

  4. Selecione as entidades ou relações entre entidades que pretende adicionar ou remover.

    Selecionar as entidades ou relações entre entidades que pretende adicionar ou remover.

  5. Selecione Atualizar para submeter as suas alterações para o Perfil de Exportação.

Importante

Quando remove uma entidade ou relação entre entidades de um Perfil de Exportação, não elimina a tabela correspondente na base de dados de destino. Antes de poder readicionar uma entidade que tenha sido removida, é necessário largar a tabela correspondente na base de dados de destino. Para largar uma tabela de entidades, consulte Como eliminar tabelas e procedimentos armazenados do Perfil de Exportação de Dados para uma entidade específica.

Detalhes da tabela para a Base de Dados SQL do Azure de destino

O Serviço de Exportação de Dados cria tabelas tanto para os dados como para os metadados. É criada uma tabela para cada entidade e relação M:N que é sincronizada.

Depois de um Perfil de Exportação ser ativado, estes tabelas são criadas na base de dados de destino. Estas são tabelas de sistema às quais não serão adicionados campos SinkCreatedTime e SinkModifiedTime.

Nome da tabela Criada
<Prefixo>_GlobalOptionsetMetadata Ao ativar o Perfil de Exportação.
<Prefixo>_OptionsetMetadata Ao ativar o Perfil de Exportação.
<Prefixo>_StateMetadata Ao ativar o Perfil de Exportação.
<Prefixo>_StatusMetadata Ao ativar o Perfil de Exportação.
<Prefixo>_TargetMetadata Ao ativar o Perfil de Exportação.
<Prefixo>_AttributeMetadata Ao ativar o Perfil de Exportação.
<Prefixo>_DeleteLog Ao ativar o Perfil de Exportação, quando a opção de eliminação do registo é ativada.

Resolver problemas de sincronização

Mesmo após várias tentativas de repetição, poderão ocorrer falhas na sincronização dos registos devido a restrições de armazenamento da base de dados ou ao bloqueio da tabela devido execuções de consultas longas. Para resolver estes falhas, poderá forçar uma ressincronização apenas dos registos falhados ou uma ressincronização de todos os registos.

  1. Veja os seus perfis de exportação para procurar qualquer um que tenha falhas de sincronização de registos. Faça-o ao visualizar os perfis de dados na área Sincronização ou ao abrir um Perfil de Exportação, como este perfil que tem uma falha de sincronização de registos de entidade de contacto.

    DataExport_failed_records_exist.

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

  3. Depois de resolvido o problema, ressincronize os registos falhados.

    Nota

    A sincronização de registos falhados é uma funcionalidade de pré-visualização pública.

    • As caraterísticas de pré-visualização não se destinam à produção e poderão ter caraterísticas restritas. Estas caraterísticas estão disponíveis antes do lançamento oficial, para que os clientes possam ter acesso antecipadamente e enviar comentários.
      • Esperamos que esta funcionalidade venha a ser alterada, pelo que não deve ser utilizada em ambientes de produção. Utilize-a apenas em ambientes de teste e desenvolvimento.
      • A Microsoft não oferece suporte para esta funcionalidade de pré-visualização. O Suporte Técnico do Microsoft Dynamics 365 não poderá ajudá-lo relativamente a problemas ou perguntas. As funcionalidades de pré-visualização não se destinam a utilização para produção e estão sujeitas a termos de utilização suplementares separados.
    1. Inicie sessão no seu ambiente e vá para Definições>Exportação de Dados.

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

    3. Na barra de ferramentas Perfil de Exportação, selecione RESSINCRONIZAR REGISTOS FALHADOS.

    4. Selecione OK após a ressincronização bem-sucedida dos registos falhados 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 registos falhados ao abrir o perfil de exportação de dados e ver o contador Notificações Falhadas no separador PROPRIEDADES E DESCRIÇÃO GERAL, que deve ser 0. Selecione ATUALIZAR na barra de ferramentas Perfil de Exportação para assegurar que o valor de Notificações Falhadas está atualizado.

    Zero registos falharam a indicação.

  4. Se as falhas de sincronização registo persistirem depois de ter tentado sincronizar novamente seguindo os passos anteriores, contacte os Serviços de suporte ao cliente da Microsoft.

Processamento de erros e monitorização

Para ver o estado de sincronização de um Perfil de Exportação, vá para Definições>Exportação de Dados e abra o Perfil de Exportação. No separador ENTIDADES, é apresentado o estado de sincronização, incluindo uma coluna para Registos Falhados para os registos que não puderam ser sincronizados. Em caso de registos falhados, pode transferir uma lista desses registos, incluindo a razão do estado, selecionando REGISTOS FALHADOS na barra de comandos.

Barra de comandos Perfil de Exportação – Botão Registos Falhados.

No Perfil de Exportação pode selecionar PROPRIEDADES E DESCRIÇÃO GERAL para apresentar as propriedades do perfil. Selecione RELACIONAMENTOS para ver o estado de sincronização das relações.

Como ver informações detalhadas sobre os registos cuja sincronização falhou

Veja como os registos falhados podem ajudá-lo a determinar a causa das falhas de sincronização. Para ver os registos falhados na base de dados de destino do Azure, utilize o Explorador de Armazenamento do Azure, uma aplicação autónoma gratuita que permite trabalhar facilmente com dados de Armazenamento do Azure. Mais informações: Explorador de Armazenamento do Azure.

  1. Aceda a Definições>Exportação de Dados.

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

    Notificações falhadas.

  3. Na barra de ferramentas Ações, selecione REGISTOS FALHADOS.

    Botão da barra de ferramentas de registos falhados.

  4. Na caixa de diálogo Transferir Registos Falhados, selecione Copiar URL do Blob e, em seguida, selecione OK.

    Caixa de diálogo Transferir registos falhados.

    Nota

    O URL do blob é válido durante até 24 horas. Se o URL exceder o período de 24 horas, repita os passos descritos anteriormente para gerar um novo URL do blob.

  5. Inicie o Explorador de Armazenamento do Azure.

  6. No Explorador de Armazenamento do Azure, selecione Ligar ao Armazenamento do Azure.

  7. Cole o URL da área de transferência na caixa Ligar ao Armazenamento do Azure e, em seguida, selecione Seguinte.

  8. Na página Resumo da Ligação, selecione Ligar.

  9. O Explorador de Armazenamento do Azure estabelece ligação à base de dados de destino. Se existirem registos falhados para o Perfil de Exportação, o Explorador de Armazenamento do Azure apresenta as pastas de sincronização de registos falhados.

Como ver informações detalhadas sobre os registos cuja sincronização falhou (Pré-visualização)

Pode transferir os registos falhados diretamente a partir da interface de utilizador do Serviço de Exportação de Dados. Atualmente, esta funcionalidade está em Pré-visualização e seria importante testar e enviar comentários.

Etapas para baixar registros com falha:

  1. Identifique o perfil com os registos falhados.

    Perfis de exportação de dados.

  2. Selecione o perfil e selecione Transferir Registos Falhados (Pré-visualização) a partir da barra de menus superior.

    Transferir registos falhados (pré-visualização).

  3. Na caixa de diálogo Transferir Registos Falhados, verá uma lista ordenada dos últimos 20 (máx.) ficheiros blob. Selecione aquele que pretende transferir e selecione Ok.

    Transferir registos falhados.

  4. Depois de transferido, abra o ficheiro num editor de texto à sua escolha (por exemplo, Bloco de Notas) e veja os detalhes para conhecer as falhas.

    Exemplo de registo de erros.

Estrutura de pastas e ficheiros de registo de sincronização de registos falhados

O URL de armazenamento de Blobs do Azure aponta para uma localização com a seguinte estrutura de pastas:

  • dados. Esta pasta contém as notificações de dados falhadas e o JSON associado para os dados de registo.

  • metadados. Esta pasta contém as notificações de metadados falhadas e o JSON associado para os metadados de registo.

  • registro de falhas. Esta pasta contém registos que fornecem informações sobre a falha da sincronização e a razão pela qual a falha ocorreu.

  • ForceRefreshFailureLog. Esta pasta contém os erros da última a execução do comando Registos Falhados do Serviço de Exportação utilizado para ressincronizar os registos falhados.

  • mensagens não processáveis. Esta pasta contém as notificações de dados que não foram processadas devido à eliminação de dados ou metadados e ao JSON associado.

    As pastas failurelog e forcerefreshfailurelog têm a estrutura Ano\Mês\Dia\Hora para poder localizar rapidamente as falhas mais recentes. Todos os registos falhados com mais de 30 dias são eliminados.

    Segue-se um ficheiro de registo de exemplo que indica uma falha de sincronização do registo de entidade.

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 para as falhas de sincronização de registos

Seguem-se algumas das razões pelas quais poderão ocorrer falhas de sincronização.

  • Armazenamento insuficiente para a base de dados de destino. Antes de tentar ressincronizar os registos falhados, aumente ou liberte o armazenamento da Base de Dados SQL do Azure, conforme adequado. Quando este problema ocorrer, será registada uma mensagem semelhante ao registo de falhas.

    A base de dados 'databasename' atingiu a respetiva quota de tamanho. Crie uma partição ou elimine dados, remova índices ou consulte a documentação para conhecer resoluções possíveis.

  • Tempos limite de sincronização com o Base de Dados SQL do Azure. Isto pode ocorrer durante a sincronização inicial de um perfil de exportação de dados quando são processados grandes volumes de dados de cada vez. Quando este problema ocorre, ressincronize os registos falhados. Resolvendo problemas de sincronização

Melhores práticas quando utiliza a Base de Dados SQL do Azure com Exportação de Dados

  • Para evitar erros de sincronização devido à limitação de recursos, recomendamos que tenha um plano Base de Dados SQL do Azure Premium P1 ou mais avançado quando utiliza o Serviço de Exportação de Dados. Mais informações: Limites de recursos da Base de Dados SQL do Azure e Preços da Base de Dados SQL

  • Defina a Base de Dados SQL do Azure para utilizar o RCSI (read committed snapshot isolation) para cargas de trabalho executadas em simultâneo na base de dados de destino que executa consultas de leitura de execução longa, tais como relatórios e tarefas ETL. Isto reduz a ocorrência dos erros de tempo limite que podem ocorrer com o Serviço de Exportação de Dados devido a conflitos de leitura\escrita.

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

  • Avalia frequentemente a quantidade de fragmentação e, quando necessário, recria os índices na base de dados do Serviço de Exportação de Dados. Mais informações: Reorganizar e recriar índices

  • Atualiza periodicamente estatísticas da base de dados em tabelas e vistas indexadas na base de dados do Serviço de Exportação de Dados. Mais informações: Estatísticas de atualização

  • Monitorize a utilização da base de dados do Serviço de Exportação de Dados. Mais informações: Monitorização do desempenho

Acerca da latência da sincronização de dados

O Serviço de Exportação de Dados está arquitetado para sincronizar as alterações aos dados com a base de dados de destino utilizando um mecanismo de envio via push ao escutar as alterações à medida que ocorrem nas aplicações de cativação de clientes. O serviço tenta enviar dados via push durante alguns minutos, mas vários fatores podem influenciar a latência de sincronização ponto a ponto.

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

  • A carga de trabalho atual nas aplicações de interação com os clientes.
  • A taxa de alteração de dados nas aplicações de interação com os clientes.
  • O número de entidades adicionadas a cada perfil de exportação e os respetivos atributos.
  • Desempenho do SQL Server. Por exemplo:
    • Tempo de configuração da ligação SQL.
    • Tempo de execução da instrução SQL.

Baseado na nossa monitorização do serviço, foi observado que a maior parte da sincronização delta contínua termina ao fim de 15 minutos quando o serviço funciona com as seguintes condições:

  • A sincronização que ocorre é uma sincronização delta e não a sincronização inicial. A sincronização delta destina-se apenas às operações de alteração de dados, que incluem transações de criação, atualização e eliminação de registos. Tenha em atenção que a sincronização delta começa depois de terminada a sincronização inicial.
  • A taxa de alteração de dados máxima nas aplicações de interação com os clientes para todas as entidades no perfil de exportação é inferior a 3.000 registos por hora. Qualquer aumento repentino na taxa de alteração de dados devido a alterações em massa dos registos que excedem a taxa de alteração máxima causará latência adicional.
  • Cada entidade adicionada a um perfil de exportação tem menos de 150 atributos.
  • A execução da instrução SQL ou da ligação à base de dados termina em menos de 10 segundos. Se este limite for excedido, resultará numa latência adicional.
  • Não ocorrem erros de execução de SQL ou da ligação à base de dados de destino durante a sincronização.

Quando as condições acima são satisfeitas, 15 minutos é uma latência de sincronização típica. A Microsoft não oferece qualquer contrato de nível de serviço (SLA) para o Serviço de Exportação de Dados e não oferece quaisquer garantias ou compromissos relativos aos tempos de latência da sincronização.

Como configurar o Cofre de Chaves do Azure

Execute o script do Windows PowerShell descrito aqui como administrador de conta do Azure para dar permissão à caraterística do Serviço de Exportação de Dados para aceder ao Azue Key Vault. Este script apresenta o URL do cofre de chaves necessário para criar o Perfil de Exportação que é utilizado para aceder à cadeia de ligação.

Antes de executar o script, substitua os marcadores de posição para as seguintes variáveis.

  • $subscriptionId. O grupo de recursos do Cofre de Chaves que pretende utilizar. Se um grupo de recursos ainda não existe, será criado um novo com o nome que especificar. Neste exemplo, é utilizado ContosoResourceGroup1.

  • $location. Especifique a localização onde o grupo de recursos está localizado, ou devia estar, tal como West US.

  • $connectionString. A cadeia de ligação à Base de Dados SQL do Azure. Pode utilizar a cadeia de ligação ADO.NET que é apresentada no dashboard do Azure.

  • $organizationIdList = Lista separada por vírgulas das organizações com permissão, listadas pelo ID da organização (organizationId), para ativar para o Serviço de Exportação de Dados. Para localizar o ID de uma organização, vá para Definições>Personalizações>Recursos para Programadores. O ID da organização está em Informações de Referência do Ambiente.

  • $tenantId. Especifica o ID de inquilino do Azure Active Directory ao qual a subscrição do Key Vault pertence.

Importante

Uma subscrição do Azure pode ter vários IDs de inquilino do Azure Active Directory. Certifique-se de que seleciona o ID de inquilino do Azure Active Directory correto associado ao ambiente que utilizará para a exportação de dados.

Nota

Certifique-se de que o ID de Utilizador referenciado dentro de $connectionString tem a permissão adequada para a Base 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 eliminar todos os procedimentos armazenados e tabelas de Perfis de Exportação de Dados

Importante

Antes de executar esta instrução de SQL, certifique-se de que definiu corretamente os valores de @prefix e @schema na instrução. O Perfil de Exportação terá de ser recriado depois de 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 eliminar tabelas e procedimentos armazenados do Perfil de Exportação de Dados para uma entidade específica

Importante

Antes de executar esta instrução de SQL, certifique-se de que definiu corretamente os valores de @prefix, @schema e @entityName na instrução. Neste exemplo, os procedimentos armazenados, tipos e tabela de entidades de oportunidades 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 para as Definições avançadas.
  2. Selecione Definições > Personalizaçõese, em seguida selecione Soluções.
  3. Escolha DataExportService publicado pelo Microsoft Dynamics 365 e, em seguida, selecione Eliminar.

Localizar o ID de inquilino do Microsoft Entra para o seu inquilino

  1. Inicie sessão no portal do Azure.
  2. Em Serviços do Azure, selecione Propriedades do inquilino.
  3. Selecione o valor no campo ID do Inquilino.

Endereços IP da base de dados SQL do Azure utilizados pelo Serviço de Exportação de Dados

Na Base de Dados SQL do Azure, selecione Definir firewall do servidor, alterne a opção Permitir o acesso aos serviços do Azure para DESATIVADO, selecione Adicionar IP do cliente e, em seguida, adicione os endereços IP adequados à região do seu ambiente. Mais informações: Azure: Configurar uma regra de firewall de nível de servidor da Base de Dados SQL do Azure através do Portal do Azurel

País/Região Novo Endereço IP Antigo Endereço IP
EUA Oeste 20.245.127.60 13.64.148.9
EUA Leste 172.174.41.63 20.228.153.81
Ásia Oriental 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
Europa Ocidental 20.126.43.104 40.68.244.253
Europa do Norte 20.166.94.137 20.238.83.32
Oeste do Japão Sem alterações 104.214.144.93
Leste do Japão 52.253.104.175 20.89.138.246
Brasil do Sul 4.228.211.102 20.197.186.17
Sudeste da Austrália Sem alterações 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
Reino Unido, Oeste 51.142.173.150 20.68.113.18
Reino Unido, Sul 20.117.159.198 20.117.89.184

Nota

Os clientes da América do Norte devem adicionar endereços IP a uma lista aprovada para EUA Leste e EUA Oeste.

Para impedir quaisquer perturbações à sincronização de dados, os clientes deverão manter o novo endereço IP e o endereço IP antigo.

Problemas conhecidos

Os registos eliminados poderão ser reinseridos na tabela de entidades após uma falha de sincronização

Quando recupera de falhas de sincronização, os registos que tenham sido eliminados anteriormente poderão ser reinseridos na tabela de entidades de origem. Para resolver este problema quando ocorrem falhas de sincronização, siga estes passos.

  1. Crie Perfis de Exportação ativados para Escrever Registo de Eliminações. Recrie os Perfis de Exportação existentes que não tenham Escrever Registo de Eliminações ativado.

  2. Crie e execute uma consulta SQL para a base de dados SQL do Azure de destino que procura registos na tabela DeleteLog. Se for encontrado um ou mais registos, indica a presença de registos eliminados.

  3. Se existir um ou mais registos na tabela DeleteLog, crie e execute uma consulta SQL que deteta ambientes onde o ID do registo para um registo encontrado na tabela DeleteLog corresponde ao ID do registo para um registo numa tabela EntityName e o versionNumber em deleteLog é superior ao versionNumber no registo na tabela EntityName. Quando ocorrer uma correspondência de IDs de registo, elimine o registo da tabela EntityName. Por exemplo, se um ID de registo na coluna AccountId da tabela DeleteLog corresponder a um ID de registo na coluna AccountId da tabela de entidades AccountBase e o versionNumber em DeleteLog é superior ao versionNumber na tabela Conta, elimine o registo da tabela de entidades AccountBase.

    Importante

    Consoante as necessidades e os requisitos de negócio, recomendamos que execute frequentemente as consultas SQL para a eliminação de registos, mas durante as horas não operacionais.

    Consulta de exemplo para a eliminação de registos 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 suportam a exportação de dados

As entidades listadas aqui, embora suportem a monitorização de alterações, não são suportadas para exportação de dados utilizando o Serviço de Exportação de Dados.

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

Não é possível criar uma linha superior ao tamanho máximo permitido da linha (8K)

Se os registos de erros mostrarem "Não é possível criar a dimensão (size) que é maior do que o tamanho máximo permitido da linha de 8060", está a encontrar um erro em que está a exceder o limite máximo permitido de tamanho da linha. O Serviço de Exportação de Dados não suporta um tamanho de linha superior ao tamanho máximo permitido da linha de 8k. Para mitigar esta situação, é necessário assegurar que cumpre os limites de tamanho da linha.

O comprimento da cadeia na origem é superior ao esquema de destino para ColumnName

Se os registos de erros mostrarem "O comprimento da cadeia na origem é superior ao esquema de destino para [ColumnName, MaxDataLength]" está a encontrar um problema em que o comprimento da cadeia dos dados da origem é maior que o destino. Se o comprimento da cadeia dos dados de origem for maior do que o destino, as escritas no destino vão falhar. Para mitigar este problema, tem de reduzir o tamanho dos dados ou aumentar o comprimento da coluna, maior do que o comprimento máximo manual na BD.

Não existe suporte para anexos

A exportação de anexos, tais como documentbody na tabela Anotação, não é suportada.

Aviso de privacidade

Ao utilizar o Serviço de Exportação de Dados, quando ativa um perfil de exportação de dados a partir do Dynamics 365, os dados das entidades adicionadas ao perfil são enviados para o Azure. A sincronização inicial inclui todos os dados associados às entidades adicionadas ao perfil de exportação, mas a sincronização posterior a isso inclui apenas as novas alterações, que são enviadas de forma contínua para o Serviço de Exportação de Dados. Os dados enviados para o Serviço de Exportação de Dados são armazenados temporariamente no Azure Service Bus e no Armazenamento do Azure, processados no Azure Service Fabric e, por último, sincronizados (inseridos, atualizados ou eliminados) com a base de dados de destino especificada na sua subscrição do Azure. Após a sincronização dos dados, estes são eliminados do Azure Service Bus e do Armazenamento do Azure. Se ocorrer uma falha durante a sincronização de dados, serão armazenados dados mínimos correspondentes ao tipo de entidade, ID do registo e carimbo de data/hora da sincronização no Armazenamento do Azure para permitir a transferência de uma lista dos registos que não foram atualizados.

O administrador pode desativar o perfil de exportação de dados em qualquer altura para parar a sincronização de dados. Além disso, o administrador pode eliminar o perfil de exportação para remover eventuais registos com falhas, bem como desinstalar a solução Serviço de Exportação de Dados para parar a sua utilização.

A sincronização de dados é realizada continuamente entre o Dynamics 365 e o Serviço de Exportação de Dados de uma forma segura. Os dados são encriptados à medida que são continuamente trocados entre o Dynamics 365 e o Serviço de Exportação de Dados.

Os componentes e serviços do Azure relacionados com o Serviço de Exportação de Dados são descritos em detalhe nas secções seguintes.

Microsoft Azure Central de Confiabilidade

Azure Service Fabric

Esta solução fornece a API e as VMs de computação do Azure para processar as notificações de sincronização de registos recebidas do Dynamics 365 e, em seguida, processa-as de modo a inserir, atualizar ou eliminar os dados dos registos na base de dados de destino. Os serviços de computação relacionados com a sincronização de dados são integralmente processados pelos microsserviços implementados nas máquinas virtuais geridas pelo runtime do Azure Service Fabric.

Azure Service Bus

Esta solução disponibiliza o barramento de mensagens no qual o Dynamics 365 insere as mensagens de notificação de sincronização processadas pelos nós de computação no Azure Service Fabric. Cada mensagem armazena as informações, como o ID da organização e o registo, com as quais os dados devem ser sincronizados. Os dados no Azure Service Bus são encriptados quando estão inativos e só são acessíveis pelo Serviço de Exportação de Dados.

Armazenamento de Blobs do Azure

Os dados são armazenados temporariamente no Armazenamento de Blobs do Azure para o caso de os dados da notificação de sincronização de registos serem excessivamente extensos para serem armazenados numa mensagem ou para o caso de ser detetada uma falha transitória no processamento da notificação de sincronização. Estes blobs são encriptados recorrendo à mais recente funcionalidade contida no SDK do Armazenamento do Azure, que oferece suporte e integração de encriptação simétrica e assimétrica com o Azure Key Vault.

Azure SQL

A Base de Dados SQL do Azure armazena as métricas da configuração do perfil de exportação de dados e da sincronização de dados.

Consulte também

Visão geral do Relações da entidade
Serviço Exportação de Dados
Blog da equipa: Introdução ao Exportação de Dados Service