Tema representativo de entrevista

Entrevista de ingeniería de datos: ¿Cómo diseñarías un contrato de versionado y obsolescencia de métricas?

DatosDifícil
Equipo editorial de OfferCCPublicado Actualizado

Pregunta

Una métrica central de ingresos necesita una corrección en su definición, pero cientos de paneles y alertas todavía usan la definición antigua. Diseña un contrato de versionado y obsolescencia de métricas que cubra el descubrimiento de dependencias, la migración, la validación y el retiro final.

Planteamiento y contexto

Una métrica central de ingresos necesita una corrección en su tratamiento de reembolsos, mientras que cientos de paneles, alertas y productos de datos todavía usan la definición antigua. Diseña un contrato de versionado y obsolescencia de métricas que haga que el cambio sea explicable, migrable y reversible.

No limites la respuesta a un solo proveedor de catálogo o capa semántica. Concéntrate en definiciones, dependencias, ventanas de compatibilidad, compuertas de lanzamiento (release gates), avisos a consumidores y evidencia de retiro.

Qué evalúa el entrevistador

Límites semánticos

¿Puedes transformar el nombre de una métrica en un contrato que contenga fórmula, filtros, semántica temporal, granularidad, unidad, zona horaria, versión y propietario, en lugar de cambiar el SQL silenciosamente?

Análisis de impacto

¿Puedes enumerar paneles, alertas, exportaciones, modelos y APIs, distinguiendo las dependencias directas de las indirectas?

Gobernanza de la migración

¿Puedes ejecutar las versiones antigua y nueva en paralelo con fechas límite, aprobadores y estados de migración, en lugar de causar una ruptura repentina y oculta (big-bang break)?

Retiro verificable

¿Puedes demostrar el retiro mediante uso, conciliaciones, reproducción de alertas y evidencia de que las llamadas antiguas han desaparecido?

Preguntas de clarificación que debes hacer

  • ¿El cambio es una corrección de errores (bug fix), un cambio en la definición de negocio o una migración de fuentes?
  • ¿Finanzas, auditoría, recomputación histórica o retención legal requieren la métrica antigua?
  • ¿Los consumidores usan SQL, BI, APIs, exportaciones o características de machine learning?
  • ¿Existe un SLA interdepartamental o con clientes externos?
  • ¿Cuánto tiempo pueden ejecutarse ambas versiones y quién puede extender esa ventana?
  • Si los valores divergen, ¿hacemos rollback de la definición, de los datos o de la capa de presentación?

Marco de respuesta en 30 segundos

“Trataría la definición de la métrica como un contrato versionado que contiene fórmula, filtros, granularidad, semántica temporal y propietario. Primero construiría un grafo de dependencias y una instantánea de uso; luego publicaría una nueva versión manteniendo la antigua; cada respuesta expondría la versión y la hora de vigencia. La migración priorizaría a los consumidores de alto riesgo y usaría muestras fijas, reproducciones históricas y conciliaciones. Durante la obsolescencia (deprecation), notificaría a los propietarios y bloquearía el uso nuevo. Retiraría la métrica solo después de que las llamadas antiguas lleguen a cero, los consumidores críticos confirmen y los registros de auditoría estén completos, conservando al mismo tiempo definiciones recuperables e instantáneas de resultados.”

Análisis detallado paso a paso

Paso 1: Congelar el contrato actual

Registra el nombre de la versión antigua, fórmula, filtros, granularidad, unidad, zona horaria, fuente, frescura, propietario, sensibilidad y hora de vigencia. Genera una versión inmutable para cada cambio; nunca sobrescribas silenciosamente.

Paso 2: Construir grafos de dependencias y de riesgo

Recopila dependencias de la capa semántica, registros de consultas, metadatos de BI, trabajos programados, definiciones de alertas y llamadas a APIs. Marca a los consumidores financieros, visibles para clientes, casi en tiempo real y de machine learning; luego clasifica la migración por impacto y uso.

Paso 3: Definir la compatibilidad

Un cambio de alias o solo de visualización puede usar un alias de compatibilidad. Un cambio de fórmula, granularidad o semántica temporal obtiene una nueva versión. Las respuestas, los metadatos de exportación y la documentación devuelven la versión, la unidad y la referencia de definición para que los consumidores no tengan que adivinar.

Paso 4: Establecer compuertas para el nuevo lanzamiento

Ejecuta la nueva versión en un entorno de pruebas (sandbox) y con una cohorte pequeña de consumidores. Las compuertas verifican el análisis sintáctico de expresiones, valores de muestra, reproducción histórica, valores nulos, unidades, permisos, latencia y costo. Los propietarios y los consumidores afectados aprueban antes de la expansión.

Paso 5: Migrar y notificar

