Sie sind auf Seite 1von 18

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

CubosdedatosenSQLServer2008AnalysisServices
(Artculopublicadopreviamenteenelnmero77dedNM+)
Resultaunhechoinnegablequeenlosltimostiempos,elvolumendedatosquelasorganizacionesdeben
manejarhaaumentadodesmesuradamente.Analizartalcantidaddedatos,conelobjetivodetomardecisiones
estratgicassehaconvertidoenunautnticoproblema.Enelpresenteartculorealizaremosunaintroduccina
loscubosdedatosenSQLServer2008AnalysisServices,unapotenteherramientaconlaquepodemos
transformaringentescantidadesdedatoseninformacindeutilidad.
Lamasificacindedatosenlossistemasdeinformacindeunacompaa,sinlaadecuadaorganizacinni
estructuracin,puedeacarrearefectosnegativostalescomolentitudenelanlisisdesuestado,oloqueespeor,
latomadedecisionesestratgicasinadecuadas,yaqueelhechodedisponerdemillonesderegistrosrepartidos
enmltiplesorgenesdedatosheterogneos(basesdedatosSQLServer,Access,archivosdetextoplano,Excel,
etc.),notieneporqueserentodosloscasossinnimodeunsistemaqueproporcioneinformacindecalidad.
Parasolventarestetipodeproblemas,enSQLServercontamos,desdehaceyaalgunasversiones,conlos
ServiciosdeAnlisis(SQLServerAnalysisServicesoSSAS)oherramientasdeInteligenciadeNegocio(Business
IntelligenceoBI),cuyoexponenteprincipal,elcubodedatos,permitegenerarinformacinparaanalizarelestado
delaempresaapartirdelconjuntodesusfuentesdedatos.

Aspectosconceptuales
Desdeunaperspectivaconceptual,uncubodedatosesunapiezamsenelengranajedeunsistemade
informacindenominadoalmacndedatos(datawarehouse).Elcuboestdotadodeunamaquinariainternaque
lepermiteprocesarelevadosvolmenesdedatosenunperiodorelativamentecortodetiempo,ycuyoobjetivoes
siemprelaobtencindeunresultadonumrico(importesdeventas,gastos,cantidaddeproductosvendidos,
etc.).Estosresultadospuedencambiarenfuncindeunoovariosfiltrosqueapliquemossobreelcubo.Eltiempo
derespuestaesmnimograciasaqueelmotordeprocesamientodelcuborealizaunclculopreviodelasposibles
combinacionesderesultadosqueelusuariopuedesolicitar.Alosdiferentesresultadosnumricosobtenidosseles
denominamedidas,mientrasqueloselementosutilizadosparaorganizar/filtrarlainformacinrecibenelnombre
dedimensiones.
Representadogrficamente,uncubodedatossemostraracomolaformageomtricadelacualtomasunombre,
particionadohorizontalyverticalmenteenunaseriededivisionesquedanlugaramltiplesceldasocasillas,las
cualesidentificancadaunodelosposiblesresultadosdelasmedidas,obtenidosporlainterseccinencadacelda
delasdimensionesqueconformanelcubo.Lasiguientefiguramuestradicharepresentacingrficadeuncubo,
coninformacindeventasporproductos,empleadosymonedas.Enlosladosdelcubosesitanlasdimensiones,
cuyocruceproducelosresultadosnumricosenlasceldas.

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

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

Observandolafiguraanterior,ellectorpuedepensarqueelnmerodedimensionesenuncuboestlimitadoa
lasquepodemosrepresentaratravsdedichaformageomtrica.Nadamslejosdelarealidad,yaqueuncubo
puedesoportarunaelevadacantidaddedimensiones,quepermitencubrirsobradamentelosrequisitosdela
informacinaobtener.

