Partilhar via


Considerações sobre mapeamento de campos para fluxos de dados padrão

Ao carregar dados nas tabelas Dataverse, mapeias as colunas da consulta de origem na experiência de edição do fluxo de dados para as colunas da tabela Dataverse de destino. Para além do mapeamento dos dados, existem outras considerações e boas práticas a considerar. Neste artigo, abordamos as diferentes definições de fluxo de dados que controlam o comportamento da atualização do fluxo de dados e, como resultado, os dados na tabela de destino.

Controlando se os fluxos de dados criam ou atualizam ou inserem novos registos a cada atualização.

Cada vez que atualizas um fluxo de dados, ele recolhe registos da fonte e carrega-os no Dataverse. Se executar o fluxo de dados mais do que uma vez — dependendo de como o configura — pode:

  • Crie novos registos para cada atualização do fluxo de dados, mesmo que tais registos já existam na tabela de destinos.
  • Crie novos registos se ainda não existirem na tabela, ou atualize registos existentes se já existirem na tabela. Este comportamento denomina-se upsert.

Usar uma coluna chave indica ao fluxo de dados para inserir ou atualizar registos na tabela de destino, ao não selecionar uma chave, o fluxo de dados cria novos registos na tabela de destino.

Uma coluna chave é uma coluna única e determinística de uma linha de dados na tabela. Por exemplo, numa tabela de Ordens, se o ID da Ordem for uma coluna chave, não deves ter duas linhas com o mesmo ID de Ordem. Além disso, um ID de Ordem — digamos uma ordem com o ID 345 — deve representar apenas uma linha na tabela. Para escolher a coluna chave da tabela no Dataverse a partir do fluxo de dados, precisa de definir o campo chave na experiência Tabelas de Mapas.

Escolher um nome primário e um campo de chave ao criar uma nova tabela

A imagem seguinte mostra como pode escolher a coluna chave a preencher a partir da fonte quando criar uma nova tabela no dataflow.

A chave primária e a chave alternativa são a mesma coisa.

O campo de nome principal que vê no mapeamento de campo é para um campo de rótulo; Este campo não precisa de ser único. O campo usado na tabela para verificar duplicações é o campo que defines no campo Chave Alternativa .

Ter uma chave primária na tabela garante que, mesmo que tenhas dados duplicados no campo mapeados para a chave primária, as entradas duplicadas não serão carregadas na tabela. Este comportamento mantém uma alta qualidade dos dados na tabela. Dados de alta qualidade são essenciais para construir soluções de reporte baseadas na tabela.

O campo de nome primário

O campo principal do nome é um campo de visualização usado no Dataverse. Este campo é usado nas vistas padrão para mostrar o conteúdo da tabela noutras aplicações. Esta área não é a principal área-chave, e não deve ser considerada como tal. Este campo pode ter valores duplicados, porque é um campo de visualização. A melhor prática, no entanto, é usar um campo concatenado para mapear o campo principal do nome, assegurando assim que o nome seja plenamente explicativo.

O campo de chave alternativa é o que é usado como chave primária.

Escolher um campo de chave ao carregar para uma tabela existente

Ao mapear uma consulta de fluxo de dados para uma tabela Dataverse existente, pode escolher se e qual chave deve ser usada ao carregar dados na tabela de destino.

A imagem seguinte mostra como pode escolher a coluna chave a usar ao atualizar registos para uma tabela Dataverse existente:

Selecionar uma chave para atualizar dados para tabelas Dataverse.

Definir a coluna de ID Único de uma tabela e usá-la como campo de chave para atualizar registos em tabelas Dataverse existentes

Todas as linhas de tabelas do Microsoft Dataverse têm identificadores únicos definidos como GUIDs. Estes GUIDs são a chave principal para cada tabela. Por defeito, a chave primária de uma tabela não pode ser definida por dataflows, e é gerada automaticamente pelo Dataverse quando um registo é criado. Existem casos de uso avançados em que é desejável aproveitar a chave primária de uma tabela, por exemplo, integrando dados com fontes externas mantendo os mesmos valores de chave primária tanto na tabela externa como na tabela Dataverse.

