deduplicate_insert
INSERT INTO (para tabelas Replicated*).
Essa configuração se aplica a inserts síncronos e assíncronos e substitui as configurações insert_deduplicate e async_insert_deduplicate.
Essa configuração tem três valores possíveis:
- disable — A desduplicação é desabilitada para a consulta
INSERT INTO. - enable — A desduplicação é habilitada para a consulta
INSERT INTO. - backward_compatible_choice — A desduplicação é habilitada se
insert_deduplicateouasync_insert_deduplicateestiverem habilitados para o tipo específico de insert.
INSERT SELECT, deduplicate_insert_select é consultado primeiro. A desduplicação também exige que a tabela de destino mantenha um log de desduplicação; consulte replicated_deduplication_window e non_replicated_deduplication_window.
deduplicate_insert_select
INSERT SELECT (para tabelas Replicated*).
Para consultas INSERT SELECT, esta configuração é considerada antes de deduplicate_insert.
Um SELECT é estável quando contém ORDER BY ALL e seu pipeline termina em um único fluxo. Um insert_deduplication_token não vazio é um substituto equivalente para a estabilidade.
Essa configuração tem quatro valores possíveis:
- disable — A desduplicação é desabilitada para a consulta
INSERT SELECT. - force_enable — A desduplicação é habilitada para a consulta
INSERT SELECT, independentemente dededuplicate_insert. Se o resultado doSELECTnão for estável e nenhum token for fornecido, uma exceção será lançada. - enable_when_possible — A desduplicação é habilitada se estiver habilitada por
deduplicate_inserte o resultado doSELECTfor estável; caso contrário, será desabilitada. - enable_even_for_bad_queries - A desduplicação é habilitada se estiver habilitada por
deduplicate_insert, independentemente de o resultado doSELECTser estável. Se o resultado doSELECTnão for estável, uma mensagem será registrada, mas a consulta será executada com desduplicação. Esta opção existe por compatibilidade retroativa. Considere usar outras opções, pois ela pode levar a resultados inesperados.