Elementosprincipalesenunalmacndedatos
Comohemosmencionadoanteriormente,uncubodedatosesunadelaspiezasdeunaarquitecturams
compleja:elalmacndedatos,encuyoprocesodecreacinestninvolucradosdiversoscomponentes,quesern
losencargadosdetomareldatooriginalenbrutoypulirlohastaconvertirloeninformacinlistaparasuanlisis.
Acontinuacinvemosundiagramaconlasfasesdeesteprocesodetransformacin.

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

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

Descritoesteprocesoagrandesrasgos,enprimerlugarserealizaunaoperacindeextraccin,transformaciny
carga(Extract,Transform&LoadoETL)desdelasfuentesdedatosorigen,situadasenelreaoperacional,auna
basededatosqueseencuentraenelreadeintegracin,utilizandoparaellopaquetesdelosServiciosde
Integracin(SQLServerIntegrationServicesoSSIS),loscualesrealizarntambintareasdedepuracinde
datos.
Acontinuacinpasaramosalafasedeconstruccindelcubo,quedesarrollaremosutilizandolasherramientasde
losserviciosdeanlisis(SSAS).Finalmente,llegaremosalafasedeaccesoaloscubosporpartedelosusuarios
finales,paraloqueexistendiversosproductostalescomoReportingServices(SSRS),Excel,etc.

Elementosfsicos.Tablasdehechosydimensiones
Anivelfsico,paraconstruiruncubodedatosnecesitamosunabasededatosquecontengaunatabla
denominadatabladehechos,cuyaestructuraestarformadaporunaseriedecampos,denominadoscamposde
medida,apartirdeloscualesobtendremoslosresultadosnumricosdelcuboyporotrolado,unconjuntode
campos,denominadoscamposdedimensin,queutilizaremosparaunirconlastablasdedimensiones,afinde
poderobtenerresultadosfiltradosporlasdiversasdimensionesdequeconsteelcubo.
Elotropilarfundamentalparalacreacindeuncubolocomponenlastablasdedimensiones.Paracada
dimensinocategoradeconsulta/filtroqueincorporemosanuestrocubonecesitaremosunatabla,queuniremos
conlatabladehechosporuncampoclave.Estatabladedimensionesactuarcomocatlogodevalores,tambin
denominadosatributos,queusaremosdeformaindependienteocombinadosconotrasdimensiones,paraobtener
resultadosconunmayorgradodeprecisin.

Desarrollandouncubodedatos
Unavezexplicadaslasnocionesbsicasnecesarias,entramosenlaparteprcticadelartculo,donde
desarrollaremosnuestropropiocubodedatos.Centraremostodosnuestrosesfuerzosexclusivamenteenla
creacindelcubo,sinabordaraqulasoperacionesdeextraccin,transformacinycarga,queseranrealizadas
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

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

mediantepaquetesSSIS,yaqueestosltimossonaspectosquequedanfueradelmbitodeesteartculo,
quedandopendientesparaunafuturaentrega.
Enprimerlugar,desdeelmendeWindowsiniciaremosSQLServerBusinessIntelligenceDevelopmentStudio,
cuyoaccesodirectoseencuentraenelgrupodeprogramasMicrosoftSQLServer2008R2.Setratadeuna
versinespecialdeVisualStudiopreparadaparadesarrollarproyectosdeBI,encuyodilogoinicial
seleccionaremoscomotipodeproyectoAnalysisServicesProject,alquedaremoselnombreCuboDatosAdvWorks.
Acontinuacin,haciendoclicderechoenelnodoDataSourcesdelExploradordeSoluciones,seleccionaremosla
opcinNewDataSource,queabrirelasistenteparacrearlafuentededatosdelcubo,yqueennuestrocaso
serlabasededatosdepruebaAdventureWorksDW2008,cuyaestructurayaseencuentrapreparadaparaser
utilizadaeneldiseodecubosdedatos.
Dejaremoslasopcionespordefectoenelasistentehastallegaralpasocorrespondientealaconexincontrala
fuentededatos,dondeseleccionaremosAdventureWorksDW2008.Alllegaralpasofinaldeesteasistente
veremosunresumendelafuentededatosquehemoscreado.

