Share via


Perguntas frequentes do Azure Synapse Link for Dataverse

Este artigo fornece informações relativas a perguntas frequentes sobre a exportação de dados de tabela do Microsoft Dataverse para o Azure Synapse Analytics e o Azure Data Lake.

Posso executar manualmente tarefas como criar, atualizar, excluir ou definir políticas de exclusão automática para arquivos de dados no armazenamento do Azure conectado?

Os arquivos de dados não devem ser modificados por um cliente, e nenhum arquivo de cliente deve ser colocado nas pastas de dados.

Observação

Para descartar dados obsoletos e estagnados no data lake sem interromper o Azure Synapse Link, considere usar o recurso Consultar e analisar as atualizações incrementais

Como posso acessar meus relacionamentos entre tabelas?

Para acessar relacionamentos muitos para muitos, o relacionamento ficará disponível como uma tabela para seleção na página Adicionar tabelas para um novo link e em Gerenciar tabelas para um link pré-existente.

Observação

Todos os dados de relacionamento estão no modo Somente acrescentar por padrão quando escritos no formato CSV.

O Azure Synapse Link é um recurso gratuito com o Dataverse. A utilização do Azure Synapse Link for Dataverse não implica encargos adicionais do Dataverse. No entanto, considere os custos potenciais para o serviço do Azure:

O que acontece quando adiciono uma coluna?

Quando você adiciona uma nova coluna a uma tabela na origem, ela também é adicionada ao final do arquivo no destino na partição de arquivo correspondente. Embora as linhas que existiam antes da adição da coluna não sejam exibidas na nova coluna, as linhas novas ou atualizadas serão exibidas na coluna recém-adicionada.

O que acontece quando excluo uma coluna?

Quando você exclui uma coluna de uma tabela na fonte, a coluna não é excluída do destino. Em vez disso, as linhas não são mais atualizadas e são marcadas como nulas, preservando as linhas anteriores.

O que acontece se eu alterar o tipo de dados de uma coluna?

Alterar o tipo de dados de uma coluna é uma alteração interruptiva e você deverá desvincular e vincular novamente.

O que acontece quando excluo uma linha?

A exclusão de uma linha é tratada de forma diferente com base nas opções de gravação de dados escolhidas:

  • Atualização no local com formato CSV: este é o modo padrão. Quando você exclui uma linha da tabela nesse modo, a linha também será excluída da partição de dados correspondente no Azure Data Lake. Em outras palavras, os dados são excluídos permanentemente do destino.
  • Somente acrescentar com formato CSV e atualização de pasta incremental: nesse modo, quando a linha de uma tabela do Dataverse é excluída, ela não é excluída de forma definitiva do destino. Em vez disso, uma linha é adicionada e definida como isDeleted=True para o arquivo na partição de dados correspondente no Azure Data Lake.
  • Exportação para formato Delta Lake: o Azure Synapse Link executa uma exclusão temporária dos dados durante o próximo ciclo de sincronização delta, seguida por uma exclusão definitiva após 30 dias.

Por que não estou vendo um cabeçalho de coluna no arquivo exportado?

O Azure Synapse Link segue o Common Data Model para possibilitar que os dados e seu significado sejam compartilhados entre aplicativos e processos empresariais, como Microsoft Power Apps, Power BI, Dynamics 365 e Azure. Em cada pasta do CDM, metadados como um cabeçalho de coluna são armazenados no arquivo model.json. Mais informações: Common Data Model e Azure Data Lake Storage Gen2 | Microsoft Learn

Por que o arquivo Model.json aumenta ou muda de comprimento para os tipos de dados e não mantém o que está definido em Dataverse?

O Model.json mantém o comprimento do banco de dados para o tamanho da coluna. O Dataverse tem um conceito de comprimento de banco de dados para cada coluna. Se você criar uma coluna com um tamanho de 200 e depois reduzi-la para 100, o Dataverse ainda permitirá que seus dados existentes estejam presentes no Dataverse . Ele faz isso mantendo DBLength em 200 e MaxLength em 100. O que você vê no Model.json é DBLength e, se usar isso para processos downstream, você nunca provisionará menos espaço para suas colunas do Dataverse.

