Agregados

25 10 2007

sumas

En una empresa con 10,000 empleados si el Director de la empresa desea saber a cuanto asciende la nómina en su empresa ¿Cómo es más rápido obtener ese total?

  1. A cada uno de los 10000 empleados les pregunta cuanto gana, cuantas prestaciones tiene y toma nota. Cuando haya tomado nota de cada uno de ellos calcula el total.
  2. Levanta el teléfono, marca la extensión del departamento de recursos humanos y nómina y les pregunta que cuál es el total de la nómina, que seguramente ya lo tienen a la mano y siempre actualizado.

Obviamente es mucho más rápido el segundo método.

Este es el concepto de agregados (aggregates por su nombre en inglés) o agregaciones. En vez de recorrer el detalle me voy sobre un total yá calculado.

En los data warehouses y cubos este es un concepto importantísimo. Para que su herramienta de BI no tenga que hacer los cálculos de los totales a nivel registros se usan agregados.

Todas las herramientas y motores OLAP manejan o usan el concepto de agregados. Analysis Services (7, 2000, y 2005), Oracle 8 o mayor, Redbrick, DB2, SAP BW, Teradata, HP NeoViews, Artus, Pentaho, Cognos…y ahora sí que etc. Ciertamente Oracle y HP NeoViews les llaman vistas materializadas o materialized views pero el concepto es el mismo.

El administrador es el que define que agregados desea calcular y cuando se deben de recalcular. Lo normal es que se recalculen en la carga del cubo o datawarehose. Los usuarios de la información no se enteran si existen agregados, ellos lanzan la consulta sobre el cubo o la estrella principal y el motor de cubos o base de datos detecta que para resolver la consulta puede usar un agregado, toma la información de ahí y se la regresa al usuario.

Tome en cuenta que los agregados toman tiempo y espacio. Así que tampoco llene su servidor con todos los agregados posibles. Cree solo aquellos que ocupa y créelos en base a elementos que reduzcan el # de registros a recorrer. Por ejemplo, si tiene 100 tiendas, cree un agregado o total por tienda ya que serán 100 registros por día o por mes. Si tiene 17 millones 244 mil facturas NO cree un agregado a nivel factura ya que se está haciendo harakiri.

Todas los motores olap y herramientas tienen query advisors que monitorean los querys y le sugieren que agregados crear además de índices. Solo tiene que activar esos servicios. Por ejemplo en Microsoft Analysis Services puede usar la «optimización basada en uso».

En otras palabras, si el tiempo de respuesta de sus consultas es lentísimo y desesperante, el foquito del disco duro siempre está encendido o el procesador está al 100% durante las búsquedas, no sea sádico, use agregados.Nerd

Technorati tags: ,

Acciones

Information

3 responses

9 04 2008
Agregados exactos « Haciendo Cubos

[…] data warehouse. El problema viene cuando la base de datos ha crecido demasiado y tenemos que crear agregados (por Tienda o Departamento digamos), la herramienta OLAP no puede usar estos […]

8 09 2008
Creando un agregado en Artus « Haciendo Cubos

[…] un agregado en Artus 8 09 2008 Los agregados son tablas con la información del cubo pre-sumarizada a diferentes niveles. De esta forma cuando […]

19 09 2008
Creando mejores agregados para optimizar el performance de un cubo o el Data Warehouse « Haciendo Cubos

[…] veces he visto cubos saturados de agregados. Los agregados son totales pre-calculados de la información y sirven para acelerar el tiempo de respuesta de […]

Deja un comentario