Nuestrosiguientepasoconsistirencrearunavistadelafuentededatos,quenospermitir,comosunombre
indica,definirunavisualizacinpersonalizadasobrelabasededatos,incluyendoaquellastablasquenecesitemos
paracrearelcubo.
Loqueenestecubodeejemplovamosamedireselimportedelasventasquelosdistribuidoresdelacompaa
AdventureWorkshanfacturado,pudiendoconsultar/filtrarlosresultadosporeltipodemonedaenqueseha
realizadolaventa,yelreageogrficaalaquesehaenviadoelpedido.Paraelloutilizaremoslatabla
FactResellerSalescomotabladehechos,siendoDimCurrencyyDimSalesTerritorylastablasdedimensin.
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

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

HaciendoclicderechoenelnodoDataSourceViewsdelExploradordeSolucionesseleccionaremoslaopcinNew
DataSourceView,queabrirunasistenteencuyoprimerpasoelegiremoslafuentededatosrecincreada,yen
elsegundolastablasqueacabamosdemencionar.

Finalizadoesteasistenteaparecersuventanadediseo,enlaquevemosundiagramadelastablas
seleccionadas,conlasrelacionesexistentesentrelasmismas.

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

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

Creacindedimensiones.Dimensinbsica
Elsiguientepasoconsistirencrearladimensinquenospermitirconsultar/filtrarlainformacindelcuboporel
tipodemonedaconelqueserealizelpagodelpedido.HaciendoclicderechoenelnodoDimensionsdel
ExploradordeSolucionesseleccionaremoslaopcinNewDimension,inicindoseelconsabidoasistente,cuyo
primerpaso,SelectCreationMethod,dejaremosconlaopcinpredeterminadaUseanexistingtable.Alentraren
elpasoSpecifySourceInformation,treslistasdesplegablesnospermitirnconfigurarlainformacinaobtener
paraladimensin:conMaintableelegiremoslatablaqueutilizaremosenladimensin:DimCurrencyconKey
columnsindicaremoslaclaveprimariayfinalmente,conNamecolumnseleccionaremoselcampoCurrencyName,
queidentificarelatributoavisualizar.

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

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

EnelpasoSelectDimensionAttributes,elasistentenosofrecerCurrencyKeycomoatributodeladimensin,el
cualutilizaremos,perocambiandosunombreaCurrency.Unatributoesuncampo,normalocalculado,
pertenecientealatabladedimensin,quesemostrarcomounaetiquetaencualquierlugarenelquela
dimensinparticipecomopartedeunaconsultacontraelcubodedatos.

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

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

AlllegaralltimopasodaremoselnombreCurrencyaladimensinyfinalizaremoselasistente,mostrndoseel
diseadordedimensionesconlaestructuraqueacabamosdecrear.Observandolaspropiedadesdelatributo
Currency,lasmsimportantessonName,quecontieneelnombrequeaparecerenlasconsultascontraelcubo
KeyColumns,quecontieneelcampoclavedelatablaqueserelacionarconlatabladehechosyNameColumn,
quecontieneelcampodelatablaquemostrarelvalordelatributo.

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

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

Enelcasodequenecesitemosaadirmsatributosaladimensin,simplementetendremosquearrastrary
soltarloscamposdesdelatabladelpanelDataSourceViewhastaelpanelAttributesdeestediseador.
UnavezcreadostodoslosatributosprocesaremosladimensinhaciendoclicenelbotnProcessdelabarrade
herramientasdeldiseador,omedianteelmendeVisualStudioBuild|Process.Completadoelprocesodela
dimensin,haremosclicenlapestaaBrowserdeldiseador,dondepodremosexaminarcmohaquedado
construida.

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

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

