Un esquema en estrella tiene una tabla de hechos rodeada de tablas de dimensión desnormalizadas, así que la mayoría de las consultas necesitan un solo join por dimensión. El copo de nieve normaliza una dimensión en subtablas, lo que ahorra almacenamiento y centraliza atributos compartidos pero añade joins. En un warehouse columnar el almacenamiento es barato y los joins cuestan más que la duplicación, así que la estrella es el valor por defecto. Pasa a copo de nieve cuando la dimensión es realmente grande, jerárquica o compartida por muchos marts.
Por qué lo preguntan los entrevistadores
Los entrevistadores usan esto para ver si sabes razonar sobre compromisos físicos en vez de recitar a Kimball. Las mejores respuestas señalan que la compresión columnar abarata las dimensiones desnormalizadas, que los motores de consulta manejan bien los broadcast joins sobre dimensiones pequeñas, y que el argumento real a favor de la estrella es la usabilidad para el analista más que el rendimiento puro.
Cómo estructurar tu respuesta
- Describe la forma de estrella y por qué es amable con el analista.
- Explica el copo de nieve como normalización de las dimensiones.
- Argumenta el compromiso en términos de joins frente a almacenamiento en motores columnares.
- Da un caso concreto donde el copo de nieve es lo correcto.
- Menciona el grano como la decisión que precede a ambos.
Ejemplo de respuesta
Una estrella es una tabla de hechos con un grano definido y dimensiones desnormalizadas colgando de ella, así que el analista escribe un join por dimensión y obtiene nombres de columna legibles. Yo tomo eso por defecto, porque en un warehouse columnar repetir el nombre de un país en dos millones de filas comprime hasta casi nada, y la dimensión pequeña se hace broadcast igualmente. El copo de nieve tiene sentido cuando la dimensión es de verdad grande y jerárquica, por ejemplo una dimensión de producto con un árbol de categorías que varios marts necesitan compartir, ya que mantener esa jerarquía en un solo sitio es mejor que duplicarla en cinco. Lo que yo plantearía antes que cualquiera de las dos es el grano. Decidir que la tabla de hechos es una fila por línea de pedido y no por pedido determina todo lo que viene después, y equivocarse ahí es lo que produce el clásico bug de ingresos contados dos veces. He tenido que reconstruir un mart porque el grano estaba mezclado, y eso es mucho más caro que cualquier debate sobre normalización.
¿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 decides el grano de una tabla de hechos?
- ¿Qué es una tabla de hechos sin métricas y cuándo la usarías?
- ¿Cómo modelas una relación de muchos a muchos entre hecho y dimensión?
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