La hora de inicio y la hora de finalización configuradas en la tarea de sincronización por lotes permiten que el Reader llame a la API GetCursor de SLS para ubicar los cursores inicial y final. Este tiempo sirve para determinar el rango de lectura con base en la hora de recepción del lado del servidor de SLS. La tarea lee realmente los datos comprendidos dentro del rango de cursores, lo cual no equivale a filtrar por la columna de salida __time__.
La columna de salida __time__ proviene de log.getTime() de cada entrada de registro y representa la hora propia del registro. Las consultas en la consola de SLS suelen emplear el rango de tiempo de consulta, los comandos de consulta y las columnas de índice para generar estadísticas, generalmente basadas en la hora del registro __time__. Por lo tanto, incluso si la tarea de sincronización y la consola utilizan los mismos valores de tiempo, el rango de __time__ o el conteo de registros pueden diferir cuando ambos lados recurren a métricas de tiempo distintas.
Escenarios comunes:
Cuando la recopilación o entrega de registros sufre retrasos, se rellenan registros históricos o los relojes de los clientes son imprecisos, la hora del registro __time__ puede ser anterior o posterior a la hora de recepción del servidor de SLS. La tarea de sincronización ubica los cursores según la hora de recepción del servidor, mientras que la consola realiza consultas basadas en __time__, lo que puede producir resultados diferentes.
Cuando los datos se escriben en otro logstore mediante la transformación de datos de SLS, si el comando de transformación no establece explícitamente __time__, el __time__ del registro de destino suele conservar la hora del registro de origen en lugar de la hora de ejecución de la transformación. En este caso, la tarea de sincronización podría leer este lote de datos dentro del rango de tiempo en que la transformación escribe en el logstore de destino. Sin embargo, al consultar la consola del logstore de destino por la hora de ejecución de la transformación o por el rango de tiempo actual, es posible que estos registros no aparezcan. Resulta necesario consultar utilizando el rango real de __time__ de los registros.
Cuando el comando de consulta de la consola, las columnas de índice, el rango de tiempo y el comando de filtrado de reglas (SPL) de la tarea de sincronización no coinciden, los conteos de registros pueden diferir aunque las métricas de tiempo sean iguales.
Sugerencias para la solución de problemas:
Compruebe si el rango de tiempo de consulta de la consola, el comando de consulta, las columnas de índice, así como la hora de inicio y finalización y el comando de filtrado de reglas (SPL) de la tarea de sincronización coinciden entre sí.
Incluya tanto __time__ (hora del registro) como __tag__:__receive_time__ (el campo observable para la hora de recepción del servidor de SLS, que requiere que este campo exista en las etiquetas del registro) en la configuración de column para comparar la hora del registro con la hora de recepción del servidor.
Si los datos provienen de una transformación de datos de SLS, verifique si el comando de transformación establece explícitamente __time__ y ajuste el rango de tiempo de consulta en la consola del logstore de destino según el __time__ real.
Si el sistema descendente requiere una conciliación estricta por hora de registro, filtre o agregue los datos por __time__ después de escribirlos en el destino.
Ejemplo: el __time__ del registro de origen es 2026-06-01 10:00:00. Una tarea de transformación de datos de SLS escribe este registro en el logstore de destino a las 2026-06-12 10:00:00 sin modificar explícitamente __time__. El __time__ del registro de destino permanece como 2026-06-01 10:00:00. Si las horas de inicio y finalización de la tarea de sincronización cubren 2026-06-12 10:00:00, la tarea podría leer este registro. No obstante, al consultar el logstore de destino en la consola alrededor de 2026-06-12 10:00:00 usando __time__ como filtro, es probable que el registro no aparezca. En este caso, ajuste la hora de consulta de la consola cerca de 2026-06-01 10:00:00 o establezca explícitamente el __time__ del registro de destino durante la transformación de datos, según sus necesidades.