Creacindedimensiones.Dimensinjerrquica
Ademsdelasdimensionesdeunniconivel,comolaqueacabamosdeverenelapartadoanterior,esposible
creardimensionesqueagrupenlosdatosenvariosniveles,loqueproporcionarunamayorcapacidadde
desagregacinsobrelainformacindelcubocuandosteseaconsultadoatravsdeunadimensindeestetipo.
Aesteelementodeunadimensinseledenominajerarqua.
PongamoscomoejemplolatablaDimSalesTerritory,incluidaenelDataSourceViewdenuestroproyectode
ejemplo.EnlamismapodemosverquelacombinacindeloscamposSalesTerritoryGroup,SalesTerritoryCountry
ySalesTerritoryRegionpermiteestablecervariosnivelesdeagrupamientoparalosdatos.

Supongamosquenecesitamoscrearunadimensinbasadaenestatablaquepermita,partiendodelcampo
SalesTerritoryGroup,unefectosimilarde"despliege"jerrquicoporniveles.
data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B%

10/18

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

Paraello,crearemosenprimerlugarladimensinutilizandoelasistenteenlaformaexplicadaenelanterior
apartado.ElatributoseleccionadopordefectoporelasistenteserelcorrespondientealcampoSalesTerritoryKey,
claveprimariadelatabla.
Unavezsituadoseneldiseadordedimensiones,arrastraremosdesdelatabladelpanelDataSourceViewlos
camposSalesTerritoryGroup,SalesTerritoryCountryySalesTerritoryRegion,ylossoltaremosenelpanel
Attributesdeestemismodiseador.
AcontinuacinarrastraremoselatributoSalesTerritoryGrouphastaelpanelHierarchies,locualcrearuna
nuevajerarquaalaquecambiaremoselnombrepredeterminadoporSalesTerritory.Tambindepositaremosen
estajerarqualosatributosSalesTerritoryCountryySalesTerritoryRegion,observandoquejuntoalnombrede
lajerarquaapareceuniconodeadvertenciaquenosinformadequelasrelacionesentrelosatributosdela
jerarquanoestnadecuadamentecreadas,loquepuedeafectarnegativamentealprocesodeladimensin.

ParasolucionaresteinconvenienteharemosclicenlapestaaAttributeRelationships,dondeveremoslas
relacionesentrelosatributosqueautomticamentehacreadoeldiseador.

Estasrelaciones,sinembargo,nosonvlidasparanuestrospropsitos,porloqueseleccionaremoslasflechasdel
diagramaquelasrepresentanylaseliminaremos.Paracrearlasnuevasrelacionesarrastraremosdesdeel
atributoorigenhastaeldestino,hastadejarlastalycomoapreciamosenlasiguientefigura.

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

11/18

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

AntesdeprocesarladimensinvolveremosalapestaaDimensionStructureparacomprobarquelaadvertencia
hadesaparecido.PorotroladoseleccionaremostodoslosatributosdelpanelAttributes,asignandoelvalorFalse
ensupropiedadAttributeHierarchyVisible,conloqueconseguiremosquelosatributosindependientesnose
muestren,yaqueloquenosinteresaenestecasoesexplorarsolamentelajerarqua.Acontinuacinvemosel
resultadodeestadimensin,contodosloselementosdelajerarquaexpandidos.

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

12/18

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

EmpezaremoshaciendoclicderechoenelnodoCubesdelExploradordeSoluciones,yseleccionandolaopcinAdd
Cube,loqueabrirelasistentedecreacin,enelquedejaremossusvalorespredeterminadoshastallegaral
pasoSelectMeasureGroupTables,quecomosunombreindica,nospideseleccionarlatablaquecontendrlos
camposqueusaremoscomomedidasparaelcubo,esdecir,latabladehechos,queenestecasoser
FactResellerSales.

