Establece primero el grano y luego cuantifica la duplicación: agrupa por la clave prevista y cuenta las filas por encima de una. Determina si los duplicados son idénticos (problema de carga) o difieren en alguna columna (una expansión de join o un duplicado en el origen). Retrocede capa por capa hasta el primer sitio donde aparece la duplicación, arregla en esa capa, reconstruye las particiones afectadas y añade una prueba de unicidad.
Por qué lo preguntan los entrevistadores
Los ingresos duplicados son el bug clásico de warehouse, y los entrevistadores quieren una investigación metódica en vez de una corazonada. El discriminador clave es si compruebas el origen capa por capa en lugar de encajar un DISTINCT en la consulta final, y si terminas añadiendo una prueba para que el mismo defecto no pueda volver en silencio.
Cómo estructurar tu respuesta
- Define el grano previsto y cuantifica cuántas claves están duplicadas.
- Compara las filas duplicadas para ver si son idénticas o divergentes.
- Retrocede por las capas para encontrar dónde aparece primero la duplicación.
- Arregla en el origen en lugar de deduplicar al final.
- Añade una prueba de unicidad y reconstruye el histórico afectado.
Ejemplo de respuesta
Primero escribo cuál se supone que es el grano, una fila por línea de pedido por ejemplo, y luego cuento las claves con más de una fila para saber si esto son doce filas o un doce por ciento. Después comparo unos cuantos conjuntos de duplicados lado a lado, porque eso te dice la causa casi de inmediato. Si las filas son idénticas byte a byte, es un problema de carga, normalmente un job reintentado que añade en lugar de reemplazar. Si difieren en una columna, es una expansión de join, que es lo que era la última vez que vi esto: una dimensión había pasado a tipo 2 y el join no filtraba a la versión vigente, así que cada fila de hechos casaba con tres filas históricas de dimensión y los ingresos se triplicaban para los clientes afectados. Lo arreglo en la capa donde aparece primero, no con un DISTINCT en el modelo final, porque eso esconde el problema y ralentiza todas las consultas. Luego una prueba de unicidad sobre el grano y una reconstrucción de las particiones afectadas para que finanzas reciba números corregidos.
¿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 causaría esto exactamente un join a una dimensión de tipo 2?
- ¿Por qué deduplicar en el modelo final es un mal arreglo?
- ¿Cómo le dirías a finanzas que los números históricos van a cambiar?
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