continuous learning company
Voltar para publicações
Necy Vieira
Necy Vieira Conheça o autor

Como Carregar Seus Dados: Incremental, Full, Append, Overwrite e Upsert

Carregar dados não é só copiar de um lugar para outro. Conheça as cinco estratégias de carga mais usadas, veja como cada uma funciona com exemplos simples e aprenda a escolher a ideal para o seu cenário.

01/10/2026 Engenharia de Dados
Infográfico Como Carregar Seus Dados com as cinco estratégias de carga: Incremental (só o que mudou desde a última carga), Full (substitui tudo), Append (só adiciona, não altera), Overwrite (sobrescreve por completo) e Upsert (atualiza o que existe e insere o que é novo)

Todo pipeline de dados precisa responder a uma pergunta que parece simples: como os dados vão sair da origem e chegar ao destino? Copiar tudo de novo a cada execução? Levar só o que mudou? Acrescentar no final? Apagar e gravar por cima?

Essa decisão se chama estratégia de carga, e ela afeta diretamente o custo, o tempo de processamento e a confiabilidade dos seus dados. Neste artigo vamos passar pelas cinco estratégias do infográfico — Incremental, Full, Append, Overwrite e Upsert — sempre com exemplos simples.

Antes de tudo: duas perguntas diferentes

Um ponto que costuma confundir quem está começando: esses cinco nomes não respondem todos à mesma pergunta. Na prática, uma carga envolve duas decisões:

  • O que eu busco na origem? Tudo (Full) ou só o que mudou (Incremental).
  • Como eu gravo no destino? Acrescentando (Append), substituindo (Overwrite) ou mesclando (Upsert).

Por isso as estratégias se combinam. Uma carga Full normalmente é gravada com Overwrite; uma carga Incremental normalmente é gravada com Append ou com Upsert. Guarde essa ideia, porque ela deixa todo o resto mais fácil de entender.

Para os exemplos, imagine uma tabela de clientes com 1 milhão de registros, que recebe por dia cerca de 500 clientes novos e 200 alterações de cadastro.

1. Incremental: só o que mudou desde a última carga

Na carga incremental, o pipeline busca apenas os registros novos ou alterados desde a última execução. No nosso exemplo, em vez de ler 1 milhão de linhas todos os dias, ele lê só as 700 que importam.

