5

Estoy tratando de construir una tienda de datos.¿Una o varias tablas de hechos?

Tengo muchas dimensiones, y un par de medidas - hechos. Cada medida está conectada a todas las dimensiones en términos de negocios. Existe el enfoque estándar de que habrá una gran tabla de hechos con todas las medidas.

Pero tengo una idea: ¿Qué pasa si tengo tablas de hechos separadas para cada medida? ¿Qué hará con el rendimiento de la base de datos, la extensibilidad de la solución, etc.?

EDIT ::: existirá una enorme solución basada en cubos olap en un entorno corporativo realmente complejo. Por lo tanto, las necesidades son de fácil extensibilidad y mantenimiento al principio, luego, rendimiento

+0

tabla de hechos separada para cada medida? puede ser más específico en lo que está pensando? – Diego

+0

tabla de hechos separada para cada medida significa que habrá tantas tablas de hechos como medidas, cada una con una sola medida, de lo contrario, puede haber una gran tabla de hechos con todas las medidas. – John

Respuesta

7

cliff notes: Veo problemas de escalabilidad en abundancia con la noción de una tabla de hechos/medida.

si su objetivo es la "extensibilidad y mantenimiento", entonces podría considerar seguir una metodología estándar para toda la industria ... como Kimball y agrupe sus hechos primero por proceso comercial y segundo por granularidad con dimensiones ajustadas. Esto, me alegraría argumentar, proporcionará la máxima flexibilidad & escalabilidad al mismo tiempo que garantiza la extensibilidad y el mantenimiento a través de la estandarización.

Además, sus SAN-admins odiarán sus agallas si diseña una tabla de hechos separada para cada medida porque efectivamente está aumentando los requisitos de espacio por la cantidad de medidas ... al menos inicialmente mientras todas sus medidas encajan actualmente una sola tabla de hechos.

El rendimiento de las consultas frente al DW también será un problema ... los informes y/o consultas ad-hoc tendrán que escanear (o buscar ... si sus san-admins todavía están hablando con usted y son lo suficientemente generosos para otorgarle el espacio necesario para indexar correctamente sus tablas de basura) en cualquier momento que necesite combinar más de 1 medida.

Aún no hemos discutido los cubos de olap, pero ya estoy temiendo los problemas de procesamiento que tendrá. Escaneos de tablas completos en abundancia ... o escaneos de particiones ... si implementa particiones en sus tablas de hechos ... lo cual debería hacer ahora con SQL 2012 en el horizonte ... ¡¡Estoy mirando ColumnStore Index !!

0

Si la granularidad de todas las medidas es la misma, manténgalas en la misma tabla. Solo comienza a usar tablas de hechos múltiples cuando tiene hechos de diferentes niveles de granularidad. Al ver que dijiste que todos tus datos están vinculados a todas tus dimensiones, en esta etapa parece que solo necesitas una tabla de hechos.

+0

Puede haber varias solicitudes de cambio, como hacer una dimensión más o menos granular, agregar datos, agregar dimensiones y, además de estas solicitudes de cambio, se necesitaría ETL nuevo, y ETL puede consumir mucha potencia de la CPU durante mucho tiempo. millones de filas se computarían de nuevo, etc. Así que prefiero verlo de esta manera: haga la extensión y el mantenimiento lo más fácil posible. – John

+0

cambio de granularidad de dimensión, adición de hechos, adición de diemsnison ... todo esto requerirá ETL dev-work independientemente de si se aísla o no cada hecho en tablas de hechos separadas o no. –

Cuestiones relacionadas