1. Glosario/

Grain

Granularidad, Nivel de detalle

El grain (granularidad) es el nivel de detalle de una fact table en un data warehouse. Define qué representa una fila individual: una transacción, un resumen diario, un total mensual, una línea de factura.

Cómo funciona #

La elección del grain es la primera decisión al diseñar una fact table. Todas las demás decisiones — medidas, dimensiones, ETL — derivan de ella:

  • Grain fino (ej. línea de factura): máxima flexibilidad en consultas, más filas a gestionar
  • Grain agregado (ej. total mensual por cliente): menos filas, consultas más rápidas, pero imposibilidad de bajar al detalle

El principio fundamental de Kimball: siempre modelar al nivel de detalle más fino disponible en el sistema fuente.

Para qué sirve #

El grain determina:

  • Qué preguntas puede responder el data warehouse
  • Qué dimensiones son necesarias (un grain a nivel de línea requiere dim_producto, un grain mensual no)
  • Qué tan grande es la fact table y cuánto dura el ETL
  • Si el drill-down en los reportes es posible o no

Cuándo se usa #

El grain se define en la fase de diseño del modelo dimensional, antes de escribir cualquier DDL o ETL. Cambiar el grain después del go-live equivale a reconstruir el data warehouse desde cero — razón por la cual la elección inicial es tan crítica.