Table Upsert
Descrição
Seção intitulada “Descrição”Combina inserção e atualização em uma única operação, usando como chave de correspondência uma ou mais colunas que você designar. Para cada linha da origem: se existir no destino uma linha correspondente (com os mesmos valores de chave), ela é atualizada; caso contrário, uma nova linha é inserida.
Use esta etapa quando tiver um fluxo incremental de dados que inclua tanto registros novos quanto revisões de registros existentes, como atualizações de vendas, alterações em cadastros de funcionários ou qualquer cenário do tipo “sempre refletir o estado mais recente”. Especifique as colunas de correspondência com cuidado: linhas que compartilham os valores de chave, mas diferem nos demais, serão sobrescritas, portanto uma escolha ruim de chave pode corromper os dados sem aviso.
Parâmetros de upsert
Seção intitulada “Parâmetros de upsert”
Para definir as tabelas de origem e de destino, primeiro selecione a tabela de dados da qual extrair usando o menu suspenso Tabela de origem. Em seguida, selecione uma tabela existente como tabela de destino usando o menu suspenso Tabela de destino.
Seleção de dados da tabela de origem
Seção intitulada “Seleção de dados da tabela de origem”
O Data Mapper é usado para mapear as colunas dos dados de origem para a tabela de dados de destino.
Inspeção e preenchimento do mapeador
Seção intitulada “Inspeção e preenchimento do mapeador”O botão de menu Inspecionar origem oferece formas adicionais de mapear colunas da origem para o destino:
- Preencher ambas as tabelas de mapeamento: propaga todos os valores da tabela de dados de origem para a tabela de dados de destino. Este é o comportamento padrão.
- Preencher somente a tabela de mapeamento de origem: mapeia apenas todos os valores da tabela de dados de origem. É útil ao modificar um fluxo de trabalho existente quando a estrutura de colunas da origem mudou.
- Preencher somente a tabela de mapeamento de destino: propaga todos os valores apenas para a tabela de dados de destino.
Se as opções de colunas de origem e de destino não forem suficientes, é possível adicionar outras colunas à tabela de dados de destino de várias maneiras:
- Propagar tudo insere todas as colunas de origem na tabela de dados de destino, quer já existam ou não.
- Propagar selecionadas insere apenas as colunas de origem selecionadas.
- Clique com o botão direito no lado do destino e selecione Inserir linha para inserir uma linha imediatamente acima da linha selecionada.
- Clique com o botão direito no lado do destino e selecione Anexar linha para inserir uma linha na parte inferior (extrema direita) da tabela de dados de destino.
Exclusão de colunas
Seção intitulada “Exclusão de colunas”Para excluir colunas da tabela de dados de destino, selecione as colunas desejadas, clique com o botão direito e selecione Excluir.
Alteração da ordem das colunas
Seção intitulada “Alteração da ordem das colunas”Para reorganizar as colunas da tabela de dados de destino, selecione as colunas desejadas. Você pode usar:
- Setas de movimentação em massa: selecione a opção de movimentação desejada nas setas no canto superior direito
- Menu de contexto: clique com o botão direito e selecione Mover para o início, Mover para cima, Mover para baixo ou Mover para o final.
Reduzir o resultado apenas a registros distintos
Seção intitulada “Reduzir o resultado apenas a registros distintos”Para retornar apenas opções distintas, selecione a opção de menu Distintos. Isso exibe um conjunto de caixas de seleção para cada coluna da origem. Basta marcar a caixa ao lado da coluna correspondente para retornar apenas resultados distintos.
Dependendo da situação, vale considerar o uso de sumarização.
O processo de eliminação de duplicatas mantém o primeiro registro exclusivo encontrado e descarta os demais. Talvez você queira aplicar uma ordenação aos dados se a consistência entre execuções for importante.
Chave de atualização
Seção intitulada “Chave de atualização”A grade de colunas de destino tem uma coluna Chave de atualização, logo após o nome da coluna de destino. Marque-a nas colunas que, juntas, identificam uma linha: uma linha de origem cujos valores de chave correspondem a uma linha já existente no destino atualiza essa linha, e qualquer outra linha de origem é inserida.
Toda coluna começa marcada, então desmarque as colunas que não fazem parte da chave. Uma coluna sem a configuração Chave de atualização, como uma que o preenchimento acabou de adicionar ou que foi salva pela API sem ela, conta como chave. Pelo menos uma coluna deve permanecer marcada.
Filtros de dados da origem
Seção intitulada “Filtros de dados da origem”
Para oferecer o máximo de flexibilidade, há filtros de dados tanto nos dados de origem quanto nos dados de destino. Em conjuntos de dados maiores, filtrar linhas na origem pode ser especialmente vantajoso, pois as demais operações são executadas sobre um conjunto de dados menor.
Selecionar subconjunto de dados
Este tipo de filtro permite filtrar os dados de origem de entrada com base nas condições especificadas.
Aplicar filtro secundário aos dados de resultado
Este tipo de filtro permite aplicar um filtro aos dados de resultado já transformados, com base nas condições especificadas. Aplicar um filtro ao resultado transformado permite fazer exclusões com base em resultados de cálculos complexos, sumarizações ou funções de janela.
Divisão final da tabela de dados (limite)
O recurso de divisão de linhas permite limitar as linhas do conjunto de resultados com base em um intervalo e um ponto de partida.
Sintaxe de filtro
A sintaxe de filtro usa o Python SQLAlchemy, a mesma sintaxe das outras expressões.
Veja exemplos e funções de expressão na área Expressões.
O que é verificado ao salvar
Seção intitulada “O que é verificado ao salvar”- Pelo menos uma Chave de atualização. Caso contrário, o salvamento é recusado com At least one target column must be marked as Update Key.
- O mapeamento corresponde a uma tabela de destino existente. Quando a tabela de destino já existe, a etapa deve mapear todas as colunas dela, não mapear nenhuma coluna que a tabela não tenha e dar a cada coluna o tipo da tabela, de modo que um upsert não possa remover uma coluna da tabela, com seus dados, nem alterar o tipo de uma coluna. Numérico e moeda contam como o mesmo tipo. A recusa nomeia cada diferença, por exemplo The target columns must match the existing target table ‘customers’. The table has columns the step doesn’t map: region. Uma tabela de destino que ainda não existe, ou nomeada com uma variável, é verificada quando a etapa é executada.
- Um mapeamento vazio é preenchido para você. Salvar com uma tabela de origem escolhida, mas sem colunas de origem ou de destino, preenche o lado vazio a partir da origem, como faria Preencher ambas as tabelas de mapeamento.