Considerações de mapeamento de campo para fluxos de dados padrão
Ao carregar dados em tabelas Dataverse, você mapeia 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 de dados, existem outras considerações e boas práticas a ter em conta. Neste artigo, abordamos as diferentes configuraçõ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 registros a cada atualização
Cada vez que você atualiza um fluxo de dados, ele busca registros da fonte e os carrega no Dataverse. Se você executar o fluxo de dados mais de uma vez, dependendo de como você configura o fluxo de dados, poderá:
- Crie novos registros para cada atualização de fluxo de dados, mesmo que esses registros já existam na tabela de destino.
- Crie novos registos se ainda não existirem na tabela ou atualize registos existentes se já existirem na tabela. Esse comportamento é chamado de upsert.
O uso de uma coluna de chave indica ao fluxo de dados para atualizar registros na tabela de destino, enquanto não selecionar uma chave indica ao fluxo de dados para criar novos registros na tabela de destino.
Uma coluna chave é uma coluna exclusiva e determinística de uma linha de dados na tabela. Por exemplo, em uma tabela Pedidos, se o ID do pedido for uma coluna chave, você não deverá ter duas linhas com o mesmo ID do pedido. Além disso, um ID de pedido — digamos um pedido com o ID 345 — deve representar apenas uma linha na tabela. Para escolher a coluna chave para a tabela no Dataverse a partir do fluxo de dados, você precisa definir o campo chave na experiência Tabelas de mapa.
Escolher um nome principal e um campo de chave ao criar uma nova tabela
A imagem a seguir mostra como você pode escolher a coluna de chave a ser preenchida da origem ao criar uma nova tabela no fluxo de dados.
O campo de nome primário que você vê no mapeamento de campo é para um campo de rótulo; Este campo não precisa ser exclusivo. O campo usado na tabela para verificar a duplicação é o campo definido no campo Chave alternativa.
Ter uma chave primária na tabela garante que, mesmo que você tenha dados duplicados no campo mapeado para a chave primária, as entradas duplicadas não serão carregadas na tabela. Esse comportamento mantém uma alta qualidade dos dados na tabela. Dados de alta qualidade são essenciais na construção de soluções de relatórios com base na tabela.
O campo de nome primário
O campo de nome primário é um campo de exibição usado no Dataverse. Este campo é usado em modos de exibição padrão para mostrar o conteúdo da tabela em outros aplicativos. Este campo não é o campo chave principal e não deve ser considerado como tal. Este campo pode ter valores duplicados, porque é um campo de exibição. A prática recomendada, no entanto, é usar um campo concatenado para mapear para o campo de nome primário, para que o nome seja totalmente explicativo.
O campo de chave alternativa é o que é usado como chave primária.
Escolhendo um campo-chave ao carregar em uma tabela existente
Ao mapear uma consulta de fluxo de dados para uma tabela Dataverse existente, você pode escolher se e qual chave deve ser usada ao carregar dados na tabela de destino.
A imagem a seguir mostra como você pode escolher a coluna de chave a ser usada ao atualizar registros para uma tabela Dataverse existente:
Definindo a coluna ID Exclusiva de uma tabela e usando-a como um campo-chave para atualizar registros em tabelas Dataverse existentes
Todas as linhas da tabela do Microsoft Dataverse têm identificadores exclusivos definidos como GUIDs. Esses GUIDs são a chave primária para cada tabela. Por padrão, a chave primária de uma tabela não pode ser definida por fluxos de dados e é gerada automaticamente pelo Dataverse quando um registro é criado. Há casos de uso avançados em que aproveitar a chave primária de uma tabela é desejável, por exemplo, integrando dados com fontes externas enquanto mantém os mesmos valores de chave primária na tabela externa e na tabela Dataverse.
Nota
- Esse recurso só está disponível ao carregar dados em tabelas existentes.
- O campo identificador exclusivo só aceita uma cadeia de caracteres contendo valores GUID, qualquer outro tipo de dados ou valor faz com que a criação de registro falhe.
Para aproveitar o campo de identificador exclusivo de uma tabela, selecione Carregar para uma tabela existente na página Mapear tabelas durante a criação de um fluxo de dados. No exemplo mostrado na imagem subsequente, ele carrega dados na tabela CustomerTransactions e usa a coluna TransactionID da fonte de dados como o identificador exclusivo da tabela.
Observe que, na lista suspensa Selecionar chave , o identificador exclusivo — que sempre é chamado de "tablename + id" — da tabela pode ser selecionado. Como o nome da tabela é "CustomerTransactions", o campo de identificador exclusivo é chamado "CustomerTransactionId".
Uma vez selecionada, a seção de mapeamento de coluna é atualizada para incluir o identificador exclusivo como uma coluna de destino. Em seguida, você pode mapear a coluna de origem que representa o identificador exclusivo de cada registro.
Quais são os bons candidatos para o campo-chave
O campo chave é um valor exclusivo que representa uma linha exclusiva 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 do Power Query no fluxo de dados.
Uma combinação de campos a serem selecionados na opção Chave alternativa. Uma combinação de campos usada como um campo chave também é chamada de chave composta.
Remover linhas que já não existem
Se quiser que os dados da tabela estejam sempre sincronizados com os dados do sistema de origem, escolha a opção Excluir linhas que não existem mais na saída da consulta. No entanto, essa opção diminui o fluxo de dados porque há necessidade de uma comparação de linha com base na chave primária (chave alternativa no mapeamento de campo do fluxo de dados) para que essa ação ocorra.
A opção significa que, se houver uma linha de dados na tabela que não exista na saída de consulta da próxima atualização de fluxo de dados, essa linha será removida da tabela.
Nota
Os fluxos de dados V2 padrão dependem dos createdon
campos e modifiedon
para remover linhas que não existem na saída de fluxos de dados da tabela de destino. Se essas colunas não existirem na tabela de destino, os registros não serão excluídos.
Limitações conhecidas
- Atualmente, não há suporte para mapeamento para campos de pesquisa polimórficos.
- Atualmente, não há suporte para o mapeamento para um campo de pesquisa de vários níveis, uma pesquisa que aponta para o campo de pesquisa de outra tabela.
- Atualmente, não há suporte para o mapeamento para os campos Status e Status Reason.
- Não há suporte para o mapeamento de dados em texto de várias linhas que inclua caracteres de quebra de linha e as quebras de linha são removidas. Em vez disso, você pode usar a marca
<br>
de quebra de linha para carregar e preservar texto com várias linhas. - O mapeamento para campos de Escolha configurados com a opção de seleção múltipla ativada só é suportado sob determinadas condições. O fluxo de dados carrega apenas dados para campos Escolha com a opção de seleção múltipla habilitada, e uma lista separada por vírgulas de valores (inteiros) dos rótulos é usada. Por exemplo, se os rótulos forem "Choice1, Choice2, Choice3" com valores inteiros correspondentes de "1, 2, 3", então os valores da coluna devem ser "1,3" para selecionar a primeira e a última escolhas.
- Os fluxos de dados V2 padrão dependem dos
createdon
campos emodifiedon
para remover linhas que não existem na saída de fluxos de dados da tabela de destino. Se essas colunas não existirem na tabela de destino, os registros não serão excluídos. - O mapeamento para campos cuja propriedade IsValidForCreate está definida como
false
não é suportado (por exemplo, o campo Conta da entidade Contato).