cómo diseñar grandes variables en bases de datos multidimens

Upload: jesus-ricardo-salazar-acevedo

Post on 01-Mar-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 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