Para isso, o pipeline precisa de uma forma de saber "onde parou". As mais comuns são:

  • Coluna de controle (marca d'água): uma coluna como data_atualizacao ou um ID sequencial. O pipeline guarda o maior valor já carregado e, na próxima execução, busca apenas o que for maior que ele.
  • CDC (Change Data Capture): captura as mudanças direto do log do banco de dados, incluindo inserções, alterações e exclusões.

Vantagem: mais eficiência e menos processamento — cargas rápidas, baratas e com menos impacto no sistema de origem.

Cuidados: depende de uma coluna de controle confiável. Se um registro for alterado sem atualizar a data, a mudança passa despercebida. Além disso, registros excluídos na origem não aparecem em uma consulta por data — é preciso CDC ou outra forma de tratá-los.

2. Full: substitui tudo

A carga full (ou carga completa) é a mais simples de todas: a cada execução, o pipeline lê todos os dados da origem e recarrega o destino por inteiro. No exemplo, o 1 milhão de clientes é lido novamente todos os dias.

Vantagem: simplicidade e consistência. O destino fica sempre igual à origem, sem precisar controlar o que mudou — inclusive as exclusões são refletidas naturalmente.

Cuidados: o custo cresce junto com a tabela. O que leva segundos com mil registros pode levar horas com bilhões.

Quando usar: na carga inicial de uma tabela, em recargas completas (por exemplo, depois de corrigir um erro) e em tabelas pequenas, como cadastros de países, categorias ou filiais.

3. Append: só adiciona, não altera

No append, os novos registros são acrescentados ao final da tabela de destino. Nada do que já estava lá é alterado ou removido. Funciona como um diário: você escreve páginas novas, mas não volta para apagar as antigas.

Vantagem: é rápido, simples e preserva todo o histórico.

Cuidados: se a mesma carga for executada duas vezes, os registros ficam duplicados. E se um dado já carregado mudar na origem, a versão antiga continua lá. Por isso, o append não é indicado para dados que sofrem atualização.

Quando usar: em dados históricos e eventos em lote que não mudam depois de registrados — logs de acesso, cliques, transações financeiras, leituras de sensores.

4. Overwrite: sobrescreve por completo

No overwrite, os dados existentes no destino são substituídos pela nova carga. O que estava antes deixa de valer; o que chegou agora passa a ser a verdade.

Ele é o par natural da carga Full, mas não precisa ser da tabela inteira: é muito comum sobrescrever apenas uma partição. Por exemplo, reprocessar só as vendas do dia 30/09 e substituir apenas essa fatia, sem tocar no restante da tabela.

Vantagem: pode ser executado quantas vezes for necessário sem gerar duplicidade — o resultado final é sempre o mesmo. Essa propriedade é chamada de idempotência e é muito valiosa em pipelines.

Cuidados: o que foi sobrescrito se perde, a menos que o formato da tabela guarde versões anteriores (como o Delta Lake faz com o time travel). Uma carga com erro ou vazia pode apagar dados bons.

5. Upsert: atualiza o que existe e insere o que é novo

Upsert é a junção de UPDATE + INSERT. Para cada registro que chega, o pipeline compara uma chave (como o id_cliente) com o destino:

  • se a chave já existe, o registro é atualizado;
  • se a chave não existe, o registro é inserido.

No nosso exemplo, os 500 clientes novos são inseridos e os 200 alterados são atualizados, sem duplicar ninguém. Em SQL, isso costuma ser feito com o comando MERGE:

MERGE INTO clientes AS destino
USING clientes_novos AS origem
  ON destino.id_cliente = origem.id_cliente
WHEN MATCHED THEN
  UPDATE SET nome = origem.nome, email = origem.email
WHEN NOT MATCHED THEN
  INSERT (id_cliente, nome, email)
  VALUES (origem.id_cliente, origem.nome, origem.email);

Vantagem: mantém os dados sempre atualizados de forma inteligente, sem duplicidade e sem precisar recarregar tudo.

Cuidados: exige uma chave única e confiável, e é uma operação mais pesada que o append, porque precisa comparar o que chega com o que já existe. Se a carga trouxer a mesma chave repetida, é preciso remover as duplicidades antes do merge.

Como escolher a estratégia ideal

Não existe uma estratégia melhor que as outras: existe a mais adequada para cada cenário. Algumas perguntas ajudam a decidir:

  • A tabela é pequena ou é a primeira carga? Full com Overwrite resolve de forma simples.
  • Os dados são eventos que nunca mudam? Incremental com Append.
  • Os registros são atualizados na origem? Incremental com Upsert.
  • Precisa reprocessar um período específico? Overwrite da partição correspondente.
  • Existe uma coluna confiável para identificar o que mudou? Se não existir, a carga incremental fica arriscada, e a Full pode ser o caminho mais seguro.

Em um mesmo projeto é normal conviver com várias delas: cadastros pequenos em Full, eventos em Append e tabelas de clientes ou pedidos em Upsert.

Resumindo

  • Incremental: busca só o que mudou. Mais eficiência, menos processamento.
  • Full: recarrega tudo. Simples, ideal para cargas iniciais e tabelas pequenas.
  • Append: só adiciona. Ideal para históricos e eventos.
  • Overwrite: substitui o que existe pela nova carga. Seguro para reexecutar.
  • Upsert: atualiza o que existe e insere o que é novo. Dados sempre atualizados sem duplicidade.

Escolher bem a estratégia de carga é o que separa um pipeline que escala com tranquilidade de um que fica mais lento e mais caro a cada dia. Dados bem carregados hoje significam mais valor amanhã.

Teste seu conhecimento

Responda às perguntas abaixo para revisar os principais pontos deste artigo.

1. O que caracteriza uma carga incremental?

2. Para qual tipo de dado a estratégia Append é mais indicada?

3. O que o Upsert faz quando a chave do registro já existe no destino?

4. Qual é o principal risco de executar duas vezes a mesma carga em modo Append?

Livros recomendados