Ir para o conteúdo

Upsert Pandas

Repo PyPI - Version
Read the Docs Publish Python to PyPI

A função Upsert é uma operação fundamental em bancos de dados e sistemas de gerenciamento de dados que combina as operações de Update (Atualizar) e Insert (Inserir) em uma única etapa atômica. O nome Upsert é, literalmente, uma junção dos dois verbos.



Objetivo da Função Upsert

O principal objetivo do upsert é garantir que os dados de uma fonte de origem sejam sincronizados de forma eficiente com uma tabela de destino, sem gerar erros de duplicidade nas chaves primárias.

Ela funciona verificando a existência de um registro com base em uma Chave de Negócio (ou Chave Primária):

  • SE o registro EXISTE na tabela de destino (match na chave): Atualiza (Update) as colunas do registro existente com os novos valores da fonte de origem.

  • SE o registro NÃO EXISTE na tabela de destino (não há match na chave): Insere (Insert) o novo registro na tabela de destino.



Cenários de Uso Comuns

O Upsert é amplamente utilizado em Engenharia de Dados, ETL/ELT e Data Warehousing:

  • Sincronização de Dados: É a base para manter tabelas de dimensão em Data Warehouses atualizadas, garantindo que novos clientes sejam inseridos e que os dados de clientes existentes (como endereço ou nome) sejam corrigidos.
  • Processamento de Streams: Em sistemas de processamento em tempo real (como Apache Kafka ou Flink), o Upsert é usado para garantir que o estado de uma entidade seja consistentemente atualizado, tratando eventos novos ou modificações.
  • Pandas/PySpark: Em ambientes como PySpark (com Delta Lake) ou Pandas, a lógica Upsert é implementada para fundir (merge) DataFrames de forma eficiente.