Observação

Os campos de memorando são definidos como varchar(max) com o tamanho máximo padrão de 9999.

Quais formatos de data e hora podem ser esperados nas tabelas do Dataverse exportadas?

Há três formatos de data e hora que podem ser esperados nas tabelas do Dataverse exportadas.

Nome da Coluna Formato Tipo de Dados Exemplo
SinkCreatedOn e SinkModifiedOn D/m/aaaa H:mm:ss tt datetime 28/06/2021 16:34:35
CreatedOn aaaa-MM-dd'T'HH:mm:ss.sssssssXXX datetimeOffset 2018-05-25T16:21:09.0000000+00:00
Todas as Outras Colunas aaaa-MM-dd'T'HH:mm:ss'Z' datetime 2021-06-25T16:21:12Z

Observação

Tipo de dados CreatedOn alterado de datetime para datetimeOffset em 29/07/2022. Para editar o formato do tipo de dados para uma tabela criada antes da alteração, remova e adicione novamente a tabela.

Você pode escolher diferentes comportamentos de coluna para uma coluna Data e Hora no Dataverse, o que atualiza o formato do tipo de dados. Mais informações: Comportamento e formato da coluna de data e hora

Por que estou vendo nomes de arquivos 1.csv ou 1_001.csv em vez de nomes de arquivos particionados de data e hora comuns para algumas tabelas do Dataverse?

Esse comportamento é esperado quando você escolhe o modo de exportação somente de acréscimo e tem tabelas sem uma coluna CreatedOn válida. Os blobs são organizados em arquivos, como 1.csv, 2.csv (empregando particionamento personalizado devido à ausência de uma data de criação válida). Quando qualquer partição se aproxima de 95% do MaxBlockPerBlobLimit, o sistema gera automaticamente um novo arquivo, ilustrado aqui como 1_001.csv.

Quando devo usar uma estratégia de partição anual ou mensal?

Para tabelas do Dataverse em que o volume de dados é alto em um ano, recomendamos que você use partições mensais. Isso resulta em arquivos menores e melhor desempenho. Além disso, se as linhas nas tabelas do Dataverse forem atualizadas com frequência, a divisão em vários arquivos menores ajudará a melhorar o desempenho no caso de cenários de atualização no local. Delta Lake está disponível somente com partição anual devido ao seu desempenho superior em comparação com o formato CSV.

O que é o modo somente acréscimo e qual é a diferença entre o modo somente acréscimo e o modo de atualização no local?

Em vez de uma atualização no local, no modo somente acréscimo, os dados incrementais de tabelas do Dataverse são acrescentados à partição de arquivo correspondente no lake. Mais informações: Opções de configuração avançada no Azure Synapse Link

Quando uso o modo somente acréscimo para uma exibição histórica de alterações?

O modo Somente acrescentar é a opção recomendada para gravar dados de tabela do Dataverse no lake, especialmente quando os volumes de dados são altos em uma partição com dados que mudam com frequência. Novamente, essa é uma opção comumente usada e altamente recomendada para clientes corporativos. Além disso, você pode optar por usar este modo para cenários em que a intenção é revisar incrementalmente as alterações do Dataverse e processar as alterações para cenários de ETL, IA e ML. O modo Somente acrescentar fornece um histórico de alterações, em vez da última alteração ou atualização no local, e permite várias séries temporais de cenários de IA, como previsão ou análises de previsão com base em valores históricos.

Como recupero a linha mais atualizada de cada registro e excluo as linhas excluídas quando exporto dados no modo somente acréscimo?

No modo Somente acrescentar, você deve identificar a versão mais recente do registro com a mesma ID usando VersionNumber e SinkModifiedOn e, em seguida, aplicar isDeleted=0 na versão mais recente.

Por que vejo números de versão duplicados quando exporto dados usando o modo somente acréscimo?

