Tipos de datos de eventos y valores nulos
Telemetry infiere un esquema de tabla a partir de eventos estructurados. La ingesta flexible elimina un paso de migración inicial, pero el útil SQL aún depende de significados y tipos de campos estables.
Elija un tipo duradero
Utilice cadenas para identificadores y categorías controladas, números para los valores que se calcularán, valores booleanos para hechos verdaderos de dos estados y marcas de tiempo para momentos en el tiempo.
| Valor | Campo recomendado |
|---|---|
| Duración | Numérico duration_ms |
| dinero | Monto numérico normalizado más moneda de origen |
| Identificador | Cadena, incluso cuando contiene solo dígitos |
| Resultado | Cadena controlada como success, failed o timeout |
| Bandera de característica | Booleano cuando hay exactamente dos significados |
| Hora del evento | Entrada calificada para zona horaria normalizada a timestamp_utc |
No envíe "842" por un tiempo en una implementación y 842 en otra. No reutilice status para un código HTTP en un servicio y una categoría de flujo de trabajo en otro.
Comprender los valores perdidos
El registro API elimina valores nulos, objetos vacíos y matrices vacías durante la normalización. Por lo tanto, un campo faltante significa que no se almacenó ningún valor en esa fila; no significa cero, falso, una cadena vacía o desconocido.
Utilice IS NULL cuando la ausencia sea analíticamente significativa. Utilice COALESCE solo cuando el reemplazo tenga un significado comercial defendible:
SELECT
event_name,
100.0 * SUM(CASE WHEN account_id IS NULL THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS missing_account_rate_pct
FROM product_events
GROUP BY event_name;
El receta de tasa nula de campo obligatorio agrega protección de volumen y contexto de versión de productor.
Evolucionar sin cambiar de significado
Agregar un campo que acepta valores NULL suele ser compatible. Cambiar un tipo de campo o redefinir una categoría existente no lo es. Cuando cambie un significado, introduzca un nuevo campo o schema_version y migre las consultas deliberadamente.
Los objetos anidados se convierten en campos de puntos consultables. Mantenga estable cada ruta anidada y evite matrices cuya estructura de elementos cambie entre eventos.
Revise evolución del esquema, diseño de esquema de eventos y consultando JSON anidado antes de ampliar un contrato de producción.