Cubo de Datos Tutorial
-
Upload
osvaldo-alvarado-munoz -
Category
Documents
-
view
21 -
download
2
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