Partilhar via


Perguntas frequentes sobre o Azure Synapse Link for Dataverse

Este artigo fornece informações sobre perguntas frequentes sobre como exportar 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 conectado do Azure?

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 quebrar o Azure Synapse Link, considere usar o recurso Consulta e analise as atualizações incrementais

Como posso aceder às minhas relações de tabelas?

Para aceder a relações muitos para muitos, a relação está disponível como uma tabela para selecionar na página Adicionar tabelas para uma nova ligação e em Gerir tabelas para uma ligação pré-existente.

Observação

Todos os dados de relacionamentos estão no modo de acréscimo apenas por padrão ao serem 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 incorre em cobranças adicionais no 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 no final do arquivo no destino na partição de arquivo correspondente. Enquanto as linhas que existiam antes da adição da coluna não são mostradas na nova coluna, as linhas novas ou atualizadas mostram a coluna recém-adicionada.

O que acontece quando excluo uma coluna?

Quando você exclui uma coluna de uma tabela na origem, a coluna não é descartada 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 terá de desassociá-la e reassociá-la.

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 em direto com formato CSV: Este é o modo predefinido. Quando você exclui uma linha de tabela nesse modo, a linha também é excluída da partição de dados correspondente no Azure Data Lake. Por outras palavras, os dados são eliminados definitivamente do destino.
  • Só anexar com o formato CSV e atualização incremental de pasta: neste modo, quando uma linha de tabela do Dataverse é eliminada, não é eliminada definitivamente 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.
  • Exportar para o formato Delta lake: o Azure Synapse Link executa uma exclusão suave nos dados durante o próximo ciclo de sincronização delta, seguida por uma exclusão rígida após 30 dias.

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

O Azure Synapse Link segue o Modelo de Dados Comum para possibilitar que os dados e seu significado sejam compartilhados entre aplicativos e processos de negócios, como Microsoft Power Apps, Power BI, Dynamics 365 e Azure. Em cada pasta CDM, metadados como um cabeçalho de coluna são armazenados no arquivo model.json. Para obter mais informações: Common Data Model e Azure Data Lake Storage Gen2 | Microsoft Learn [en]

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 no Dataverse?

O arquivo Model.json mantém o tamanho da coluna no banco de dados. 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. Fá-lo mantendo DBLength os 200 e MaxLength os 100. Aquilo que vês no Model.json é DBLength e se o usares para processos subsequentes, nunca irás alocar menos espaço para as tuas colunas do Dataverse.

Observação

Os campos de memo são definidos como varchar(max) com um comprimento máximo padrão de 9999.

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

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

Nome da Coluna Formato Tipo de dados Example
SinkCreatedOn e SinkModifiedOn M/d/AAAA H:mm:ss tt datetime 28/6/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 de uma tabela criada antes da alteração, elimine e adicione novamente a tabela.

Pode escolher diferentes comportamentos de coluna para uma coluna de Data e Hora no Dataverse, que atualiza o formato do tipo de dados. Para obter mais informações: Comportamento e formato da coluna Data e Hora

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

Este comportamento é esperado quando escolhe o modo de exportação só para acrescentar e tem tabelas sem uma coluna válida CreatedOn . 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 Dataverse onde o volume de dados é alto dentro de 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 Dataverse forem atualizadas com frequência, dividir em vários arquivos menores ajudará a melhorar o desempenho no caso de cenários de atualização no local. Delta Lake só está disponível com partição anual devido ao seu desempenho superior em comparação com o formato CSV.

O que é o modo anexar apenas e qual é a diferença entre o modo anexar apenas e no local?

Em modo de acréscimo apenas, os dados incrementais das tabelas do Dataverse são acrescentados à partição de ficheiro correspondente no lago. Para obter mais informações: Opções de Configuração Avançadas no Azure Synapse Link

Quando é que utilizo o modo anexar apenas para uma vista histórica das mudanças?

