Pular para o conteúdo principal

Mesclar estratégias.

upsert oferece suporte a diferentes estratégias para tabelas de estado atual. Escolha a estratégia que corresponda à integridade da fonte e à segurança da partição.

Comparação de estratégias

EstratégiaUsar quandoRisco
deltaMesclagem genérica baseada em chave.Pode verificar mais dados de destino em tabelas grandes.
delta_by_partitionA mesclagem pode restringir com segurança as partições de destino.Requer merge_partition_column correto.
replace_partitionsA origem está completa para as partições que estão sendo substituídas.Perda de dados se a integridade da fonte estiver errada.

replace_partitions é implementado com SQL Databricks INSERT INTO ... REPLACE WHERE ... SELECT. Não é um fluxo simulado com delete e insert separados e não é um caminho genérico de compatibilidade Spark.

Exemplos

mode: upsert
merge_strategy: delta
merge_keys: [order_id]
mode: upsert
merge_strategy: delta_by_partition
merge_keys: [order_id]
merge_partition_column: order_date
mode: upsert
merge_strategy: replace_partitions
merge_partition_column: order_date
replace_partitions_source_complete: true

A substituição da partição requer evidências

Use replace_partitions somente quando a origem estiver completa para cada partição do lote. Se isso não puder ser comprovado, use uma estratégia de mesclagem.

ContractForge falha quando a lista de partições afetadas excede o limite configurado de predicado. Truncar essa lista tornaria uma substituição destrutiva ambígua.