O horário inicial e final configurados na tarefa de sincronização em lote são usados pelo Reader para chamar a API GetCursor do SLS e localizar os cursores de início e fim. Esse tempo é usado para localizar o intervalo de leitura com base no horário de recebimento do servidor SLS. A tarefa realmente lê dados dentro do intervalo do cursor, o que não equivale a filtrar pela coluna de saída __time__.
A coluna de saída __time__ vem de log.getTime() de cada entrada de log, representando o próprio tempo do log. As consultas no console SLS geralmente usam o intervalo de tempo da consulta, instruções de consulta e colunas de índice para estatísticas, baseando-se comumente no tempo do log __time__. Portanto, mesmo que a tarefa de sincronização e o console usem os mesmos valores de tempo, o intervalo __time__ ou a contagem de registros podem diferir se os dois lados usarem métricas de tempo diferentes.
Cenários comuns:
Quando há atraso na coleta ou entrega de logs, preenchimento retroativo de logs históricos ou relógios de cliente imprecisos, o tempo do log __time__ pode ser anterior ou posterior ao tempo de recebimento do servidor SLS. A tarefa de sincronização localiza cursores com base no tempo de recebimento do servidor, enquanto o console consulta com base em __time__, o que pode gerar resultados diferentes.
Quando dados são gravados em outro LogStore por meio de transformação de dados do SLS, se a instrução de transformação não definir explicitamente __time__, o __time__ do log de destino normalmente retém o tempo do log de origem em vez do tempo de execução da transformação. Nesse caso, a tarefa de sincronização pode ler esse lote de dados dentro do intervalo de tempo em que a transformação grava no LogStore de destino. No entanto, ao consultar o console do LogStore de destino pelo tempo de execução da transformação ou pelo intervalo de tempo atual, esses logs podem não ser encontrados. É necessário consultar pelo intervalo real de __time__ dos logs.
Quando a instrução de consulta do console, as colunas de índice, o intervalo de tempo e a instrução de filtragem de regras (SPL) na tarefa de sincronização são inconsistentes, as contagens de registros podem diferir mesmo que as métricas de tempo sejam iguais.
Sugestões de solução de problemas:
Verifique se o intervalo de tempo da consulta no console, a instrução de consulta, as colunas de índice e o horário inicial/final e a instrução de filtragem de regras (SPL) na tarefa de sincronização estão consistentes.
Inclua tanto __time__ (tempo do log) quanto __tag__:__receive_time__ (campo observável para o tempo de recebimento do servidor SLS, que exige que este campo exista nas tags do log) na configuração de column para comparar o tempo do log com o tempo de recebimento do servidor.
Se os dados vierem de transformação de dados do SLS, verifique se a instrução de transformação define explicitamente __time__ e ajuste o intervalo de tempo da consulta no console do LogStore de destino com base no __time__ real.
Se for necessária uma reconciliação rigorosa por tempo de log no downstream, filtre ou agregue por __time__ após a gravação no destino.
Exemplo: O __time__ do log de origem é 2026-06-01 10:00:00. Uma tarefa de transformação de dados do SLS grava este log no LogStore de destino às 2026-06-12 10:00:00 sem modificar explicitamente o __time__. O __time__ do log de destino permanece 2026-06-01 10:00:00. Se os horários inicial e final da tarefa de sincronização cobrirem 2026-06-12 10:00:00, a tarefa poderá ler este log. No entanto, ao consultar o LogStore de destino no console por volta de 2026-06-12 10:00:00 usando __time__ como filtro, este log pode não ser encontrado. Nesse caso, ajuste o tempo da consulta no console para cerca de 2026-06-01 10:00:00, ou defina explicitamente o __time__ do log de destino durante a transformação de dados conforme necessário.