Observação

  • Esta capacidade só está disponível ao carregar dados em tabelas existentes.
  • O campo de identificador único só aceita uma cadeia contendo valores GUID; qualquer outro tipo de dado ou valor faz com que a criação de registos falhe.

Para tirar partido do campo identificador único de uma tabela, selecione Carregar na tabela existente na página de Tabelas de Mapas enquanto cria um fluxo de dados. No exemplo mostrado na imagem seguinte, carrega os dados na tabela CustomerTransactions e utiliza a coluna TransactionID da fonte de dados como identificador único da tabela.

Note que, na caixa de seleção Select key, o identificador único — que é sempre chamado "nome da tabela + id" — da tabela pode ser selecionado. Como o nome da tabela é "CustomerTransactions", o campo do identificador único chama-se "CustomerTransactionId".

Selecionar a chave principal para inserir ou atualizar dados em tabelas Dataverse.

Uma vez selecionada, a secção de mapeamento da coluna é atualizada para incluir o identificador único como coluna de destino. Pode então mapear a coluna de origem que representa o identificador único de cada registo.

Mapear dados para a coluna Identificador Único.

Quais são bons candidatos para a área-chave

O campo chave é um valor único que representa uma linha única na tabela. É importante ter este campo porque ajuda a evitar registos duplicados na tabela. Este campo pode provir de três fontes:

  • A chave primária no sistema de origem (como OrderID no exemplo anterior). campo concatenado criado através de transformações Power Query no fluxo de dados.

    Fusão de colunas para criar uma coluna única concatenada.

  • Uma combinação de campos a selecionar na opção Chave Alternativa . Uma combinação de campos usados como campo de chave também é chamada de chave composta.

    Criar uma chave composta através do mapeamento de campos.

Remover as linhas que já não existem

Se quiseres que os dados da tua tabela estejam sempre sincronizados com os dados do sistema de origem, escolhe a opção Eliminar linhas que já não existem na saída da consulta. No entanto, esta opção abranda o fluxo de dados porque é necessária uma comparação de linhas baseada na chave primária (chave alternativa no mapeamento do campo do fluxo de dados) para que esta ação ocorra.

A opção significa que, se houver uma linha de dados na tabela que não existe na saída da consulta da atualização do próximo fluxo de dados, essa linha é removida da tabela.

Apagar linhas que já não existem.

Observação

Os fluxos de dados padrão V2 baseiam-se nos campos createdon e modifiedon para remover linhas que não existem na saída dos fluxos de dados, da tabela de destino. Se essas colunas não existirem na tabela de destinos, os registos não são eliminados.

Limitações conhecidas

  • Atualmente não é suportado o mapeamento para campos de consulta polimórficos .
  • Mapear para um campo de pesquisa multinível, ou seja, uma pesquisa que aponta para o campo de pesquisa de outra tabela, não é atualmente suportado.
  • O mapeamento para os campos Estado e Razão de Estado não é suportado atualmente.
  • Mapear dados para texto multilinha que inclui caracteres de quebra de linha não é suportado e as quebras de linha são removidas. Em vez disso, pode usar a tag <br> de quebra de linha para carregar e preservar texto em várias linhas.
  • Configurar campos de seleção única e de múltipla seleção na mesma tabela, especificando mais de um valor para o campo de seleção múltipla, não é suportado.
  • Os fluxos de dados Standard V2 baseiam-se nos campos createdon e modifiedon para remover linhas que não estão presentes na saída dos fluxos de dados, a partir da tabela de destino. Se essas colunas não existirem na tabela de destinos, os registos não são eliminados.
  • O mapeamento para campos cuja propriedade IsValidForCreate está definida para false não é suportado (por exemplo, o campo Conta da entidade Contacto).