O modo Só anexar é a opção recomendada para escrever dados de tabela do Dataverse para o lake, especialmente quando os volumes de dados são elevados dentro de uma partição com dados frequentemente alterados. Mais uma vez, esta é uma opção comumente usada e altamente recomendada para clientes corporativos. Além disso, você pode optar por usar esse 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 Só anexar fornece um histórico de alterações, em vez da mais recente alteração ou atualização colocada, e permite várias séries temporais a partir de cenários de IA, como predição ou a análise de previsão com base em valores históricos.

Como faço para recuperar a linha mais recente de cada registro e excluir linhas eliminadas quando exporto dados no modo acréscimo apenas?

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

Porque é que vejo números de versão duplicados quando exporto dados utilizando o modo apenas de acréscimo?

Para o modo só anexar, se o Azure Synapse Link para Dataverse não receber uma confirmação do data lake do Azure de que os dados foram consolidados devido a qualquer motivo, como atrasos de rede, o Azure Synapse Link tentará novamente nesses cenários e consolidará os dados novamente. O consumo a jusante deve tornar-se resiliente a este cenário através da filtragem de dados utilizando SinkModifiedOn.

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

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

Quais tabelas Dataverse não são suportadas para exportação?

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

  • Anexo
  • Calendário
  • Regra de calendário

Certas tabelas do Dataverse, como postcomment, postregarding, postlike, post e postrole, não estão disponíveis para os clientes ativarem a sincronização através do Azure Synapse Link.

Em alguns casos, estas tabelas podem aparecer quando a retenção a longo prazo do Dataverse está ativada. Se isso acontecer, um subconjunto ou todos os registos dessas tabelas podem ser exportados. Este é um comportamento esperado para cenários de retenção a longo prazo.

Importante

  • Estas tabelas não devem ser selecionadas para sincronização.
  • A presença deles não indica suporte total para sincronização incremental.

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ó é suportada com perfis Delta Lake.

Estou usando o recurso exportar para delta lake, posso parar o trabalho do Apache Spark ou alterar o tempo de execução?

O trabalho de conversão Delta Lake é acionado quando há uma alteração de dados no intervalo de tempo configurado. Não há opção para 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 um ID e um valor. Os valores de pesquisa só mudam na tabela raiz. Para refletir melhor o valor de uma coluna de pesquisa, recomendamos unir com a tabela raiz original para obter o valor mais recente.

No Dataverse, as colunas calculadas mantêm apenas as informações da fórmula e o valor real depende da coluna da tabela base. Portanto, as colunas calculadas só são suportadas quando todas as colunas estão localizadas dentro da mesma tabela exportada.

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

Todas as tabelas que não têm um campo createdOn são sincronizadas usando o modo acréscimo somente por padrão. Isso inclui tabelas de relacionamento e a tabela ActivityParty.

Por que vejo a mensagem de erro - O conteúdo do diretório no caminho não pode ser listado?

  • Os dados do Dataverse são armazenados no contêiner de armazenamento conectado. Você precisa da função "Storage Blob Data Contributor" 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 usando tabelas não particionadas 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 mudar continuamente através da criação, atualização e exclusão de transações. Este erro é causado pelo arquivo subjacente que está sendo alterado quando você lê dados dele. Por isso, para tabelas com alterações contínuas, altere o pipeline de consumo para utilizar dados do instantâneo (tabelas particionadas) a consumir. Para obter mais informações: Solucionar problemas do pool SQL sem servidor

O Azure Synapse Link for Dataverse foi projetado para fins de análise. Recomendamos que os clientes usem a retenção de longo prazo para fins de arquivamento. Para obter 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 foram excluídos no Dataverse?

Para qualquer chamada direta de SQL para remover um registo, o serviço Azure Synapse Link para Dataverse não é acionado porque BPO.Delete não está a ser chamado. Para uma funcionalidade de exemplo, consulte Como limpar o acesso herdado.