Asigna un propietario, una fecha límite y un estado a cada dependencia. Usa el estado del catálogo, verificaciones de CI, pistas de consulta (query hints) e informes recurrentes para notificar a los usuarios de la versión antigua. Bloquea nuevos paneles para que no hagan referencia a la versión antigua; las excepciones necesitan una fecha de expiración.

Paso 6: Aceptar, revertir y retirar

Compara versiones en muestras fijas, ventanas históricas y paneles críticos, explicando los cambios causados por reembolsos, datos tardíos o zonas horarias. Mantén la definición antigua y las instantáneas de resultados; pausa el retiro o regresa a la versión anterior cuando aparezcan anomalías. Retira únicamente después de que las llamadas antiguas lleguen a cero y los materiales de auditoría, confirmación de consumidores y rollback estén completos.

Ejemplo de respuesta sólida

“Congelaría la definición actual de ingresos como v1, documentando explícitamente el momento de reconocimiento, tratamiento de reembolsos, moneda, zona horaria, granularidad y propietario. Los registros de consultas y los metadatos del catálogo producirían un grafo de dependencias, marcando como de alto riesgo los informes financieros, las facturas de clientes y las alertas.

Si corregir los reembolsos cambia la fórmula, publicaría v2 en lugar de sobrescribir v1. Ambas versiones se ejecutarían en paralelo y los valores incluirían versión, unidad y frescura. CI bloquearía nuevas referencias a v1, mientras que la lista de migración registra propietarios y fechas límite. Conciliaría órdenes conocidas y meses fijos, y luego reproduciría alertas, exportaciones y APIs; cada diferencia necesita una explicación.

Una vez que los consumidores de alto riesgo confirmen, el uso de v1 sea continuamente cero y la documentación y los registros de auditoría estén completos, congelaría v1 en modo de solo lectura y establecería una fecha de apagado final. Conservaría su definición e instantáneas de resultados para que los informes históricos sigan siendo rastreables y las anomalías se puedan recuperar.”

Errores comunes

  • Editar SQL con el mismo nombre, haciendo que los informes históricos cambien de significado silenciosamente.
  • Inspeccionar solo las referencias del catálogo y pasar por alto registros de consultas, alertas, exportaciones o APIs.
  • Reutilizar una misma clave de caché o tabla de resultados para las versiones antigua y nueva.
  • Omitir campos de unidad, zona horaria, granularidad o versión, forzando a los consumidores a adivinar.
  • Enviar un anuncio sin propietarios, fechas límite ni mecanismos de aplicación.
  • Usar una diferencia promedio para ocultar la divergencia de un mes crítico o de un cliente de alto riesgo.
  • Eliminar la definición antigua antes de que sea posible la explicación histórica o el rollback.
  • Tratar una sola caída en el uso como prueba definitiva, pasando por alto trabajos por lotes (batch) y consultas de auditoría poco frecuentes.

Preguntas de seguimiento y respuestas

Pregunta de seguimiento 1: ¿Qué se considera un cambio que rompe la compatibilidad (breaking change)?

Un cambio en la fórmula, filtro, granularidad, unidad, zona horaria, confiabilidad de la fuente o semántica de permisos es un breaking change. La edición de un alias o descripción es compatible solo cuando el contrato del resultado permanece sin cambios.

Pregunta de seguimiento 2: ¿Cómo evitas que nuevos paneles adopten la versión antigua?

Marca la versión antigua como obsoleta (deprecated) y haz que CI y la capa semántica rechacen nuevas referencias. Las pistas de consulta (query hints) muestran el reemplazo; las excepciones requieren un propietario, motivo y expiración.

Pregunta de seguimiento 3: ¿Cómo demuestras que una diferencia numérica no es un error (bug)?

Reproduce muestras fijas, ventanas históricas, órdenes límite y totales de conciliación. Descompón las diferencias por reembolsos, retrasos, moneda y zona horaria, y luego obtén la aprobación formal del propietario de negocio.

Pregunta de seguimiento 4: ¿Qué pasa si un consumidor de baja frecuencia nunca migra?

Establece una fecha límite estricta basada en el riesgo y proporciona un informe de migración junto con la consulta de reemplazo. Permite extensiones controladas para consumidores de cumplimiento o facturación, registrando el motivo, aprobador y la nueva fecha.

Pregunta de seguimiento 5: ¿Se pueden responder preguntas históricas después del retiro?

Conserva definiciones inmutables, versiones, instantáneas de entrada o materiales reproducibles, y registra la versión utilizada por cada informe histórico. Eliminar un endpoint activo no elimina la evidencia de auditoría.

Fuentes públicas

Preguntas relacionadas

Recursos

Comparación de productos

Cada comparativa se basa en fuentes oficiales e incluye una fecha de revisión.

Abrir la comparativa completa