Cubo de Datos Tutorial

Post on 05-Nov-2015

13 views 2 download

Transcript of Cubo de Datos Tutorial

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B%2 1/18

    CubosdedatosenSQLServer2008AnalysisServices(Artculopublicadopreviamenteenelnmero77dedNM+)

    Resultaunhechoinnegablequeenlosltimostiempos,elvolumendedatosquelasorganizacionesdebenmanejarhaaumentadodesmesuradamente.Analizartalcantidaddedatos,conelobjetivodetomardecisionesestratgicassehaconvertidoenunautnticoproblema.EnelpresenteartculorealizaremosunaintroduccinaloscubosdedatosenSQLServer2008AnalysisServices,unapotenteherramientaconlaquepodemostransformaringentescantidadesdedatoseninformacindeutilidad.

    Lamasificacindedatosenlossistemasdeinformacindeunacompaa,sinlaadecuadaorganizacinniestructuracin,puedeacarrearefectosnegativostalescomolentitudenelanlisisdesuestado,oloqueespeor,latomadedecisionesestratgicasinadecuadas,yaqueelhechodedisponerdemillonesderegistrosrepartidosenmltiplesorgenesdedatosheterogneos(basesdedatosSQLServer,Access,archivosdetextoplano,Excel,etc.),notieneporqueserentodosloscasossinnimodeunsistemaqueproporcioneinformacindecalidad.

    Parasolventarestetipodeproblemas,enSQLServercontamos,desdehaceyaalgunasversiones,conlosServiciosdeAnlisis(SQLServerAnalysisServicesoSSAS)oherramientasdeInteligenciadeNegocio(BusinessIntelligenceoBI),cuyoexponenteprincipal,elcubodedatos,permitegenerarinformacinparaanalizarelestadodelaempresaapartirdelconjuntodesusfuentesdedatos.

    Aspectosconceptuales

    Desdeunaperspectivaconceptual,uncubodedatosesunapiezamsenelengranajedeunsistemadeinformacindenominadoalmacndedatos(datawarehouse).Elcuboestdotadodeunamaquinariainternaquelepermiteprocesarelevadosvolmenesdedatosenunperiodorelativamentecortodetiempo,ycuyoobjetivoessiemprelaobtencindeunresultadonumrico(importesdeventas,gastos,cantidaddeproductosvendidos,etc.).Estosresultadospuedencambiarenfuncindeunoovariosfiltrosqueapliquemossobreelcubo.Eltiempoderespuestaesmnimograciasaqueelmotordeprocesamientodelcuborealizaunclculopreviodelasposiblescombinacionesderesultadosqueelusuariopuedesolicitar.Alosdiferentesresultadosnumricosobtenidosselesdenominamedidas,mientrasqueloselementosutilizadosparaorganizar/filtrarlainformacinrecibenelnombrededimensiones.

    Representadogrficamente,uncubodedatossemostraracomolaformageomtricadelacualtomasunombre,particionadohorizontalyverticalmenteenunaseriededivisionesquedanlugaramltiplesceldasocasillas,lascualesidentificancadaunodelosposiblesresultadosdelasmedidas,obtenidosporlainterseccinencadaceldadelasdimensionesqueconformanelcubo.Lasiguientefiguramuestradicharepresentacingrficadeuncubo,coninformacindeventasporproductos,empleadosymonedas.Enlosladosdelcubosesitanlasdimensiones,cuyocruceproducelosresultadosnumricosenlasceldas.

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B%2 2/18

    Observandolafiguraanterior,ellectorpuedepensarqueelnmerodedimensionesenuncuboestlimitadoalasquepodemosrepresentaratravsdedichaformageomtrica.Nadamslejosdelarealidad,yaqueuncubopuedesoportarunaelevadacantidaddedimensiones,quepermitencubrirsobradamentelosrequisitosdelainformacinaobtener.

    Elementosprincipalesenunalmacndedatos

    Comohemosmencionadoanteriormente,uncubodedatosesunadelaspiezasdeunaarquitecturamscompleja:elalmacndedatos,encuyoprocesodecreacinestninvolucradosdiversoscomponentes,quesernlosencargadosdetomareldatooriginalenbrutoypulirlohastaconvertirloeninformacinlistaparasuanlisis.Acontinuacinvemosundiagramaconlasfasesdeesteprocesodetransformacin.

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B%2 3/18

    Descritoesteprocesoagrandesrasgos,enprimerlugarserealizaunaoperacindeextraccin,transformacinycarga(Extract,Transform&LoadoETL)desdelasfuentesdedatosorigen,situadasenelreaoperacional,aunabasededatosqueseencuentraenelreadeintegracin,utilizandoparaellopaquetesdelosServiciosdeIntegracin(SQLServerIntegrationServicesoSSIS),loscualesrealizarntambintareasdedepuracindedatos.

    Acontinuacinpasaramosalafasedeconstruccindelcubo,quedesarrollaremosutilizandolasherramientasdelosserviciosdeanlisis(SSAS).Finalmente,llegaremosalafasedeaccesoaloscubosporpartedelosusuariosfinales,paraloqueexistendiversosproductostalescomoReportingServices(SSRS),Excel,etc.

    Elementosfsicos.Tablasdehechosydimensiones

    Anivelfsico,paraconstruiruncubodedatosnecesitamosunabasededatosquecontengaunatabladenominadatabladehechos,cuyaestructuraestarformadaporunaseriedecampos,denominadoscamposdemedida,apartirdeloscualesobtendremoslosresultadosnumricosdelcuboyporotrolado,unconjuntodecampos,denominadoscamposdedimensin,queutilizaremosparaunirconlastablasdedimensiones,afindepoderobtenerresultadosfiltradosporlasdiversasdimensionesdequeconsteelcubo.

    Elotropilarfundamentalparalacreacindeuncubolocomponenlastablasdedimensiones.Paracadadimensinocategoradeconsulta/filtroqueincorporemosanuestrocubonecesitaremosunatabla,queuniremosconlatabladehechosporuncampoclave.Estatabladedimensionesactuarcomocatlogodevalores,tambindenominadosatributos,queusaremosdeformaindependienteocombinadosconotrasdimensiones,paraobtenerresultadosconunmayorgradodeprecisin.

    Desarrollandouncubodedatos

    Unavezexplicadaslasnocionesbsicasnecesarias,entramosenlaparteprcticadelartculo,dondedesarrollaremosnuestropropiocubodedatos.Centraremostodosnuestrosesfuerzosexclusivamenteenlacreacindelcubo,sinabordaraqulasoperacionesdeextraccin,transformacinycarga,queseranrealizadas

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B%2 4/18

    mediantepaquetesSSIS,yaqueestosltimossonaspectosquequedanfueradelmbitodeesteartculo,quedandopendientesparaunafuturaentrega.

    Enprimerlugar,desdeelmendeWindowsiniciaremosSQLServerBusinessIntelligenceDevelopmentStudio,cuyoaccesodirectoseencuentraenelgrupodeprogramasMicrosoftSQLServer2008R2.SetratadeunaversinespecialdeVisualStudiopreparadaparadesarrollarproyectosdeBI,encuyodilogoinicialseleccionaremoscomotipodeproyectoAnalysisServicesProject,alquedaremoselnombreCuboDatosAdvWorks.

    Acontinuacin,haciendoclicderechoenelnodoDataSourcesdelExploradordeSoluciones,seleccionaremoslaopcinNewDataSource,queabrirelasistenteparacrearlafuentededatosdelcubo,yqueennuestrocasoserlabasededatosdepruebaAdventureWorksDW2008,cuyaestructurayaseencuentrapreparadaparaserutilizadaeneldiseodecubosdedatos.

    Dejaremoslasopcionespordefectoenelasistentehastallegaralpasocorrespondientealaconexincontralafuentededatos,dondeseleccionaremosAdventureWorksDW2008.Alllegaralpasofinaldeesteasistenteveremosunresumendelafuentededatosquehemoscreado.

    Nuestrosiguientepasoconsistirencrearunavistadelafuentededatos,quenospermitir,comosunombreindica,definirunavisualizacinpersonalizadasobrelabasededatos,incluyendoaquellastablasquenecesitemosparacrearelcubo.

    LoqueenestecubodeejemplovamosamedireselimportedelasventasquelosdistribuidoresdelacompaaAdventureWorkshanfacturado,pudiendoconsultar/filtrarlosresultadosporeltipodemonedaenqueseharealizadolaventa,yelreageogrficaalaquesehaenviadoelpedido.ParaelloutilizaremoslatablaFactResellerSalescomotabladehechos,siendoDimCurrencyyDimSalesTerritorylastablasdedimensin.

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B%2 5/18

    HaciendoclicderechoenelnodoDataSourceViewsdelExploradordeSolucionesseleccionaremoslaopcinNewDataSourceView,queabrirunasistenteencuyoprimerpasoelegiremoslafuentededatosrecincreada,yenelsegundolastablasqueacabamosdemencionar.

    Finalizadoesteasistenteaparecersuventanadediseo,enlaquevemosundiagramadelastablasseleccionadas,conlasrelacionesexistentesentrelasmismas.

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B%2 6/18

    Creacindedimensiones.Dimensinbsica

    Elsiguientepasoconsistirencrearladimensinquenospermitirconsultar/filtrarlainformacindelcuboporeltipodemonedaconelqueserealizelpagodelpedido.HaciendoclicderechoenelnodoDimensionsdelExploradordeSolucionesseleccionaremoslaopcinNewDimension,inicindoseelconsabidoasistente,cuyoprimerpaso,SelectCreationMethod,dejaremosconlaopcinpredeterminadaUseanexistingtable.AlentrarenelpasoSpecifySourceInformation,treslistasdesplegablesnospermitirnconfigurarlainformacinaobtenerparaladimensin:conMaintableelegiremoslatablaqueutilizaremosenladimensin:DimCurrencyconKeycolumnsindicaremoslaclaveprimariayfinalmente,conNamecolumnseleccionaremoselcampoCurrencyName,queidentificarelatributoavisualizar.

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B%2 7/18

    EnelpasoSelectDimensionAttributes,elasistentenosofrecerCurrencyKeycomoatributodeladimensin,elcualutilizaremos,perocambiandosunombreaCurrency.Unatributoesuncampo,normalocalculado,pertenecientealatabladedimensin,quesemostrarcomounaetiquetaencualquierlugarenelqueladimensinparticipecomopartedeunaconsultacontraelcubodedatos.

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B%2 8/18

    AlllegaralltimopasodaremoselnombreCurrencyaladimensinyfinalizaremoselasistente,mostrndoseeldiseadordedimensionesconlaestructuraqueacabamosdecrear.ObservandolaspropiedadesdelatributoCurrency,lasmsimportantessonName,quecontieneelnombrequeaparecerenlasconsultascontraelcuboKeyColumns,quecontieneelcampoclavedelatablaqueserelacionarconlatabladehechosyNameColumn,quecontieneelcampodelatablaquemostrarelvalordelatributo.

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B%2 9/18

    Enelcasodequenecesitemosaadirmsatributosaladimensin,simplementetendremosquearrastrarysoltarloscamposdesdelatabladelpanelDataSourceViewhastaelpanelAttributesdeestediseador.

    UnavezcreadostodoslosatributosprocesaremosladimensinhaciendoclicenelbotnProcessdelabarradeherramientasdeldiseador,omedianteelmendeVisualStudioBuild|Process.Completadoelprocesodeladimensin,haremosclicenlapestaaBrowserdeldiseador,dondepodremosexaminarcmohaquedadoconstruida.

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B% 10/18

    Creacindedimensiones.Dimensinjerrquica

    Ademsdelasdimensionesdeunniconivel,comolaqueacabamosdeverenelapartadoanterior,esposiblecreardimensionesqueagrupenlosdatosenvariosniveles,loqueproporcionarunamayorcapacidaddedesagregacinsobrelainformacindelcubocuandosteseaconsultadoatravsdeunadimensindeestetipo.Aesteelementodeunadimensinseledenominajerarqua.

    PongamoscomoejemplolatablaDimSalesTerritory,incluidaenelDataSourceViewdenuestroproyectodeejemplo.EnlamismapodemosverquelacombinacindeloscamposSalesTerritoryGroup,SalesTerritoryCountryySalesTerritoryRegionpermiteestablecervariosnivelesdeagrupamientoparalosdatos.

    Supongamosquenecesitamoscrearunadimensinbasadaenestatablaquepermita,partiendodelcampoSalesTerritoryGroup,unefectosimilarde"despliege"jerrquicoporniveles.

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B% 11/18

    Paraello,crearemosenprimerlugarladimensinutilizandoelasistenteenlaformaexplicadaenelanteriorapartado.ElatributoseleccionadopordefectoporelasistenteserelcorrespondientealcampoSalesTerritoryKey,claveprimariadelatabla.

    Unavezsituadoseneldiseadordedimensiones,arrastraremosdesdelatabladelpanelDataSourceViewloscamposSalesTerritoryGroup,SalesTerritoryCountryySalesTerritoryRegion,ylossoltaremosenelpanelAttributesdeestemismodiseador.

    AcontinuacinarrastraremoselatributoSalesTerritoryGrouphastaelpanelHierarchies,locualcrearunanuevajerarquaalaquecambiaremoselnombrepredeterminadoporSalesTerritory.TambindepositaremosenestajerarqualosatributosSalesTerritoryCountryySalesTerritoryRegion,observandoquejuntoalnombredelajerarquaapareceuniconodeadvertenciaquenosinformadequelasrelacionesentrelosatributosdelajerarquanoestnadecuadamentecreadas,loquepuedeafectarnegativamentealprocesodeladimensin.

    ParasolucionaresteinconvenienteharemosclicenlapestaaAttributeRelationships,dondeveremoslasrelacionesentrelosatributosqueautomticamentehacreadoeldiseador.

    Estasrelaciones,sinembargo,nosonvlidasparanuestrospropsitos,porloqueseleccionaremoslasflechasdeldiagramaquelasrepresentanylaseliminaremos.Paracrearlasnuevasrelacionesarrastraremosdesdeelatributoorigenhastaeldestino,hastadejarlastalycomoapreciamosenlasiguientefigura.

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B% 12/18

    AntesdeprocesarladimensinvolveremosalapestaaDimensionStructureparacomprobarquelaadvertenciahadesaparecido.PorotroladoseleccionaremostodoslosatributosdelpanelAttributes,asignandoelvalorFalseensupropiedadAttributeHierarchyVisible,conloqueconseguiremosquelosatributosindependientesnosemuestren,yaqueloquenosinteresaenestecasoesexplorarsolamentelajerarqua.Acontinuacinvemoselresultadodeestadimensin,contodosloselementosdelajerarquaexpandidos.

    Creacindelcubo

    Llegamosalafasefinaleneldesarrollodenuestroproyectodeejemplo:laconstruccindelcubodedatos.

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B% 13/18

    EmpezaremoshaciendoclicderechoenelnodoCubesdelExploradordeSoluciones,yseleccionandolaopcinAddCube,loqueabrirelasistentedecreacin,enelquedejaremossusvalorespredeterminadoshastallegaralpasoSelectMeasureGroupTables,quecomosunombreindica,nospideseleccionarlatablaquecontendrloscamposqueusaremoscomomedidasparaelcubo,esdecir,latabladehechos,queenestecasoserFactResellerSales.

    HaciendoclicenNextentraremosenelpasoSelectMeasures,dondetendremosqueseleccionarloscamposqueactuarncomomedidasdelcubo.Elobjetivodeestecuboconsisteenaveriguarelimportedelasventasrealizadasporlosdistribuidores,porlotanto,seleccionaremossolamenteelcampoSalesAmount.

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B% 14/18

    Elsiguientepasonossolicitalaseleccindelasdimensionesquevanaformarpartedelcubo.Automticamentesehandetectadolasdimensionescreadaspornosotrosconanterioridad,lascualesyaseofrecenseleccionadaspordefecto.

    Acontinuacin,elasistenterealizaunabsquedaenlatabladehechos,porsialgncampopudierasersusceptibledesertambintratadocomounadimensin.Dadoquenonecesitamosestacaracterstica,desmarcaremoslaseleccindelatabladehechoscomofuentedeorigenparalacreacindedimensiones.

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B% 15/18

    Yllegamosalpasofinal,dondedaremosalcuboelnombredeVentasDistribuidores,finalizandoaselasistente.

    Comoresultadoobtendremoslapantallacorrespondientealdiseadordecubos,quemuestradiversoselementosdeimportancia,talescomoelpaneldedimensiones,diagramadetablas,medidas(Measures),etc.

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B% 16/18

    Esprecisamenteenelpaneldemedidasdondeaparecelamedidaquehemosseleccionadoenelasistente,peroalacualcambiaremossunombreporImporteVentasdesdelaventanadepropiedades.Enestamismaventanapodemosobservarelnombre,lafuncindeagregadoqueseusaparacalcularlamedida,elcampodelatablautilizado,cadenadeformato,etc.

    Paraquelamedidaaparezcacorrectamenteformateada,ademsdeasignarlacadenadeformatoasupropiedadFormatString,enlaspropiedadesdelcubotenemosqueasignarelvalorSpanish(Spain)alapropiedadLanguage.

    Finalmente,antesdepoderconsultarelcubo,aligualquehicimosconlasdimensiones,debemosprocesarlo

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B% 17/18

    haciendoclicenelbotnProcess,queabrirelcuadrodedilogodeprocesamientodelcubo,enelqueharemosclicensubotnRun.

    Unavezqueelcubohasidoprocesado,podemosconsultarsucontenidohaciendoclicenlapestaaBrowser.EnelpanelMeasureGroupexpandiremoselnodoMeasureshastallegaralamedidaImporteVentas,quearrastraremoshastalazonacentraldelvisualizador.AcontinuacinarrastraremosladimensinSalesTerritoryhastaelmargenizquierdodelvisualizador.Podemoshacerclicderechosobreestadimensin,seleccionandolaopcinExpandItems,loqueproducirundesplieguedeloselementosdeladimensin.ParaterminararrastraremosladimensinCurrencyhastaelmargensuperior.Comoresultadoobtendremosunacuadrculadedatosenlaquecadaceldamostrarelvalordelamedidaparalainterseccindelasdimensionessituadasenlascolumnasyfilasdelvisualizadordedatos.

  • 2/12/2014 CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

    data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B% 18/18

    Conclusiones

    EnelpresenteartculohemosrealizadounaintroduccinaldesarrollodecubosdedatosconSQLServer2008AnalysisServices,uncomponentedelafamiliaSQLServerdestinadoaproporcionarsolucionesdeinteligenciadenegocioconlasqueexplotarelpotencialdeanlisisqueresideenlosdatosdelasorganizaciones.Lasposibilidadesypotenciadeestaherramientasonenormes,yconfiamosenqueesteartculoanimeallectorallevarlasalaprctica.

    Published11/9/201321:09porLuisMiguelBlanco