Cómo Diseñar Grandes Variables en Bases de Datos Multidimens

download Cómo Diseñar Grandes Variables en Bases de Datos Multidimens

of 17

Transcript of Cómo Diseñar Grandes Variables en Bases de Datos Multidimens

  • 7/25/2019 Cmo Disear Grandes Variables en Bases de Datos Multidimens

    1/17

    CMO DISEAR GRANDES VARIABLES EN BASES DE DATOS MULTIDIMENSIONALESManuel de la Herrn Gascnhttp://www.eside.deusto.es/profesores/mherran/Ingeniero Informtico por la Universidad de Deusto

    icent !astellar"#us http://www.uv.es/$%uso/Doctor en Matemticas por la Universidad de alencia

    &continuacin...'

    Introduccin

    (l uso de dimensiones es una forma de mostrar &) a veces almacenar' datos mu) *til en sistemascon grandes cantidades de informacin. +as dimensiones son e,es de anlisis o criterios declasificacin de la informacin -ue ofrecen un ndice a los datos mediante una lista de valores. ore,emplo son dimensiones 01iempo23 0Geografa2 ) 0roducto2.

    4e llama DataWarehouseal almac5n de datos -ue re*ne la informacin histrica generada portodos los distintos departamentos de una organi6acin3 orientada a consultas comple,as ) de altorendimiento. Un Data7arehouse pretende conseguir -ue cual-uier departamento pueda acceder a

    la informacin de cual-uiera de los otros mediante un *nico medio3 as como o%ligar a -ue losmismos t5rminos tengan el mismo significado para todos. Un Datamartes un almac5n de datoshistricos relativos a un departamento de una organi6acin3 as -ue puede ser simplemente unacopia de parte de un Data7arehouse para uso departamental.

    1anto el Data7arehouse como el Datamart son sistemas orientados a la consulta3 en los -ue seproducen procesos batchde carga de datos &altas' con una frecuencia %a,a ) conocida. 8m%os sonconsultados mediante herramientas 9+8 &On Line Analytical Processing)-ue ofrecen una visinmultidimensional de la informacin. 4o%re estas %ases de datos se pueden construir (I4&Executive Information Systems, 4istemas de Informacin para Directivos' ) D44 &DecisionSuort Systems,4istemas de 8)uda a la toma de Decisiones'. or otra parte3 se conoce comoData !iningal proceso no trivial de anlisis de grandes cantidades de datos con el o%,etivo deetraer informacin *til3 por e,emplo para reali6ar clasificaciones o predicciones.

    8 continuacin se muestra una representacin espacial de una varia%le multidimensional con una3dos ) tres dimensiones. (n esta figura los cu%itos representan valores de dimensin3 ) las esferasson datos.

    ;ig. < " aria%les con una dos ) tres dimensiones.

    http://www.eside.deusto.es/profesores/mherran/http://www.uv.es/~buso/http://www.eside.deusto.es/profesores/mherran/http://www.uv.es/~buso/
  • 7/25/2019 Cmo Disear Grandes Variables en Bases de Datos Multidimens

    2/17

    Una varia%le unidimensional podra ser el cam%io de la peseta con el dlar3 -ue slo vara en ladimensin 0tiempo2. +os cu%itos seran3 por e,emplo3 los meses del a=o ) las esferas seran losvalores num5ricos correspondientes al cam%io monetario en cada momento. Un e,emplo devaria%le de dos dimensiones es el n*mero de ha%itantes3 -ue se mueve por las dimensiones0Geografa2 ) 0tiempo2. ;inalmente3 los ingresos de una organi6acin podran almacenarsemediante una varia%le de tres dimensiones: 0producto23 0Geografa2 ) 0tiempo2.

    >ormalmente los elementos de una dimensin forman una ,erar-ua3 con lo -ue algunos sonpadres de otros. !uando las varia%les multidimensionales de un datamart o datawarehouse soncargadas con nueva informacin &por e,emplo3 mensualmente a partir de ficheros de teto'3 5sta serefiere a los nodos ho,a del r%ol ,err-uico de cada una de las dimensiones. or e,emplo3 lainformacin de ventas llega detallada por producto3 por provincia ) por mes. ero si -ueremoso%tener el total de ventas de todos los productos3 el total de ventas de todas las provincias3 el detodos los meses del a=o3 o alguna com%inacin de estos3 de%eremos reali6ar un proceso deagregaci"nde la informacin.

    or e,emplo3 en la dimensin roducto incluiremos un valor llamado ?1otal roductos? -ue serpadre de todos los dems productos ) -ue contendr el acumulado de todos ellos. (n la dimensin1iempo podremos tener3 por e,emplo3 el a=o @AAA descompuesto en trimestres3 ) estos a su ve6 en

    meses. +a informacin llega detallada por producto ) por mes3 ) posteriormente a la carga dedatos3 se reali6a un proceso de agregacin -ue calcula estos acumulados.

    OLAP, R-OLAP M-OLAP

    Un sistema 9+8 se puede entender como la generali6acin de un generador de informes. +asaplicaciones informticas clsicas de consulta3 orientadas a la toma de decisiones3 de%en serprogramadas. 8tendiendo a las necesidades del usuario3 se crea una u otra interfa6. 4in em%argo3muchos desarrolladores se dieron cuenta de -ue estas aplicaciones eran suscepti%les de sergenerali6adas ) servir para casi cual-uier necesidad3 esto es3 para casi cual-uier %ase de datos.+os sistemas 9+8 evitan la necesidad de desarrollar interfaces de consulta3 ) ofrecen un entorno*nico valido para el anlisis de cual-uier informacin histrica3 orientado a la toma de decisiones. 8cam%io3 es necesario definir dimensiones3 ,erar-uas ) varia%les3 organi6ando de esta forma los

    datos.

    ara los desarrolladores de aplicaciones acostum%rados a tra%a,ar con %ases de datosrelacionales3 el dise=o de una %ase de datos multidimensional puede ser comple,o o al menos3etra=o. ero en general3 nuestra eperiencia nos dice -ue el dise=o de dimensiones ) varia%les esmucho ms sencillo e intuitivo -ue un dise=o relacional. (sto es de%ido a -ue las dimensiones )varia%les son refle,o directo de los informes en papel utili6ados por la organi6acin.

    Una ve6 -ue se ha decidido emplear un entorno de consulta 9+83 se ha de elegir entre B"9+8 )M"9+8. B"9+8 es la ar-uitectura de %ase de datos multidimensional en la -ue los datos seencuentran almacenados en una %ase de datos relacional3 la cual tiene forma de estrella &tam%i5nllamada copo de nieve o ara=a'. (n B"9+83 en principio la %ase de datos slo almacenainformacin relativa a los datos en detalle3 evitando acumulados &evitando redundancia'.

    (n un sistema M"9+83 en cam%io3 los datos se encuentran almacenados en archivos conestructura multidimensional3 los cuales reservan espacio para todas las com%inaciones de todoslos posi%les valores de todas las dimensiones de cada una de las varia%les3 inclu)endo los valoresde dimensin -ue representan acumulados. (s decir3 un sistema M"9+8 contiene precalculados&almacenados' los resultados de todas las posi%les consultas a la %ase de datos.

    M"9+8 consigue consultas mu) rpidas a costa de ma)ores necesidades de almacenamiento3 )retardos en las modificaciones &-ue no de%eran producirse salvo ecepcionalmente'3 ) largos

  • 7/25/2019 Cmo Disear Grandes Variables en Bases de Datos Multidimens

    3/17

    procesos batchde carga ) clculo de acumulados. (n B"9+83 al contener slo las com%inacionesde valores de dimensin -ue representan detalle3 es decir3 al no ha%er redundancia3 el archivo de%ase de datos es pe-ue=o. +os procesos batchde carga son rpidos &)a -ue no se re-uiereagregacin'3 ) sin em%argo3 las consultas pueden ser mu) lentas3 por lo -ue se aplica la solucinde tener al menos algunas consultas precalculadas.

    (n M"9+83 el gran tama=o de las varia%les multidimensionales o el retardo en los procesos batchpuede ser un inconveniente. (n este documento se proponen algunas soluciones a estospro%lemas3 aplica%les en tiempo de dise=o de la %ase de datos.

    CMO DISEAR GRANDES VARIABLES EN BASES DE DATOS MULTIDIMENSIONALESManuel de la Herrn Gascnhttp://www.eside.deusto.es/profesores/mherran/Ingeniero Informtico por la Universidad de Deusto

    icent !astellar"#us http://www.uv.es/$%uso/Doctor en Matemticas por la Universidad de alencia

    &continuacin...'

    C!"cu"o d#" t$%$&o d# un$ '$ri$("# %u"tidi%#n)ion$"

    (n lo -ue sigue supondremos -ue tra%a,amos con un sistema M"9+8. Durante el dise=o de la%ase de datos multidimensional3 antes de la creacin de los o%,etos3 es interesante predecir3 paracada una de las varia%les -ue se espera utili6ar3 ) cu)o tama=o se supone importante:

    (l tama=o en disco ocupado por la varia%le

    (l tiempo -ue tardar el proceso de agregacin de los valores acumulados

    4in tener en cuenta el uso de t5cnicas de compresin3 el tama=o de una varia%le multidimensionaldepender del n*mero de valores de cada una de las dimensiones por las -ue ?se mueva? lavaria%le3 inclu)endo los valores acumulados.

    Dada una varia%le multidimensional dimensionada por DC08rtculo 2 E C0Geografa2 E FA

    http://www.eside.deusto.es/profesores/mherran/http://www.uv.es/~buso/http://www.eside.deusto.es/profesores/mherran/http://www.uv.es/~buso/
  • 7/25/2019 Cmo Disear Grandes Variables en Bases de Datos Multidimens

    4/17

    >C01iempo2 E @A

    odemos calcular el n*mero de celdas de la varia%le de la forma:

    >!C E >C08rtculo 2 >C0Geografa2 >C01iempo2 E

  • 7/25/2019 Cmo Disear Grandes Variables en Bases de Datos Multidimens

    5/17

    inferiores3 -ue soportan al resto. (sta analoga tiene el inconveniente de ocultar el hecho de -ueeisten datos indeados por cual-uier valor de cual-uier dimensin relacionado con cual-uier otrode cada una de las dems3 ) no slo cada valor de dimensin con los de su mismo nivel ,err-uico3como ocurre en la pirmide.

    8un-ue pudiera parecer etra=o3 eisten muchos casos en los -ue el n*mero de datos calculados

    mediante agregacin es mu) superior al de los datos simplemente cargados directamente en la%ase de datos. (s decir3 es posi%le -ue el n*mero de celdas de acumulados sea superior aln*mero de celdas de detalle3 ) tengamos una ?pirmide invertida?.

    4i suponemos -ue cada dimensin tiene una *nica ,erar-ua3 el n*mero total de valores de unadimensin &Dt' ser la suma de los valores -ue sean padres3 es decir3 -ue tengan hi,os &Dp' msa-uellos -ue no los tengan ) sean por tanto nodos ho,a &Dh'.

    (n la primera dimensinDt!8' lo podemos calcular restando del total de celdas&>!'3 las -ue son de detalle &>!D'.

    >!C E >!DC >!8C>!8C E >!C " >!DC

    (l n*mero de celdas acumuladas &>!8' ser ma)or -ue el n*mero de celdas de detalle &>!D'cuando:

    >!8C 2 >!DC>!C " >!DC 2 >!DC>!C 2 @ >!DC

    Mediante una com%inacin de medidas analticas ) estimaciones o%tenidas de la eperiencia3 esposi%le predecir con suficiente calidad la ocupacin de una varia%le en cuanto a espacio en disco3as como el tiempo re-uerido para la agregacin de los valores de detalle.

  • 7/25/2019 Cmo Disear Grandes Variables en Bases de Datos Multidimens

    6/17

    Na -ue el tama=o de las cargas no suele variar mucho de un mes a otro3 es ha%itual reali6areperimentos de carga ) agregacin con alg*n reducido con,unto de valores de la dimensin01iempo23 ) etrapolarlos. or e,emplo3 si la carga del detalle de un mes ocupa F M%3 laagregacin de estos valores dura < hora ) el tama=o de la %ase de datos una ve6 agregados losdatos se ha incrementado en FA M%3 podemos multiplicar estos valores por

  • 7/25/2019 Cmo Disear Grandes Variables en Bases de Datos Multidimens

    7/17

    Bestringiendo un poco ms la hiptesis3 podramos suponer -ue en todas las consultas a lavaria%le3 al menos por una de las dimensiones3 se va a solicitar el valor acumulado total &el msalto de la ,erar-ua'. 8 continuacin veremos un e,emplo de esto con una varia%le de tresdimensiones.

    (sta solucin implica el uso de varia%les ) frmulas multidimensionales. (n las %ases de datos

    multidimensionales se almacenan tanto varia%les como frmulas. +as varia%les contienen datos.+as frmulas en cam%io3 son epresiones o programas -ue acceden a varia%les )/o a otrasfrmulas3 ) -ue indican la manera de calcular los datos -ue sern presentados al usuario.

    4eg*n la solucin propuesta3 en ve6 de almacenar una varia%le del tipo

    &D< D@ D'

    4e almacenan tres varia%les:

    !C 2E >!C!C@ >!C

    (s decir

    Dt8

  • 7/25/2019 Cmo Disear Grandes Variables en Bases de Datos Multidimens

    8/17

    Utili6ando la analoga espacial3 en ve6 de almacenar todo el cu%o de datos3 se almacenan slo losdatos de las caras #el cubo3 )a -ue siempre al menos uno de los e,es &dimensiones' tiene el valortotal &-ue se considera en el e,e de coordenadas'. 4e almacenarn tantas caras #e cubocomodimensiones eistan3 en este caso3 slo tres.

    or e,emplo3 si el n*mero de valores de cada dimensin fueran

  • 7/25/2019 Cmo Disear Grandes Variables en Bases de Datos Multidimens

    9/17

    (sta implementacin afectara a los programas de carga3 -ue de%eran reali6arse de forma -ueacumulen &) no slo imputen' cada uno de los datos en todas las varia%les.

    4i la varia%le fuese de dos dimensiones3 ) o%ligamos a -ue al menos una de ellas sea total3tendramos

    &D< D@'

    8lmacenada mediante

  • 7/25/2019 Cmo Disear Grandes Variables en Bases de Datos Multidimens

    10/17

    odemos aplicar este sistema con cual-uier valor de dimensin ) no slo con el valor total3simplemente inclu)endo una nueva varia%le -ue implcitamente almacene los valores -uecorrespondan con ese valor de dimensin3 cu)a dimensin ser precisamente la -ue esa varia%leno posee. or e,emplo3 dada una varia%le multidimensional de cuatro dimensiones:

    &D< D@ D D'

    4i la dimensin D@ estuviese formada por un total 1 -ue tuviese dos hi,os su%totales 41< ) 41@3 )restringi5ramos las consultas de forma -ue se suponga -ue siempre se soliciten datos indeadospor al menos un total o su%total por alguna de las dimensiones3 los datos se pueden almacenar enlas varia%les:

  • 7/25/2019 Cmo Disear Grandes Variables en Bases de Datos Multidimens

    11/17

    (n algunas implementaciones de %ases de datos multidimensionales3 el tiempo necesario paraprecalcular todas las posi%les agregaciones de una varia%le multidimensional es ecesivo. 8un-ueha) espacio suficiente para poseerlas todas3 no ha) tiempo suficiente para calcularlas.

    4i el n*mero de agregaciones es ecesivo3 una solucin es no precalcularlas todas3 ) calcularlas%a,o demanda. (s decir3 simplemente podemos de,ar de agregar en una dimensin3 agregando en

    todas las dems ) calcular en esa dimensin *nicamente los valores solicitados por el usuario.

    or e,emplo3 si la dimensin D< posee cuatro valores -ue son: 13

  • 7/25/2019 Cmo Disear Grandes Variables en Bases de Datos Multidimens

    12/17

    elseote that the earlier slidementioned @@< million transistors on Itanium @3 and thatQs missing from this slide. Nou canimmediatel) see %ig differences in front"side %us architecture and performance3 with a AA MH6data rate &@AAMH6 clocV' and a

  • 7/25/2019 Cmo Disear Grandes Variables en Bases de Datos Multidimens

    16/17

    Cache Feature Itanium (Merced) Itanium 2 (McKinley)

    L3 Size 2-4MB 1.5-3MB

    L3 Ono!"# $"o%esso" Die &'es(No) No 'es

    L3 Line Size *4 +tes 12, +tes

    L3 sso%i!tivit+ 4-w!+ 12-w!+L3 Intee" L!ten%+ 21 %+%le /ini/u/ 12 %+%le /ini/u/

    L3 0lo!tin $oint L!ten%+ 24 %+%le /ini/u/ 13 %+%le /ini/u/

    L3 B!n#wi#t 12., B(se% 32 B(se%

    L2 Size * B 25* B

    L2 Line Size *4 +tes 12, +tes

    L2 sso%i!tivit+ *-w!+ ,-w!+

    L2 Intee" L!ten%+ * %+%le /ini/u/ 5 %+%le /ini/u/

    L2 0lo!tin $oint L!ten%+ %+%le /ini/u/ * %+%le /ini/u/

    L1 I-C!%e Size 1* B 1* BL1 I-C!%e Line Size 32 +tes *4 +tes

    L1 I-C!%e sso%i!tivit+ 4-w!+ 4-w!+

    L1 I-C!%e L!ten%+ 1 %+%le 1 %+%le

    L1 D-C!%e Size 1* B 1* B

    L1 D-C!%e Line Size 32 +tes *4 +tes

    L1 D-C!%e sso%i!tivit+ 4-w!+ 4-w!+

    L1 D-C!%e L!ten%+ 2 %+%les 1 %+%le

    Itanium @ uses an L"stage pipeline versus ote the scala%ilit)%uilding %locVs ena%le S"processor M designs. 7eQll dive more deepl) into this chipset in asu%se-uent stor) as itQs not due to roll out until fall. Nou ma) also want to checV out MarVHachmanQs stor)on IntelQs and various other Itanium @ chipsets.

    http://developer.intel.com/design/itanium2/manuals/251110.htmhttp://www.microsoft.com/windows2000/docs/64biteval.dochttp://www.extremetech.com/article2/0,3973,534,00.asphttp://www.extremetech.com/article2/0,3973,534,00.asphttp://www.extremetech.com/article2/0,3973,534,00.asphttp://developer.intel.com/design/itanium2/manuals/251110.htmhttp://www.microsoft.com/windows2000/docs/64biteval.dochttp://www.extremetech.com/article2/0,3973,534,00.asphttp://www.extremetech.com/article2/0,3973,534,00.asp
  • 7/25/2019 Cmo Disear Grandes Variables en Bases de Datos Multidimens

    17/17