Saltar al contenido
Telemetry
Calidad de datos receta SQL

Buscar ID de eventos duplicados

Identifique identificadores de eventos entregados más de una vez y mida si el manejo de duplicados está funcionando.

Principiantetelemetry_eventsRevisado 2026-07-27Probado con Apache DataFusion 45.2.0

Revisado por el equipo de producto Telemetry en . Compatibilidad con SQL, contrato de eventos, resultados sintéticos y advertencias operativas. Revisar los estándares y la propiedad

Pregunta respondida

¿Qué ID de evento se recibieron más de una vez?

Los reintentos son normales en sistemas distribuidos. Los identificadores duplicados se convierten en un problema de calidad de los datos cuando el análisis posterior cuenta cada entrega como un nuevo resultado comercial.

Contrato de evento

Campos que espera la consulta

CampoTipoPor que existe
timestamp_utcTimestampHora de ocurrencia del evento.
event_idUtf8Identificador estable reutilizado para reintentos de entrega.
event_nameUtf8Nombre del contrato del evento.
sourceUtf8Nombre del productor.
DataFusionSQL

Copiar la consulta

sql
SELECT
  event_id,
  event_name,
  source,
  COUNT(*) AS deliveries,
  MIN(timestamp_utc) AS first_seen_at,
  MAX(timestamp_utc) AS last_seen_at
FROM telemetry_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
  AND event_id IS NOT NULL
GROUP BY event_id, event_name, source
HAVING COUNT(*) > 1
ORDER BY deliveries DESC, last_seen_at DESC
LIMIT 100;

Esta consulta de solo lectura se planifica y ejecuta en una tabla escrita vacía con Apache DataFusion 45.2.0. El resultado de la muestra determinista es sintético y se revisa por separado; valide tipos de campos, umbrales y definiciones comerciales con sus propios datos. Lea la metodología de prueba.

Resultado de la consulta

Entregas repetidas por ID de evento

El evento de factura se entregó cuatro veces y necesita un conteo idempotente en sentido descendente.

event_idevent_namesourcedeliveriesfirst_seen_atlast_seen_at
evt_8f31invoice_paidstripe_webhook412:01:0312:06:44
evt_77acjob_completedbilling_worker210:14:2210:14:39

Salida de ejemplo sintético. Ejecute la consulta con su propio esquema de eventos y umbrales antes de utilizarla para decisiones operativas.

Repeated deliveries by event ID: gráfico estático de valores sintéticos de deliveries del resultado del ejemplo Find Duplicate Event IDs
SVG indexable de la salida del ejemplo determinista. Descárguelo para ver un artículo, un runbook o una revisión de diseño con atribución.

Reproducir el ejemplo

Descargar el accesorio público

El paquete JSON incluye el contrato de evento escrito, illustrative filas de entrada, SQL exacto, resultado esperado, notas de revisión y versión del motor. El CSV contiene el resultado mostrado.

Cómo funciona el SQL

  1. 1La agrupación por event_id expone los reintentos de entrega sin asumir que los eventos que se cierran en el tiempo están duplicados.
  2. 2Incluyendo event_name y capturas de origen de productores que reutilizan accidentalmente un identificador en diferentes contratos.
  3. 3La primera y la última marca de tiempo muestran si los duplicados llegan en un breve reintento o mucho más tarde.

Casos extremos para decidir

  • No genere un nuevo ID de evento para cada reintento si los consumidores intermedios necesitan idempotencia.
  • Un identificador reutilizado en eventos no relacionados es un defecto de instrumentación, no un duplicado inofensivo.
  • Si los duplicados se eliminan antes del almacenamiento, emita un resultado de deduplicación separado para que el comportamiento de reintento siga siendo observable.

Panel recomendado

  • Estadísticas: ID de eventos duplicados en el período seleccionado
  • Barras: entregas duplicadas por fuente
  • Tabla: identificadores repetidos más recientes

Guía de alerta

Alerta cuando el volumen duplicado o el recuento máximo de entrega supera la línea base de reintento normal.

Leer configuración de alerta

Pon la receta a trabajar

Instrumentación y guías relacionadas.

Definir los datos de origen

Esquemas de eventos para este análisis.

Continuar el análisis

Ejecútelo en eventos reales.

Crea una tabla, adapta los campos y guarda el resultado.

Comience gratis, envíe eventos estructurados y utilice el resultado de la consulta como un gráfico, un widget de panel compartido o una entrada de alerta.

Obtén una clave API