Para o modo somente acrescentar, se o Azure Synapse Link for Dataverse não receber um reconhecimento do data lake do Azure de que os dados foram confirmados por qualquer motivo, como atrasos na rede, o Azure Synapse Link vai tentar novamente esses cenários e confirmar os dados novamente. O consumo downstream deve ser resiliente a esse cenário, filtrando dados usando SinkModifiedOn.

Por que estou vendo diferenças nas colunas Sinkmodifiedon e Modifiedon?

É esperado. Modifiedon é a data e hora em que o registro está sendo alterado no Dataverse. Sinkmodifiedon é a data e hora em que o registro é modificado no data lake.

Quais tabelas do Dataverse não são compatíveis com exportação?

Qualquer tabela que não tenha o controle de alterações habilitado não terá suporte, além das seguintes tabelas do sistema:

  • Anexo
  • Calendário
  • Calendarrule

Observação

Você pode adicionar a tabela de auditoria para exportação usando o Azure Synapse Link for Dataverse. No entanto, a exportação da tabela de auditoria só é compatível com Perfis de Delta Lake.

Estou usando o recurso de exportação para delta lake, posso parar o trabalho do Apache Spark ou alterar o horário da execução?

O trabalho de conversão do Delta Lake é desencadeado quando há uma alteração de dados no intervalo de tempo configurado. Não há opção de parar ou pausar o pool do Apache Spark. No entanto, você pode modificar o intervalo de tempo após a criação do link em Gerenciar tabelas > Intervalo de tempo avançado.

As colunas de pesquisa são compostas por uma ID e um valor. Os valores de pesquisa são alterados somente na tabela raiz. Para refletir melhor o valor de uma coluna de pesquisa, recomendamos a união com a tabela raiz original para obter o valor mais recente.

Nas Dataverse, as colunas calculadas mantêm somente as informações da fórmula e o valor real depende da coluna da tabela base. Portanto, só há suporte às colunas calculadas quando todas as colunas estiverem localizadas na mesma tabela exportada.

Quais tabelas do Dataverse usam o modo somente acréscimo por padrão?

Todas as tabelas que não tenham um campo createdOn serão sincronizadas usando o modo Somente acrescentar por padrão. Isso inclui tabelas de relacionamento e a tabela ActivityParty.

Por que vejo a mensagem de erro "Não é possível listar o conteúdo do diretório no caminho"?

  • Os dados do Dataverse são armazenados no contêiner de armazenamento conectado. Você precisa da função "Colaborador de Dados do Blob de Armazenamento" na conta de armazenamento vinculada para executar operações de leitura e consulta por meio do Synapse Workspace.
  • Se você optar por exportar dados com o formato Delta Lake, seu arquivo CSV será limpo após a conversão do Delta Lake. Você precisa consultar dados com tabelas non_partitioned por meio do Synapse Workspace.

Por que vejo a mensagem de erro – não é possível carregar em massa porque o arquivo está incompleto ou não pôde ser lido (somente arquivo CSV)?

Os dados do Dataverse podem ser alterados continuamente por meio de transações de criação, atualização e exclusão. Esse erro é causado pela alteração do arquivo subjacente quando você lê dados dele. Portanto, para tabelas com alterações contínuas, altere seu pipeline de consumo para usar dados de instantâneos (tabelas particionadas) para consumir. Mais informações: Solucionar problemas de pool de SQL sem servidor

O Azure Synapse Link for Dataverse foi criado para fins de análise. Recomendamos que os clientes usem a retenção de longo prazo para fins de arquivamento. Mais informações: Visão geral da retenção de dados de longo prazo do Dataverse

Por que não vejo alterações de dados no data lake quando os registros são excluídos no Dataverse?

Para qualquer chamada SQL direta para remover um registro, o serviço Azure Synapse Link for Dataverse não é desencadeado porque BPO.Delete não está sendo chamado. Para obter um recurso de exemplo, acesse Como limpar o acesso herdado.