Buscar K
Aparência
Aparência
Use a sincronização para que um registro apagado na origem também saia do HorusDW num Dataflow Incremental, sem recarregar a tabela inteira. O Dataflow guarda uma consulta que devolve as chaves que ainda existem, e um agendamento à parte marca como excluído tudo que não veio. Por que a carga Incremental não percebe exclusão está em Exclusões na origem.
SELECT que devolve só as colunas-chave, com os mesmos nomes da chave do destino:SELECT id AS PEDIDO_ID FROM pedidosConfigurar não faz rodar. A varredura só acontece no agendamento com esse contexto.
Tudo o que a consulta de chaves não devolver é marcado como excluído. Ela precisa trazer todas as chaves que uma carga Total traria: sem filtro de período, sem TOP, sem LIMIT.
-- Errado: marca como excluído todo pedido com mais de 30 dias
SELECT id AS PEDIDO_ID FROM pedidos WHERE data_emissao >= CURRENT_DATE - 30Rode as abas abaixo para ver o que cada consulta de chaves marcaria:
destino é a tabela no HorusDW e pedidos é a origem em 02/11/2026, já sem o pedido 1003, que foi apagado. Cada aba roda uma consulta de chaves e mostra o que a varredura marcaria como excluído.
A consulta errada roda sem erro e a execução fica verde. Antes de agendar, compare a contagem da consulta de chaves com a contagem de uma carga Total da mesma origem; os dois números precisam bater.
O casamento com a chave do destino é pelo nome da coluna, sem diferenciar maiúscula de minúscula, e a ordem não importa. Se o nome na origem é outro, use alias: SELECT id AS PEDIDO_ID. Numa chave composta, devolva todas as colunas:
SELECT pedido_id AS PEDIDO_ID, produto_id AS PRODUTO_ID FROM pedido_itensColuna a mais ou a menos é recusada antes de qualquer marcação. O teste mostra "Falta devolver:" e "Tire da consulta:" com os nomes.
A carga Incremental e a varredura são agendamentos separados, com frequências diferentes:
| Agendamento | Contexto | Gatilho |
|---|---|---|
| Pedidos | Incremental | Horas, a cada 1, entre 06:00 e 22:00 |
| Pedidos exclusões | Sincronizar exclusões | Diária, às 03:00 |
A varredura lê o conjunto inteiro de chaves a cada execução, então o custo acompanha o tamanho da tabela, e não o que mudou. Uma vez por noite resolve quase todo caso; duas vezes por dia, se a exclusão precisa aparecer no mesmo dia. Um mesmo Dataflow nunca roda duas vezes ao mesmo tempo: se a carga estiver rodando, a varredura espera.
A execução da varredura fica com status de sucesso mesmo quando ela para sem marcar nada. Leia a última linha do log do Dataflow nas primeiras noites:
| O log diz | O que aconteceu |
|---|---|
12 de 48320 linhas marcadas como excluidas. | a varredura marcou 12 linhas |
0 de 48320 linhas marcadas como excluidas. | nada sumiu na origem; é o comum |
Varredura recusada: ... | a varredura não fez nada, e o motivo vem na mensagem |
Na varredura, Linhas de Entrada conta as chaves lidas da origem e Linhas de Saída fica em 0; o número de linhas marcadas só aparece na mensagem. Um número alto logo na primeira noite costuma ser filtro na consulta de chaves.
Varredura recusada: A consulta de chaves nao devolveu nenhuma chave... A consulta voltou vazia, por origem vazia ou por falha de leitura (permissão, tabela renomeada). Confira a consulta com Testar consulta. Se a origem esvaziou de verdade, rode o Dataflow com Forçar execução em modo Total.
Marcou muito mais do que devia. A consulta tem filtro. Corrija a consulta e rode o Dataflow com Forçar execução em modo Total: a carga Incremental seguinte não repõe o histórico marcado.
A caixa Sincronizar exclusões não aparece. O Dataflow não é Incremental ou o destino não tem Chave Única. Em Janela com Atualizar por chave, a saída é uma carga Total periódica; ver Montar janelas em escada.
Pelo Lumo CLI
Este recurso também pode ser criado e versionado em YAML. Veja a referência de flow.