HaciendoclicenNextentraremosenelpasoSelectMeasures,dondetendremosqueseleccionarloscamposque
actuarncomomedidasdelcubo.Elobjetivodeestecuboconsisteenaveriguarelimportedelasventas
realizadasporlosdistribuidores,porlotanto,seleccionaremossolamenteelcampoSalesAmount.

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

13/18

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

Elsiguientepasonossolicitalaseleccindelasdimensionesquevanaformarpartedelcubo.Automticamente
sehandetectadolasdimensionescreadaspornosotrosconanterioridad,lascualesyaseofrecenseleccionadas
pordefecto.

Acontinuacin,elasistenterealizaunabsquedaenlatabladehechos,porsialgncampopudieraser
susceptibledesertambintratadocomounadimensin.Dadoquenonecesitamosestacaracterstica,
desmarcaremoslaseleccindelatabladehechoscomofuentedeorigenparalacreacindedimensiones.
data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B%

14/18

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

Yllegamosalpasofinal,dondedaremosalcuboelnombredeVentasDistribuidores,finalizandoaselasistente.

Comoresultadoobtendremoslapantallacorrespondientealdiseadordecubos,quemuestradiversoselementos
deimportancia,talescomoelpaneldedimensiones,diagramadetablas,medidas(Measures),etc.

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

15/18

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

Esprecisamenteenelpaneldemedidasdondeaparecelamedidaquehemosseleccionadoenelasistente,peroa
lacualcambiaremossunombreporImporteVentasdesdelaventanadepropiedades.Enestamismaventana
podemosobservarelnombre,lafuncindeagregadoqueseusaparacalcularlamedida,elcampodelatabla
utilizado,cadenadeformato,etc.

Paraquelamedidaaparezcacorrectamenteformateada,ademsdeasignarlacadenadeformatoasupropiedad
FormatString,enlaspropiedadesdelcubotenemosqueasignarelvalorSpanish(Spain)alapropiedadLanguage.
Finalmente,antesdepoderconsultarelcubo,aligualquehicimosconlasdimensiones,debemosprocesarlo
data:text/htmlcharset=utf8,%3Ch2%20style%3D%22margin%3A%200px%3B%20fontsize%3A%201.2em%3B%20padding%3A%200.5em%200em%3B%

16/18

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

haciendoclicenelbotnProcess,queabrirelcuadrodedilogodeprocesamientodelcubo,enelqueharemos
clicensubotnRun.

Unavezqueelcubohasidoprocesado,podemosconsultarsucontenidohaciendoclicenlapestaaBrowser.En
elpanelMeasureGroupexpandiremoselnodoMeasureshastallegaralamedidaImporteVentas,que
arrastraremoshastalazonacentraldelvisualizador.AcontinuacinarrastraremosladimensinSalesTerritory
hastaelmargenizquierdodelvisualizador.Podemoshacerclicderechosobreestadimensin,seleccionandola
opcinExpandItems,loqueproducirundesplieguedeloselementosdeladimensin.Paraterminar
arrastraremosladimensinCurrencyhastaelmargensuperior.Comoresultadoobtendremosunacuadrculade
datosenlaquecadaceldamostrarelvalordelamedidaparalainterseccindelasdimensionessituadasenlas
columnasyfilasdelvisualizadordedatos.

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

17/18

2/12/2014

CubosdedatosenSQLServer2008AnalysisServicesElaprendizdebrujo

Conclusiones
EnelpresenteartculohemosrealizadounaintroduccinaldesarrollodecubosdedatosconSQLServer2008
AnalysisServices,uncomponentedelafamiliaSQLServerdestinadoaproporcionarsolucionesdeinteligenciade
negocioconlasqueexplotarelpotencialdeanlisisqueresideenlosdatosdelasorganizaciones.Las
posibilidadesypotenciadeestaherramientasonenormes,yconfiamosenqueesteartculoanimeallectora
llevarlasalaprctica.

Published11/9/201321:09porLuisMiguelBlanco

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

18/18

Das könnte Ihnen auch gefallen