Rellena primero en un destino aparte, valida contra la tabla existente y luego intercambia. Procesa por trozos por partición en lugar de un único job enorme, ejecútalos con concurrencia acotada para no ahogar las cargas de producción, y haz cada trozo idempotente para poder reintentar en el sitio. Sigue el progreso de forma explícita, y cuenta con que los atributos de dimensión y los datos de origen pueden haber cambiado desde entonces.
Por qué lo preguntan los entrevistadores
Los rellenos históricos son un rito de paso y una forma habitual de provocar un segundo incidente. Los entrevistadores quieren trozos, aislamiento de recursos respecto a producción y validación antes del intercambio. También están tanteando si reconoces que recalcular el histórico no siempre es reproducible, porque dimensiones, tipos de cambio y registros de origen pueden haber cambiado por debajo.
Cómo estructurar tu respuesta
- Escribe en una tabla sombra para que producción quede intacta.
- Trocea por partición y acota la concurrencia para proteger las cargas en vivo.
- Haz cada trozo idempotente y reintentable de forma independiente.
- Valida reconciliando contra agregados que ya se sepan buenos.
- Intercambia de forma atómica y guarda la tabla antigua durante una ventana de rollback.
Ejemplo de respuesta
Nunca relleno en el sitio. Construyo en una tabla sombra, valido y luego intercambio con un rename atómico o moviendo el puntero de una vista, guardando la antigua una semana por si alguien detecta una discrepancia. La ejecución en sí se trocea por partición, normalmente mensual o semanal según el volumen, con quizá cuatro corriendo a la vez, porque la forma más rápida de provocar un segundo incidente es saturar el warehouse y reventar todos los jobs programados a la vez. También lo ejecuto en un warehouse o grupo de recursos aparte cuando la plataforma lo permite. La validación es la parte que la gente hace con prisas. Elijo un puñado de agregados en los que finanzas ya confía, ingresos por mes por ejemplo, y comparo lo viejo con lo nuevo, esperando diferencias solo donde aplicaba el bug. Si cambia un mes que no debería, el arreglo está mal. La otra cosa que señalo pronto es que el histórico no siempre es reproducible: si la dimensión es de tipo 1 y se sobrescribió, recalcular el pasado te da los atributos de hoy, no los históricos.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Cómo evitas que un relleno histórico ahogue tus cargas de producción?
- ¿Y si el sistema origen ya no conserva los datos crudos?
- ¿Cómo comunicarías a los interesados un cambio en los números históricos?
Más preguntas para Ingeniero de datos
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas