Table Upsert
Descrição
Seção intitulada “Descrição”Combina inserção e atualização numa única operação, com base numa ou mais colunas que designe como chave de correspondência. Para cada linha da origem: se existir no destino uma linha correspondente (com os mesmos valores de chave), atualiza-a; caso contrário, insere uma nova linha.
Utilize-o quando tiver um fluxo de dados incremental que inclua registos novos e revisões de registos existentes — atualizações de vendas, alterações a registos de colaboradores ou qualquer cenário de «refletir sempre o estado mais recente». Especifique cuidadosamente as colunas de correspondência: as linhas que partilham valores de chave mas diferem noutras colunas serão substituídas, pelo que uma má escolha 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, selecione primeiro a tabela de dados da qual extrair através do menu pendente Tabela de origem. Em seguida, selecione uma tabela existente como tabela de destino através do menu pendente 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 é utilizado 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”A utilização do 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. É o comportamento predefinido.
- Preencher apenas 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 apenas 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 formas:
- Propagar tudo insere todas as colunas de origem na tabela de dados de destino, quer já existissem ou não.
- Propagar selecionadas insere apenas a(s) coluna(s) de origem selecionada(s).
- Clique com o botão direito do rato no lado do destino e selecione Inserir linha para inserir uma linha imediatamente acima da linha atualmente selecionada.
- Clique com o botão direito do rato no lado do destino e selecione Acrescentar linha para inserir uma linha no fim (extrema direita) da tabela de dados de destino.
Eliminar colunas
Seção intitulada “Eliminar colunas”Para eliminar colunas da tabela de dados de destino, selecione a(s) coluna(s) pretendida(s), clique com o botão direito do rato e selecione Eliminar.
Alterar a ordem das colunas
Seção intitulada “Alterar a ordem das colunas”Para reorganizar as colunas da tabela de dados de destino, selecione a(s) coluna(s) pretendida(s). Pode utilizar uma de duas opções:
- Setas de movimentação em bloco: selecione a opção de movimentação pretendida nas setas no canto superior direito
- Menu de contexto: clique com o botão direito do rato e selecione Mover para o início, Mover para cima, Mover para baixo ou Mover para o fim.
Reduzir o resultado apenas a registos distintos
Seção intitulada “Reduzir o resultado apenas a registos distintos”Para devolver apenas opções distintas, selecione a opção de menu Distinto. Isto apresenta um conjunto de caixas de seleção para cada coluna da origem. Basta assinalar qualquer caixa junto à coluna correspondente para devolver apenas resultados distintos.
Consoante a situação, pode ser preferível considerar a utilização de sumarização.
O processo de distinção mantém o primeiro registo único encontrado e descarta os restantes. Pode ser conveniente 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 grelha de colunas de destino tem uma coluna Chave de atualização, logo a seguir ao nome da coluna de destino. Assinale-a nas colunas que, em conjunto, identificam uma linha: uma linha de origem cujos valores de chave correspondam a uma linha já existente no destino atualiza essa linha, e qualquer outra linha de origem é inserida.
Todas as colunas começam assinaladas, por isso desassinale as colunas que não fazem parte da chave. Uma coluna sem definição de chave de atualização — uma que o preenchimento acabou de adicionar ou que foi guardada através da API sem ela — conta como chave. Pelo menos uma coluna tem de permanecer assinalada.
Filtros de dados de origem
Seção intitulada “Filtros de dados de origem”
Para permitir a máxima flexibilidade, existem filtros de dados disponíveis nos dados de origem e nos dados de destino. Em conjuntos de dados maiores, pode ser especialmente vantajoso filtrar linhas na origem, para que as restantes operações sejam executadas sobre um conjunto de dados mais pequeno.
Selecionar subconjunto de dados
Este tipo de filtro permite filtrar os dados de origem recebidos 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 depois de transformados, com base nas condições especificadas. A possibilidade de aplicar um filtro ao resultado transformado permite exclusões com base nos resultados de cálculos complexos, sumarizações ou funções de janela.
Divisão final da tabela de dados (limite)
A capacidade de divisão de linhas permite limitar as linhas do conjunto de resultados com base num intervalo e num ponto de partida.
Sintaxe de filtros
A sintaxe de filtros utiliza o Python SQLAlchemy, que é a mesma sintaxe das outras expressões.
Consulte exemplos e funções de expressão na área Expressões.
O que é verificado ao guardar
Seção intitulada “O que é verificado ao guardar”- Pelo menos uma chave de atualização. Caso contrário, guardar é 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, o passo tem de mapear todas as suas colunas, não mapear nenhuma coluna que a tabela não tenha e atribuir a cada coluna o tipo da tabela, para que um upsert não possa eliminar uma coluna da tabela, com os respetivos dados, nem alterar o tipo de uma coluna. Numérico e moeda contam como o mesmo tipo. A recusa indica 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 cujo nome é dado por uma variável, é verificada quando o passo é executado.
- Um mapeamento vazio é preenchido por si. Guardar com uma tabela de origem escolhida mas sem colunas de origem ou de destino preenche o lado vazio a partir da origem, tal como Preencher ambas as tabelas de mapeamento faria.