Campos de alta cardinalidad
La cardinalidad es el número de valores distintos en un campo. Un campo status puede tener tres valores; un request_id puede tener un valor diferente para cada fila. La cardinalidad alta no es intrínsecamente incorrecta, pero cambia la forma en que se debe consultar y visualizar un campo.
Campos útiles de alta cardinalidad
Los identificadores de solicitud, rastreo, trabajo, cuenta y usuario pueden ser esenciales durante una investigación. Le permiten encontrar eventos relacionados o determinar quién se vio afectado. Consérvelos cuando haya un caso de uso específico de búsqueda o unión y cuando sea seguro almacenar el identificador.
No utilice un identificador único como dimensión de agrupación predeterminada para un gráfico. Un gráfico de barras con 100.000 ID de solicitud no es legible ni eficiente. Filtre por un identificador específico o agrupe por una categoría limitada y conserve el identificador en una tabla detallada.
Cardinalidad accidental
Las URL sin formato, los mensajes de excepción, el texto SQL, los agentes de usuario y las etiquetas de formato libre a menudo crean cardinalidad sin querer. Normalice /projects/abc123 a un route_template como /projects/:id. Asigne excepciones a un error_type controlado mientras mantiene diagnósticos detallados en un sistema de registro apropiado. Nunca coloque secretos o contenido de usuario sin procesar en un evento simplemente para preservar el contexto.
Las columnas divisorias merecen un cuidado especial. Un campo que es útil para filtrar no es automáticamente una buena partición. El exceso de particiones distintas crea archivos pequeños y gastos generales de planificación. Elija una dimensión estable y filtrada con frecuencia solo después de medir consultas representativas. Ver elegir columnas de partición.
Patrones de consulta
Inicie un agregado con un límite de tiempo, agrupe por dimensiones controladas e imponga una regla de volumen mínimo antes de clasificar los porcentajes. Para investigaciones, filtre directamente por el identificador de alta cardinalidad y solicite un conjunto reducido de columnas.
SELECT timestamp_utc, status, error_type, latency_ms
FROM api_requests
WHERE request_id = 'req_example'
ORDER BY timestamp_utc;
Revise los identificadores junto con guía de identificación de correlación y guía de datos sensibles.