indicadoresdegestin.
Uncasodeestudioenelcontextode
unERP.
ProyectoFindeCarrera
PresentadoporMartaLunaPozo
DirigidoporPatricioLetelierTorres
Valencia,Juniode2010
Agradecimientos
Estosdosltimosaoshansidoparam,losmsimportanteseintensosdemitrayectoria
profesional. En este tiempo he tenido la enorme suerte de conocer y trabajar con
personas que me han ayudado en la consecucin del presente proyecto y motivado a
seguiradelanteconmisobjetivos.Atodasellasmilgraciasperoenespecialquisierahacer
mencindeagradecimientoalassiguientespersonas.
En primer lugar quisiera mencionar a mi director de proyecto Patricio Letelier, al cual
admiro como persona y como profesional. Me gustara agradecerle la gran oportunidad
quemehadado,laconfianzaquehadepositadoenmysobretodoeltiempoyelesfuerzo
quemehadedicado.
TambinmegustaraagradeceralossociosdeADDInformticaelapoyoqueherecibido
eneldesarrollodeestetrabajoyhaberconfiadoenmparallevarloacabo.
Amispadresymihermanalesagradezcoquemehayanayudado,apoyadoymotivadoen
los momentos ms duros. Sobretodo a mis padres, gracias por haberme escuchado y
aconsejado,porestarahsiempre.
ndice
Captulo1.Introduccin..................................................................................................................................................7
1.1.Motivacin...............................................................................................................................................................7
1.2.Objetivodelproyecto..........................................................................................................................................7
1.3.Organizacindelamemoria............................................................................................................................8
Captulo2.BusinessIntelligence.................................................................................................................................9
2.1.QuesBusinessIntelligence?........................................................................................................................9
2.2.ComponentesdelBusinessIntelligence...................................................................................................10
2.3.SeleccindeherramientasdeBusinessIntelligence..........................................................................13
2.4.reasfuncionalesybeneficiosdelBusinessIntelligence.................................................................13
2.5.ProtagonistasdelBusinessIntelligence...................................................................................................15
Captulo3.DataWarehouse.......................................................................................................................................17
3.1.DataWarehousingyDataWarehouse......................................................................................................17
3.2.VentajaseinconvenientesdeunDataWarehouse..............................................................................18
3.3.DiferenciasentreunDataWarehouseyunabasededatosoperacional....................................20
3.4.ArquitecturadeunDataWarehouse.........................................................................................................20
3.5.DiseodeunDataWarehouse.....................................................................................................................24
3.6.ExplotacindeunDataWarehouse:HerramientasOLAP................................................................28
Captulo4.Procesodedesarrollodeindicadores.............................................................................................37
4.1.QuesTUNEUP?.............................................................................................................................................37
4.2.TUNEUPProcessTool....................................................................................................................................39
4.3.Workflowdedesarrollodeindicadores...................................................................................................41
Captulo5.MarcotecnolgicodeunasolucinBI.............................................................................................49
5.1.Componentesdelmarcotecnolgico.........................................................................................................49
5.2.MicrosoftBusinessIntelligence...................................................................................................................50
Captulo6.Casodeestudio..................................................................................................................................53
6.1.QuesResiPlusBI?.........................................................................................................................................53
6.2.FuncionamientodeResiPlusBI...................................................................................................................53
6.3.Consideracionespreviasaldesarrollodereports................................................................................53
6.4.Desarrolloeimplementacindeindicadores........................................................................................56
Captulo7.Conclusiones............................................................................................................................................129
Referencias......................................................................................................................................................................131
Anexos...............................................................................................................................................................................133
AnexoA:PlantillaIndicador................................................................................................................................135
AnexoB:DocumentodeAyudadelIndicador..............................................................................................137
AnexoC:DocumentodeAnlisis.......................................................................................................................143
AnexoD:DocumentodeDiseo.........................................................................................................................145
AnexoE:DesarrollodepaquetesETLenMicrosoftIntegrationServices........................................147
AnexoF:DesarrollodecubosOLAPenMicrosoftAnalysisServices..................................................163
AnexoG:CreacindetrabajosconelAgenteSQLServer........................................................................175
AnexoH:ExplotacindeindicadoresycreacindeinformesusandoMicrosoftOfficeExcel...183
AnexoI:DesarrollodedashboardsenMicrosoftOfficeSharePointServer.....................................189
Captulo1. Introduccin
1.1. Motivacin
Gestionar la informacin en las empresas es, hoy en da, un factor clave para poder
sobrevivir en un mercado cambiante, dinmico y global. Aprender a competir con esta
informacin es fundamental para la toma de decisiones, el crecimiento y la gestin de
nuestra empresa. La disciplina denominada Inteligencia de Negocios (Business
Intelligence) nos acerca a los sistemas de informacin que nos ayudan a la toma de
decisiones en nuestra organizacin. Toda empresa dispone, no importa su tamao, de
sistemas de informacin ms o menos sofisticados que son convenientes de analizar y
optimizarmediantesolucionesBusinessIntelligence.
Sin embargo, el desarrollo de una solucin de Business Intelligence conlleva todas las
dificultades de un proyecto de ingeniera; complejidad de la implementacin, requisitos
voltiles, desafos tecnolgicos, desarrollo colaborativo, dificultad para asegurar la
calidad, etc. Adems, el mercado cada vez exige plazos de entrega ms reducidos y
presupuestosmsajustados.Portodoesto,pareceobvioqueesnecesarioyfundamental
elusodemetodologasyestndaresquesecentrenenlamejoradeprocesodeestetipo
desoluciones.
TUNEUP es una metodologa que encaja perfectamente en aquellas soluciones de
BusinessIntelligencequeofrecenunvalordenegocioalclientemedianteentregascortas
ycontinuas,yqueportanto,requierenundesarrolloiterativoeincremental.
El presente trabajo se ha realizado en el contexto de un convenio universidadempresa
durante 2 aos. La PYME es una empresa de desarrollo de software que tiene un ERP
pertenecientealsectorsociosanitarioycuentaconmsde700clientes.Laautoradeeste
proyecto ha participado en el desarrollo y mejora de ResiPlus BI (ResiPlus Business
Intelligence),suitedeInteligenciadeNegociosofertadaporestaempresa.
1.2. Objetivodelproyecto
El objetivo de este proyecto es proponer un marco tecnolgico para una solucin de
BusinessIntelligence,contextualizadoenelserviciodeInteligenciadeNegociosResiPlus
BI,quepermitailustrarcmoseabordaeldesarrollodeindicadoresdegestin.
Concretamente,losobjetivosespecficosson:
Validarqueelmarcotecnolgicopropuestoparaeldesarrollodeindicadoresesel
adecuado.
ValidarlautilidaddelametodologaTUNEUPysusworkflowseneldesarrollode
indicadores.
1.3. Organizacindelamemoria
Acontinuacinsepresentalaestructuradelproyecto:
Elcaptulo1incluyeunaintroduccinalamotivacindenuestrotrabajoyelobjetivoque
persigueesteproyectoenelreadelBusinessIntelligence.
En el captulo 2 se ha realizado una introduccin al concepto de Business Intelligence,
viendo cada uno de los componentes que lo forman, reas funcionales, beneficios y los
actualesprotagonistas.
En el captulo 3 se analizan todos los aspectos de un Data Warehouse y se habla de las
herramientasOLAPutilizadasparasuexplotacin.
El captulo 4 explica los aspectos bsicos de la metodologa TUNEUP e ilustra un
workflowespecficoparasolucionesdeBusinessIntelligence.
Enelcaptulo5seproponeunmarcotecnolgicoparaunasolucinBusinessIntelligence,
describiendocadaunodeloscomponentesqueloforman.
Elcaptulo6ilustracmodesarrollarindicadoresenelmarcotecnolgicopropuestoenel
captuloanterior,contextualizadoenelcasodeestudioResiPlusBI.
Finalmente,elcaptulo7concluyeelproyectoconunresumendeltrabajorealizado.
Adicionalmente,hayunaseriedeanexosqueincluyenejemplosdedocumentosutilizados
duranteeldesarrollo deindicadoresyunostutorialesquepermitenintroducirnosenel
usodelastecnologiaspropuestas.
Captulo2. BusinessIntelligence
Noesposiblegestionarloquenosepuedemedir,decaWilliamHewlet.Enestesentido,y
enlostiemposquenosocupan,hayunanecesidadanmayordeconocerelalcancedelos
principales indicadores del negocio. Para una correcta gestin es necesario tener la
posibilidad de analizar rpidamente los puntos crticos, establecer tendencias, as como
poder determinar relaciones causa efecto ante el cambio en determinados parmetros
externos o internos. As, el establecimiento de los denominados sistemas de Business
Intelligence y el uso del potencial actual de las herramientas TIC 1 permiten un
tratamientocadavezmsrpido,complejoeinmediatodelosdatos,delainformaciny,
endefinitiva,delconocimiento.
Los antiguos sistemas de informacin para la Direccin, que convertan datos
operacionales en indicadores de gestin (la mayor parte de las veces de naturaleza
econmicofinanciera), se han visto absorbidos y superados por un nuevo concepto del
tratamientodelainformacinparalatomadecisiones:BusinessIntelligence.
EnestecaptuloserealizaunaintroduccinalconceptodeBusinessIntelligence,viendo
cadaunodeloscomponentesqueloforman,reasfuncionales,beneficiosylosactuales
protagonistasenelmundodelBusinessIntelligence.
Elmaterialpresentadoenestecaptulohasidoextradode[5]y[12].
2.1. QuesBusinessIntelligence?
BusinessIntelligence(BI)eslahabilidadparatransformarlosdatoseninformacin,yla
informacin en conocimiento, de forma que se pueda optimizar el proceso de toma de
decisionesenlosnegocios(Figura2.1.).
Figura2.1.Datos,InformacinyConocimiento
Desdeunpuntodevistamspragmtico,yasocindolodirectamenteconlastecnologas
de la informacin, podemos definir Business Intelligence como el conjunto de
metodologas, aplicaciones y tecnologas que permiten reunir, depurar y transformar
datosdelossistemastransaccionaleseinformacindesestructurada(internayexternaa
lacompaa)eninformacinestructurada,parasuexplotacindirecta(reporting,anlisis
OLAP 2 ,etc.)oparasuanlisisyconversinenconocimiento,dandoassoportealatoma
dedecisionessobreelnegocio.
1 Las tecnologas de la informacin y la comunicacin (TIC o NTIC para Nuevas Tecnologas de la Informacin y de la
ComunicacinoITparaInformationTechnology)agrupanloselementosylastcnicasutilizadaseneltratamientoyla
transmisindelasinformaciones,principalmentedeinformtica,Internetytelecomunicaciones.
2OLAPeselacrnimoeninglsdeprocesamientoanalticoenlnea(OnLineAnalyticalProcessing).
2.2. ComponentesdelBusinessIntelligence
Durantelossiguientespuntossevanaestudiarlosdistintoscomponentesdeunasolucin
BI. Para comenzar, se observar cal es el tpico esquema de una solucin de este tipo,
pasando a continuacin a ofrecer las definiciones y caractersticas de los distintos
componentesqueloforman.
2.2.1. EsquemadeunasolucindeBusinessIntelligence
UnasolucindeBusinessIntelligence(Figura2.2.)partedelossistemasdeorigendeuna
organizacin (bases de datos, ERPs3, ficheros de texto, etc.), sobre los que suele ser
necesarioaplicarunatransformacinestructuralparaoptimizarsuprocesoanaltico.
Para ello se realiza una fase de extraccin, transformacin y carga de datos. Esta etapa
sueleapoyarseenunalmacnintermedio,llamadoODS 4 ,queactacomopasarelaentre
los sistemas fuente y los sistemas destino (generalmente un Data Warehouse), y cuyo
principal objetivo consiste en evitar la saturacin de los servidores funcionales de la
organizacin.
Lainformacinresultante,yaunificada,depuradayconsolidada,sealmacenaenunData
Warehouse corporativo, que puede servir como base para la construccin de distintos
Datamartsdepartamentales.
UnDatamartesunabasededatosespecializada,departamental,orientadaasatisfacerlas
necesidades especficas de un grupo particular de usuarios. En otras palabras, un
Datamart es un subconjunto del Data Warehouse corporativo con transformaciones
especficasparaelreaalaquevadirigido.EstosDatamartssecaracterizanporposeerla
estructuraptimaparaelanlisisdelosdatosdeesareadelaempresa,yaseamediante
basesdedatostransaccionales(OLTP 5 )omediantebasesdedatosanalticas(OLAP).
3Lossistemasdeplanificacinderecursosempresariales,oERP(porsussiglaseningls,Enterpriseresourceplanning)
sonsistemasdeinformacingerencialesqueintegranymanejanmuchosdelosnegociosasociadosconlasoperaciones
deproduccinydelosaspectosdedistribucindeunacompaacomprometidaenlaproduccindebienesoservicios.
4ODSeselacrnimoeninglsdealmacnoperacionaldedatos(OperationalDataStore).
5OLTPeselacrnimoeninglsdeprocesamientodetransaccionesenlnea(OnLineTransactionProcessing).
10
Figura2.2.EsquemadeunasolucinBI
6KPI,delinglsKeyPerformanceIndicators,oIndicadoresClavedeRendimiento,midenelniveldeldesempeodeun
proceso, enfocndose en el "cmo" e indicando qu tan buenos son los procesos, de forma que se pueda alcanzar el
objetivofijado.
11
2.2.3. ConstruccinyalimentacindelDataWarehousey/odelosDatamarts
Un Data Warehouse es una base de datos corporativa que replica los datos
transaccionales una vez seleccionados, depurados y especialmente estructurados para
actividadesdequeryyreporting.
La vocacindelDataWarehouseesaislarlossistemasoperacionalesdelasnecesidades
de informacin para la gestin, de forma que cambios en aqullos no afecten a stas y
viceversa (nicamente cambiarn los mecanismos de alimentacin, no la estructura,
contenidos,etc.).
NodisearyestructurarconvenientementeydesdeunpuntodevistacorporativoelData
Warehouse y los Datamarts generar problemas que pueden condenar al fracaso
cualquier esfuerzo posterior: informacin para la gestin obtenida directamente a los
sistemas operacionales, florecimiento de Datamarts descoordinados en diferentes
departamentos,etc.
Endefinitiva,segnlaestructuracinyorganizacindecadacompaa,puedenoriginarse
situaciones no deseadas y caracterizadas generalmente por la ineficiencia y la falta de
calidadenlainformacinresultante.
2.2.4. Herramientasdeexplotacindelainformacin
Es el rea donde ms avances se han producido en los ltimos aos. Sin embargo, la
proliferacindesolucionesmgicas y su aplicacin coyunturalparasolucionaraspectos
puntuales ha llevado, en ocasiones, a una situacin de desnimo en la organizacin
respectoalosbeneficiosdeunasolucinBI.Sinentraradetallarlasmltiplessoluciones
que ofrece el mercado, a continuacin se identifican los modelos de funcionalidad o
herramientas bsicas (cada producto de mercado integra, combina, potencia, adapta y
personalizadichasfunciones):
12
2.3. SeleccindeherramientasdeBusinessIntelligence
La seleccin de una u otra herramienta estar en funcin de mltiples aspectos a
considerar:
Paraqusequierelainformacin.Bajoelconceptogeneralsoportealatomade
decisionesseescondenmltiplesnecesidadesparticulares:contrastarquetodova
bien, analizar diferentes aspectos de la evolucin de la empresa, presentar
informacindeformamsintuitiva,compararinformacinendiferentesperiodos
de tiempo, comparar resultados con previsiones, identificar comportamientos y
evoluciones excepcionales, confirmar o descubrir tendencias e interrelaciones,
necesidad de realizar anlisis predictivos, etc., son todas ellas necesidades
parcialesdentrodelconceptogeneral.
2.4. reasfuncionalesybeneficiosdelBusinessIntelligence
Originariamente, los sistemas de informacin a la direccin aportaban bsicamente
informacin econmicofinanciera. Con la extensin de las herramientas de Business
Intelligence, este concepto abarca ahora todas las reas funcionales de la empresa:
recursoshumanos,logstica,calidad,comercial,marketing,etc.
13
En la actualidad, estas visiones funcionales han sido superadas por el concepto de CPM
(CorporatePerformanceManagement),queaportainformacinintegraldelaempresaen
todassusreasyatravsdetodossusciclosdegestin:planificacin,operacinyanlisis
deresultados.
Entre los obstculos tradicionales a la implantacin BI se encuentra la dificultad para
calcularsuROI(ReturnOnInvestment).Lamayorpartedelosbeneficiosproducidosson
intangibles,derivadosdelamejoradelagestindelacompaa.
En trminos econmicos, se evidencia una reduccin de costes por incremento de la
eficienciadelainfraestructuraTICyunincrementodelaproductividaddelosempleados,
directamente derivado de la disponibilidad de informacin; estas magnitudes son
difcilmentecuantificables,aunquediferentesfuenteslassitanentornoal5%y1015%,
respectivamente.
Cualitativamente,losbeneficiossederivan,obviamente,delincrementodelaeficienciaen
el proceso de toma de decisiones: mayor informacin, de mejor calidad, ms fiable,
compartida por toda la organizacin, menores tiempos de respuesta en su obtencin,
mejoradelacomunicacinenlaempresaycreacindeunlenguajehomogneo.
En el debe de las implantaciones BI hay que destacar la dificultad de integracin con el
restodesistemasdelacompaay,sobretodo,ladificultadparaconjugarlasexpectativas
de los usuarios con las soluciones implementadas, por lo que los aspectos de definicin
conceptualyseleccindeplataforma,juntoalagestindelcambioenlaimplantacinde
losproyectos,adquierenunaimportanciarelevante.Laexperienciadicequelosfactores
puramenteorganizativosoriginanmsdelamitaddelosfracasosdeproyectosBI.
Portodoello,paraelxitodeunaestrategiaBIpodemosidentificarlossiguientesfactores
crticos:
Importanciadeldiseo.
Importanciadeconsensuarconlosusuarios.
Importanciadecontarconapoyoeimpulsodesdeladireccingeneral.
Importanciadecontarconpersonalcualificado,tantoenlasfasesdediseocomo
deimplantacin.
14
2.5. ProtagonistasdelBusinessIntelligence
A continuacin se muestra un informe publicado por Gartner Inc. 7 [2] sobre las mejores
plataformas de Business Intelligence (Figura 2.3.). El estudio est organizado en tres
categorasdefuncionalidad:integracin,suministrodeinformacinyanlisis.
Figura2.3.PlataformasdeBusinessIntelligence
Los lderes son definidos como aquellos proveedores que pueden ofrecer grandes
implementacionesempresarialesysoportarunaampliaestrategiadeBI.Segnelgrfico,
estos lderes son SAP, Oracle, Microsoft, IBM, SAS, Information Builders y
Microstrategy. Adems, se observa que no aparecen compaas habituales de dicho
informecomoHyperion,CognosoBusinessObjects,yaquetodasellasfueronadquiridas
en los ltimos aos por parte de las compaias lderes. Concretamente, Hyperion fue
adquirida por Oracle en 2007, Cognos fue adquirida por IBM en 2008 y finalmente
BusinessObjectsfueadquiridaporSAPen2008.
Elrestodecompetidoressonsolucionesdenicho,queofrecensolucionesdevisualizacin
avanzada (tpicamente para cuadros de mando y anlisis OLAP). Estos "pequeos"
proveedores tienen hueco debido a la complejidad, limitaciones y costes que tienen los
grandesproveedoresenestesegmentodelmercadoBI.
7ElCuadranteMgicodeGartneresunarepresentacingrficadelmercadoduranteunperiodoespecficodetiempo.
MuestraelanlisisdesarrolladoporGartnerInc.,sobrecmosecomportanciertosactoresdelmercadoenfuncinde
diferentes criterios de evaluacin. El informe de Gartner no apoya a ninguno de los productos o proveedores
mencionadosnitampocoaconsejaelusoolaseleccindelosproveedorescolocadosenelcuadrantedelderes.
15
16
Captulo3. DataWarehouse
En el esquema de una solucin de Business Intelligence, un Data Warehouse viene
determinadoporsusituacincentralcomofuentedeinformacinparalasherramientas
deanlisis.
En el actual captulo se explicar con ms detalle los conceptos de Data Warehousing y
DataWarehouse,cmosediseasteltimoyenquconsistesuprocesodeextraccin,
transformacinycargallamadoETL 8 .
El materialpresentadoenestecaptulohasidoextradodelassiguientesfuentes:[1],[3],
[9]y[13].
3.1. DataWarehousingyDataWarehouse
Para llevar a cabo BI, es necesario gestionar datos guardados en diversos formatos,
fuentesytipos,paraluegodepurarloseintegrarlos,ademsdealmacenarlosenunsolo
destino o base de datos que permita su posterior anlisis y exploracin. Por esto, es
imperativo y de vital importancia contar con un proceso que satisfaga todas estas
necesidades.EsteprocesosedenominaDataWarehousing.
DataWarehousingeselprocesoencargadodeextraer,transformar,consolidar,integrary
centralizarlosdatosquelaempresageneraentodoslosmbitosdesuactividaddiariade
negocios (compras, ventas, produccin, etc) y/o informacin externa relacionada.
Permitiendodeestamaneraelaccesoyexploracindelainformacinrequerida,atravs
de una amplia gama de posibilidades de anlisis multivariables, con el objetivo final de
darsoportealprocesodetomadedesicionesestratgicoytctico.
Data Warehousing posibilita la extraccin de datos de sistemas operacionales y fuentes
externas, permite la integracin y homogeneizacin de los datos de toda la empresa,
proveeinformacinquehasidotransformadaysumarizada,paraqueayudeenelproceso
detomadedecisionesestratgicasytcticas.
Data Warehousing, convertir entonces los datos operacionales de la empresa en una
herramientacompetitiva,debidoaquepondradisposicindelosusuariosindicadosla
informacinpertinente,correctaeintegrada,enelmomentoquesenecesita.
Pero para que Data Warehousing pueda cumplir con sus objetivos, es necesario que la
informacin que se extrae, transforma y consolida, sea almacenada de manera
centralizada en una base de datos con estructura multidimensional denominada Data
Warehouse.
Un Data Warehouse (DW) 9 es un repositorio central o coleccin de datos, en el cual se
encuentra integrada la informacin de la organizacin que se usa como soporte para el
procesodetomadedecisionesgerenciales.
ElconceptodeDWcomenzasurgircuandolasorganizacionestuvieronlanecesidadde
usarlosdatosquecargabanatravsdesussistemasoperacionalesparaplaneamientoy
toma de decisiones. Para cumplir estos objetivos se necesitan efectuar consultas que
8ETLeselacrnimoeninglsdeextraer,transformarycargar(Extract,TransformandLoad).
A partir de este momento utilizaremos la sigla DW o el trmino almacn de datos para hacer referencia al Data
Warehouse.
17
sumarizanlosdatos,yquesisehacensobrelossistemasoperacionalesreducenmuchoel
rendimiento de las transacciones que se estn haciendo al mismo tiempo. Fue entonces
cuando se decidi separar los datos usados para reportes y toma de decisiones de los
sistemasoperacionalesydisearyconstruirDWsparaalmacenarestosdatos.
LasprincipalescaractersticasqueposeeunDWsedetallanacontinuacin:
Orientadoaltema:orientadoalainformacinrelevantedelaorganizacin.Enun
DWlainformacinseclasificaenbasealosaspectosdeintersparalaempresa,es
decir, se disea para consultar eficientemente informacin relativa a las
actividades bsicas de la organizacin, como ventas, compras y produccin, y no
para soportar los procesos que se realizan en ella, como gestin de pedidos,
facturacin,etc.
Variableeneltiempo:losdatossonrelativosaunperiododetiempoydebenser
incrementadosperidicamente.Lainformacinalmacenadarepresentafotografas
correspondientesaciertosperiodosdetiempo.
3.2. VentajaseinconvenientesdeunDataWarehouse
La utilizacin de un DW por parte de una organizacin conlleva una serie de ventajas.
Algunasdelasventajasmssobresalientessonlassiguientes:
Transformadatosorientadosalasaplicacioneseninformacinorientadaalatoma
dedecisiones.
Permitereaccionarrpidamentealoscambiosdelmercado.
Aumentalacompetitividadenelmercado.
Logra un impacto positivo sobre los procesos de toma de decisiones. Cuando los
usuarios tienen acceso a una mejor calidad de informacin, la empresa puede
lograr por s misma: aprovechar el enorme valor potencial de sus recursos de
18
Aumentodelaeficienciadelosencargadosdetomardecisiones.
Permitelatomadedecisionesestratgicasytcticas.
Noobstante,elusodelosalmacenesdedatosnoestexentodedesventajas,siendolas
mscomuneslassiguientes:
Existeresistenciaalcambioporpartedelosusuarios,yaquelaformadeconsultar
lainformacinparaelaborarinformesotomardecisionesvara.
Los beneficios del almacn de datos son apreciados en el mediano y largo plazo.
Estepuntoderivadelanterior,ybsicamenteserefiereaquenotodoslosusuarios
confiarn en el DW en una primera instancia, pero s lo harn una vez que
compruebensuefectividadyventajas.Adems,sucorrectautilizacinsurgedela
propiaexperiencia.
Infravaloracindelosrecursosnecesariosparalacaptura,cargayalmacenamiento
delosdatos.
Infravaloracindelesfuerzonecesarioparasudiseoycreacin.
Incrementocontinuodelosrequerimientosdelusuario.
SubestimacindelascapacidadesquepuedebrindarlacorrectautilizacindelDW
ydelasherramientasdeBIengeneral.
19
3.3. Diferenciasentre:DataWarehouseybasededatosoperacional
Lamayoradelossistemasoperacionalesestndirigidosalacargadedatos,concientoso
miles de transacciones diarias y repetitivas, que adems requieren un tiempo de
respuesta muy corto por parte de los usuarios. Ejemplos de este tipo de operaciones lo
sonlasreservasdevuelos,depsitosbancarios,yreservacionesdehotel.
Las bases de datos operacionales deben estar diseadas con el objetivo de hacer esta
tarealomseficienteposible.
SisecontraponenlascaractersticasdeunabasededatosoperacionalyunDW,sepuede
deducir que se est ante conceptos totalmente distintos a pesar de actuar los dos como
contenedores de informacin. En la siguiente tabla se pueden apreciar algunas de las
diferenciasexistentesentrelasdos:
Tabla1ComparativaentreBasedeDatosOperacionalyDWs
3.4. ArquitecturadeunDataWarehouse
Enestepuntoyteniendoencuentaqueyasehandetalladolascaractersticasgenerales
delDataWarehousing,sedefinirnydescribirntodosloscomponentesqueintervienen
ensuarquitecturaoambienteutilizandoelgrficodelaFigura3.1.
20
Figura3.1.ArquitecturaDataWarehouse
Tal y como se puede apreciar, el ambiente est formado por diversos elementos que
interactan entre s y que cumplen una funcin especfica dentro del sistema.
Concretamente, en una arquitectura Data Warehouse encontramos los siguientes
componentes:
Datosoperacionalesprocedentesdelasbasesdedatostransaccionalesydeotras
fuentesdedatosquegeneralaempresaensuaccionardiario.
Sistema ETL que realiza las funciones de extraccin de las fuentes de datos
(transaccionales o externas), transformacin (limpieza, consolidacin, etc.) y la
cargadelalmacn,realizandolassiguientesacciones:
- Extraccindelosdatos.
- Filtradodelosdatos:limpieza,consolidacin,etc.Unejemplodelimpiezade
datosseraeliminarlosdatosconvaloresnulosoincorrectos.
- Cargainicialdelalmacn:ordenacin,agregaciones,etc.
- Refresco del almacn: operacin peridica que propaga los cambios de las
fuentesexternasalalmacndedatos.
Repositoriopropiodedatosquecontieneinformacinrelevanteymetadatos 10 .
InterfacesyGestoresdeConsultaquepermitenaccederalosdatosysobrelosque
seconectanherramientasmssofisticadas(OLAP,mineradedatos).
SistemasdeIntegridadySeguridadqueseencargandeunmantenimientoglobal,
copiasdeseguridad,etc.
10Losmetadatossondatosquedescribenodaninformacindeotrosdatos,queenestecaso,existenenlaarquitectura
delDataWarehousing.Brindaninformacindelocalizacin,estructuraysignificadodelosdatos,bsicamentemapean
losmismos.
21
3.4.1. SistemaETLdeunDataWarehouse
LamigracindelosdatosdesdelasfuentesoperacionalesalDWrequierelanecesidadde
procesosparaextraer,transformarycargarlosdatos,actividadqueseconocecomoETL.
Extraer(Extract)
La primera tarea del proceso ETL consiste en extraer los datos almacenados en los
distintos sistemas de origen. En un nmero elevado de casos, en los proyectos de
almacenamiento de datos se fusionan datos que provienen de distintos sistemas de
origen. Cada sistema puede usar una organizacin distinta de los datos, o formatos
diferentes.Dichasfuentespuedenserbasesdedatos,ficherosplanos,etc.,seacualseasu
estructura. La tarea de extraccin convierte todos estos datos a un formato preparado
paracomenzarconelprocesodetransformacin.
El requerimiento imprescindible a la hora de realizar la tarea de extraccin es que la
misma cause un impacto mnimo en los sistemas de origen. Si la cantidad de datos a
extraeresmuyelevada,elsistemasepuederalentizar,oinclusocolapsarse,porloquelas
grandes operaciones de extraccin se suelen realizar en momentos donde el impacto
sobreelsistemaseaelmnimoposible.
Transformar(Transform)
Enlatareadetransformacinseaplicanunaseriadefuncionessobrelosdatosextrados
alobjetodeconvertirlosendatospreparadosparasucarga.Algunasfuentesdedatostan
solo requerirn mnimas transformaciones, mientras que otras necesitaran de un gran
nmerodeellas.
Entrelasoperacionesdetransformacinpodemosencontrarlassiguientes:
Traduccinycodificacindecdigos.
Obtencindevalorescalculados.
Generacindenuevoscampos.
Divisindelainformacin.
Unindedatosdemltiplesfuentes.
Cargar(Load)
Eslatareamediantelacuallosdatosyatransformadosenlafaseanteriorsoncargadosen
elsistemadedestino.Duranteestafaseseinteractadirectamenteconlasbasesdedatos
de destino, por lo que se aplicaran todas las restricciones y disparadores que se hayan
definidoenlamisma,contribuyendoestehechoaquesegaranticelacalidaddelosdatos
duranteelprocesointegro.
3.4.2. Datamarts
Las corporaciones de hoy se esfuerzan por conducir sus negocios hacia una base
internacional. Vemos compaas que surgieron en Estados Unidos y se expandieron a
Europa, Asia y frica. La expansin del negocio crea la necesidad de acceder a datos
corporativos que estn ubicados en diferentes puntos geogrficos. Por ejemplo, un
ejecutivodeventasdeunacompaaconorigenenBrasilqueestsituadoenChilepuede
necesitaraccesoalabasededatosdelaempresaparaidentificarlosclientespotenciales
queresidenenChile.
22
EsteproblemasesolucionacreandoversionesmspequeasdelDW,losDatamarts.Estas
versionessecreanusandoalgncriterioparticular,comoporejemploellugargeogrfico.
Enelejemploanteriorlosdatos delosclientesqueresidenenChilesedebenalmacenar
enelDatamartdelasucursalenesepas.
La existencia de los Datamarts crea nuevas formas de pensar cuando se disean los
repositorioscorporativosdedatos.Algunascorporacionesreemplazancompletamenteel
conceptodetenerunDWcentral,porvariosDatamartsmspequeosquesealimenten
directamentedelossistemasoperacionales(Figura3.2.).
Figura3.2.ArquitecturaDatamarts
Otras compaas usan Datamarts para complementar sus DWs (Figura 3.3.). Mueven
datosdesdeelDWhaciavariosDatamartsconelfindepermitirunanlisismseficiente.
La separacin de los datos se determina segn criterios como departamentos, reas
geogrficas,periodosdetiempo,etc.
Figura3.3.ArquitecturaDatamartscomocomplementoalDataWarehouse
23
Figura3.4.ArquitecturaDatamartscomoalmacenamientointermedioalDW
3.5. DiseodeunDataWarehouse
Debido a las diferencias en el propsito y objetivos de las bases de datos operacionales
conlasbasesorientadasaanlisisseoriginarontcnicasdediseodiferentesparaestas
ltimas.
Aligualqueelrestodeproyectosdedesarrollosoftware,laconstruccindeunDWsigue
unaseriedefases:
1. Recogidayanlisisderequisitos:Setratadediscernirlasfuentesnecesariasdel
sistema de informacin de la organizacin (OLTP) y analizar los requisitos de
usuarioparadetectarlasconsultasdeanlisisnecesarias,niveldeagregacin,etc.
Enestaetapasedebentenerclaroculessonlosdiferentesfocossobrelosquese
vaacentrarelalmacndedatos.
2. Diseoconceptual:Semodelaelsistemahaciendousodemodelostalescomoel
EntidadRelacin.
3. Diseolgico: Apartirdeunodelosesquemasmultidimensionalesexistentes,se
realizaelmodeladomultidimensionaldelabasededatos.
4. Diseofsico:SedefineelesquemaaseguirenlaorganizacinfsicadelDWylas
herramientasOLAP(ROLAP,MOLAPuHOLAP 11 )ysediseaelETL.
5. Implementacin: Se realiza la carga del almacn (ETL) y la preparacin de las
vistasdeusuario(herramientasOLAP).
Dado que ya conocemos las principales caractersticas de este tipo de base de datos, a
continuacinveremosculessonlosrequerimientosencuantoaldiseolgicoyfsicode
lasmismas.
11 ROLAP, MOLAP y HOLAP hacen referencia a las distintas formas existentes de almacenar datos dndoles la
estructuraadecuadaparaelanlisisenlnea.Estossistemassernanalizadosenunpuntoposterior.
24
3.5.1. Diseolgico
Laspremisasbsicaseneldiseolgicoson:
Lamayoradelosanalistasdenegociosvanaquererverdatostotalizados.Estos
datosenloposibledebenprecalcularseyalmacenarsedeantemanoparaqueesta
recuperacin sea rpida y eficiente. Es importante adems discutir el nivel de
granularidadydedetalleesperadoporlosanalistascuandohacenoperacionesde
DrillDown.
Eldiseodebeestardirigidoporelaccesoyporeluso,esdecir,teniendoencuenta
qu tipo de reportes o resmenes son los ms frecuentes, y cuales los ms
urgentes.
Todos los datos que se incluyan ya deben existir en las fuentes de datos
operacionales,oserderivablesapartirdeellos.
25
Figura3.5.EsquemaEstrella
Figura3.6.EsquemaCopodeNieve
Enla3.6.vemosunesquemasimilaralanterior,dondelatabladedimensinSucursalse
expande en las tablas Distrito y Regin. Ahora la tabla Sucursal contiene una columna
claveDistritoIdqueapuntaalatablaDistrito,yestaasuveztieneunacolumnaRegionId
queapuntaalatabladedimensinRegin.
Las ventajas de esta normalizacin son la reduccin del tamao y redundancia en las
tablasdedimensin,yunaumentodeflexibilidadenladefinicindedimensiones.
26
dedatospuedeserenorme.Lasbasesdedatosqueseacercanoexcedenelterabyteson
llamadasVLDBs(VeryLargeDatabases).Disearunabasededatosdeestetipoesungran
desafoylatareademantenerlasescostosa.
Entre las decisiones de implementacin que se deben tomar se incluyen el tamao del
espaciolibre,eltamaodelbuffer,eltamaodelbloque,ysiseusaonounatcnicade
compactacin de la base de datos. Todas estas cuestiones afectarn el rendimiento del
DW.
Los motores de base de datos estn basados en reglas internas intrincadas, que deben
entenderseyseguirse.Unasituacincomnesquesedejeeldiseodelabasededatosa
losprogramadores,quienesquiznoestndeltodofamiliarizadosconelfuncionamiento
interno del motor, y como consecuencia creen un diseo pobre que no aproveche al
mximolascaractersticasquebrindaelproducto.
3.6. ExplotacindeunDataWarehouse:HerramientasOLAP
LasherramientasOLAPseusanparaconvertirlosdatoscorporativos,almacenadosenla
basededatosorientadaalanlisis(DW),enconocimientotilparalatomadedecisiones.
MientrasqueelDWalmacenalainformacinasecas,esdecir,talycomohasidoobtenida
delabasededatosoperacional,lossistemasOLAPhacenagregacionesysumarizaciones
deestosdatos,ylosorganizanencubosoalmacenamientosespecialesparapermitiruna
rpidarecuperacinanteunaconsulta.
3.6.1. QuesOLAP?
OLAP se define como el anlisis multidimensional e interactivo de la informacin de
negociosaescalaempresarial.Elanlisismultidimensionalconsisteencombinardistintas
reas de la organizacin, y as ubicar ciertos tipos de informacin que revelen el
comportamientodelnegocio.
Porqusedicequeelanlisisesinteractivo?
LosusuariosdelaherramientaOLAPsemuevensuavementedesdeunaperspectivadel
negocioa otra, porejemplo, puedenestar observando las ventas anuales por sucursal y
pasaraverlassucursalesconmsgananciasenlosltimostresmeses,yademsconla
posibilidaddeelegirentrediferentesnivelesdedetalle,comoventasporda,porsemana
o por cuatrimestre. Es esta exploracin interactiva lo que distingue a OLAP de las
herramientassimplesdeconsultayreportes.
Porquestillamultidimensionalidad?
Esloquepermitealosanalistasdenegociosexaminarsusindicadoresclaveomedidas,
comoventas,costos,yganancias,desdedistintasperspectivas,comoperiodosdetiempo,
productos y regiones. Estas perspectivas constituyen las dimensiones desde las que se
exploralainformacin.
Porquaescalaempresarial?
OLAP es robusto y escalable, al punto de permitir satisfacer completamente las
necesidadesdeanlisisdeinformacindelaorganizacin.Setrabajaconfuentesdedatos
corporativas, que contienen datos de toda la empresa, y se comparte y cruza la
informacinexistenteentodaslasreasdelamisma.
28
Para proveer estas caractersticas, toda herramienta OLAP tiene tres principales
componentes:
Un motor OLAP que procesa las consultas multidimensionales sobre los datos:
arquitecturaROLAP,MOLAPoHOLAP.
LosusuariosdeOLAPsecentranenlosconceptosdenegocios,trabajandointuitivamente
conellos,sinnecesidaddeconocercuestionestcnicastalescomoelformatofsicodelos
datos,instruccionesdelenguajescomoSQL,nombresdetablasocolumnasenlabasede
datos,olaarquitecturaOLAPsubyacente.
3.6.2. DiferenciasentreprocesamientoOLAPyOLTP
La compra, venta, produccin, y distribucin son ejemplos comunes de actividades de
negocios del da a da. Estas actividades constituyen el llamado procesamiento
operacional u OLTP (Online Transactional Processing), y las aplicaciones que soportan
esteprocesamientosediseanconorientacinalacargadedatos.
Elplaneamientoderecursos,planeamientofinanciero,alianzasestratgicas,einiciativas
de mercado son ejemplos de actividades que generan y usan informacin basada en
anlisisyorientadaalatomadedecisiones.Estetipodeactividadessonsoportadaspor
lasaplicacionesdetipoOLAP.
Si se contraponen las caractersticas de OLAP y OLTP podemos apreciar las siguientes
diferencias:
OLAP
OLTP
Altas/Bajas/Modificaciones/Consultas
Consultaspesadasynopredecibles
Consultasrpidasyescuetas
Granvolumendeinformacinhistrica
Pocovolumendeinformacin
Operacioneslentas
Transaccionesrpidas
Tabla2ComparativaentreOLAPyOLTP
Todasestasdiferenciassereflejanenlascaractersticasdelasbasesdedatossubyacentes
a ambos tipos de aplicaciones, y hacen que no sea posible la convivencia en una nica
basededatosdelosentornosOLAPyOLTP.
29
3.6.3. Cubos,Dimensiones,MedidasyOperacionesaplicables
Cubomultidimensional
Un cubo es un subconjunto de datos de un almacn, que provee un mecanismo para
buscarinformacinconrapidezyentiemposderespuestauniformeindependientemente
delacantidaddedatosqueloformenolacomplejidaddelprocedimientodebsqueda.
Estos cubos multidimensionales o cubos OLAP se generan a partir de los esquemas en
estrella o copo de nieve diseados en el DW. Las tablas relacionadas en ste (tablas de
hechosydedimensiones)proporcionanlaestructuradedatosalcubo(Figura3.7.).
Figura3.7.Estructuracubomultidimensional
Figura3.8.Ejemplocubomultidimensional
LosejesdelcubosonlasDimensiones,ylosvaloresquesepresentanenlamatriz,sonlas
Medidas. Si comparamos estos elementos con los componentes del esquema
multidimensional del DW, observamos que las dimensiones se corresponden con las
30
diferentestablasdedimensionesdefinidasendichoesquemamientrasquelasmedidasse
correspondenconlostiposdevaloresprecalculados contenidosenlatabladehechosdel
esquema.
Una instancia del modelo est determinada por un conjunto de datos para cada eje del
cuboyunconjuntodedatosparalamatriz.
Dimensiones
Sonobjetosdelnegocioconloscualessepuedeanalizarlatendenciayelcomportamiento
delmismo.Lasdefinicionesdelasdimensionessebasanenpolticasdelacompaaodel
mercado,eindicanlamaneraenquelaorganizacininterpretaoclasificasuinformacin
parasegmentarelanlisisensectores,facilitandolaobservacindelosdatos.
Para determinar las dimensiones requeridas para analizar los datos podemos
preguntarnos:
Cundo?Larespuestaaestapreguntapermiteestablecerladimensindeltiempo
yvisualizardemaneracomparativaeldesempeodelnegocio.
Dnde? Esta pregunta nos ubica en un rea fsica o imaginaria donde se estn
llevandoacabolosmovimientosquesedeseananalizar.Estoslugaressepueden
serzonasgeogrficas,divisionesinternasdelaorganizacin,sucursales,etc.
Qu?Eselobjetodelnegocio,oelobjetodeintersparadeterminadareadela
compaa.Paraestoscasossetienenlosproductosy/oservicios,lamateriaprima
comoelementodeintersparaladivisindeabastecimientos,losvehculosparala
seccindetransportes,lasmaquinariasparaelreadeproduccin,etc.
Quin?Enestadimensinseplanteaunaestructuradeloselementosqueinciden
directamentesobreelobjetodeinters.Enestoscasossehacereferenciaalrea
comercial o de ventas, o a los empleados de la organizacin si se est llevando a
cabounanlisisaniveldeltalentohumano,etc.
Medidas
Soncaractersticascualitativasocuantitativasdelosobjetosquesedeseananalizarenlas
empresas.Lasmedidascuantitativasestndadasporvaloresocifrasporcentuales.
Porejemplo,lasventasendlares,cantidaddeunidadesenstock,cantidaddeunidades
deproductovendidas,horastrabajadas,elpromediodepiezasproducidas,elporcentaje
deaceptacindeunproducto,elconsumodecombustibledeunvehculo,etc.
JerarquasdeDimensionesyNiveles
Generalmente las dimensiones se estructuran en jerarquas, y en cada jerarqua existen
uno o ms niveles, los llamados Niveles de Agregacin o simplemente Niveles. Toda
dimensintieneporlomenosunajerarquaconunniconivel.
EnlaFigura3.9.vemosunejemplodeunadimensindevendedores,queconsistedeuna
nicajerarqua,ytresnivelesdeagregacinparaagruparlosporciudadesyporregiones.
31
Figura3.9.Ejemplodeunajerarquaytresnivelesdeagregacin
EnlaFigura3.10.podemosverunadimensinquecuentacondosjerarquas:
Figura3.10.Ejemplodedosjerarquas
Enestecaso,losnivelesZonasyGerencianoestnrelacionadosentres,apesardeque
ambosestnrelacionadosconladimensinAreas.
Operacionesmultidimensionales
UnaconsultaaunaherramientaOLAPconsistegeneralmenteenlaobtencindemedidas
sobre los hechos, parametrizadas por atributos de las dimensiones y restringidas por
condicionesimpuestassobrelasdimensiones.
Asporejemplo,podramostenerunaconsultaqueenunciarlosiguiente:Importetotal
de las ventas durante el ao 2010 de los productos del tipo limpieza, por trimestre y por
producto.Sileemosdetenidamentelaconsultapodemosenlazarlosdistintosconceptos
queaparecenenladefinicindeconsultaconlaenunciadaenelprrafoanterior.
Hecho:Ventas
Medida:Importe
Restricciones:TipodeproductoLimpieza,Ao2010
Parmetrosdelaconsulta:TrimestreyProducto
Unavezrealizadalaconsultaobtendramoselsiguienteresultado:
Producto
Trimestre
TrimestreI
TrimestreII
TrimestreIII
TrimestreIV
Amoniaco
10000
12000
11000
12000
Friegasuelos
15000
16000
18000
20000
Limpiacristales
8000
7000
9000
8000
32
Adems de la posibilidad de realizar consultas tan flexibles (que con menor o mayor
complejidad se pueden realizar mediante selecciones, concatenaciones y agrupamientos
tradicionales),lorealmenteinteresantedelasherramientasOLAPsonsusoperadoresde
refinamiento o manipulacin de consultas. Estos operadores facilitan la agregacin
(consolidacin)yladisgregacin(divisin)delosdatos:
TipoProducto
Limpieza
TrimestreI
TrimestreII
TrimestreIII
TrimestreIV
33000
35000
38000
40000
Producto
Mes
E
Amoniaco
2k
4k
4k
5k
3k
4k
4k
4k
3k
4k
5k
3k
Friegasuelos
4k
5k
6k
5k
5k
6k
6k
7k
5k
4k
8k
8k
Limpiacristales
2k
3k
3k
3k
2k
2k
2k
3k
4k
3k
2k
2k
Proyectar(Slice&Dice):seleccionayproyectadatosenelinforme.Unejemplode
proyectarenelinformedepartidaseraelsiguiente:
Producto
Trimestre
TrimestreI
TrimestreIII
8000
9000
Limpiacristales
Pivotar(Pivot):reorientalasdimensionesdelinforme.
Trimestre
Producto
Amoniaco
Friegasuelos
Limpiacristales
TrimestreI
10000
15000
8000
TrimestreII
12000
16000
7000
TrimestreIII
11000
18000
9000
TrimestreIV
12000
20000
8000
33
3.6.4. ROLAP,MOLAPyHOLAP
Los cubos, las dimensiones y las jerarquas son la esencia de la navegacin
multidimensionaldelOLAP.Aldescribiryrepresentarlainformacin en esta forma, los
usuariospuedennavegarintuitivamenteenunconjuntocomplejodedatos.Sinembargo,
el solo describir el modelo de datos en una forma ms intuitiva, hace muy poco para
ayudaraentregarlainformacinalusuariomsrpidamente.
UnprincipioclavedelOLAPesquelosusuarios deberanobtenertiemposderespuesta
consistentesparacadavistadedatosquerequieran.Dadoquelainformacinsecolecta
en el nivel de detalle solamente, el resumen de la informacin es usualmente calculado
por adelantado. Estos valores precalculados son la base de las ganancias de desempeo
delOLAP.
En los primeros das de la tecnologa OLAP, la mayora de las compaas asuma que la
nicasolucinparaunaaplicacinOLAPeraunmodelodealmacenamientonorelacional.
Despus, otras compaas descubrieron que a travs del uso de estructuras de base de
datos (esquemas de estrella y de copo de nieve), ndices y el almacenamiento de
agregados,sepodranutilizarsistemasdeadministracindebasesdedatosrelacionales
(RDBMS)paraelOLAP.
Estos vendedores llamaron a esta tecnologa OLAP relacional (ROLAP). Las primeras
compaas adoptaron entonces el trmino OLAP multidimensional (MOLAP), estos
conceptos, MOLAP y ROLAP, se explican con ms detalle en los siguientes prrafos. Las
implementacionesMOLAPnormalmentesedesempeanmejorquelatecnologaROLAP,
perotienenproblemasdeescalabilidad.Porotrolado,lasimplementacionesROLAPson
msescalablesysonfrecuentementeatractivasalosclientesdebidoaqueaprovechanlas
inversionesentecnologasdebasesdedatosrelacionalespreexistentes.
SistemasMOLAP
LaarquitecturaMOLAPusaunasbasesdedatosmultidimensionalesparaproporcionarel
anlisis, su principal premisa es que el OLAP est mejor implantado almacenando los
datos multidimensionalmente. Por el contrario, la arquitectura ROLAP cree que las
capacidadesOLAPestnperfectamenteimplantadassobrebasesdedatosrelacionalesUn
sistema MOLAP usa una base de datos propietaria multidimensional, en la que la
informacin se almacena multidimensionalmente, para ser visualizada en varias
dimensionesdeanlisis.
El sistema MOLAP utiliza una arquitectura de dos niveles: la bases de datos
multidimensionales y el motor analtico. La base de datos multidimensional es la
encargadadelmanejo,accesoyobtencindeldato.
El nivel de aplicacin es el responsable de la ejecucin de los requerimientos OLAP. El
niveldepresentacinseintegraconeldeaplicacinyproporcionauninterfazatravsdel
cual los usuarios finales visualizan los anlisis OLAP. Una arquitectura cliente/servidor
permiteavariosusuariosaccederalamismabasededatosmultidimensional.
Lainformacinprocedentedelossistemasoperacionales,secargaenelsistemaMOLAP,
medianteunaseriederutinasporlotes.UnavezcargadoeldatoelementalenlaBasede
Datosmultidimensional(MDDB),serealizanunaseriedeclculosporlotes,paracalcular
los datos agregados, a travs de las dimensiones de negocio, rellenando la estructura
MDDB.
Tras rellenar esta estructura, se generan unos ndices y algoritmos de tablas hash para
mejorarlostiemposdeaccesosalasconsultas.Unavezqueelprocesodecompilacinse
34
haacabado,laMDDBestlistaparasuuso.Losusuariossolicitaninformesatravsdela
interfaz,ylalgicadeaplicacindelaMDDBobtieneeldato.
La arquitectura MOLAP requiere unos clculos intensivos de compilacin. Lee de datos
precompilados,ytienecapacidadeslimitadasdecrearagregacionesdinmicamenteode
hallarratiosquenosehayanprecalculadosyalmacenadospreviamente.
Algunos fabricantes son: Oracles Hyperion Essbase, Microsoft Analysis Services, TM1,
SASOLAP,CognosPowerCubes.
SistemasROLAP
La arquitectura ROLAP, accede a los datos almacenados en un Data Warehouse para
proporcionarlosanlisisOLAP.LapremisadelossistemasROLAPesquelascapacidades
OLAPsesoportanmejorcontralasbasesdedatosrelacionales.
ElsistemaROLAPutilizaunaarquitecturadetresniveles(Figura3.11.).Labasededatos
relacional maneja los requerimientos de almacenamiento de datos, y el motor ROLAP
proporciona la funcionalidad analtica. El nivel de base de datos usa bases de datos
relacionalesparaelmanejo,accesoyobtencindeldato.Elniveldeaplicacineselmotor
queejecutalasconsultasmultidimensionalesdelosusuarios.
ElmotorROLAPseintegraconnivelesdepresentacin,atravsdelosculeslosusuarios
realizanlosanlisisOLAP.DespusdequeelmodelodedatosparaelDataWarehousese
hadefinido,losdatossecargandesdeelsistemaoperacional.Seejecutanrutinasdebases
de datos para agregar el dato, si as es requerido por el modelo de datos. Se crean
entonceslosndicesparaoptimizarlostiemposdeaccesoalasconsultas.
Figura3.11.SistemaROLAP
Losusuariosfinalesejecutansusanlisismultidimensionales,atravsdelmotorROLAP,
quetransformadinmicamentesusconsultasaconsultasSQL.Seejecutanestasconsultas
SQL en las bases de datos relacionales, y sus resultados se relacionan mediante tablas
cruzadasyconjuntosmultidimensionalesparadevolverlosresultadosalosusuarios.
LaarquitecturaROLAPescapazdeusardatosprecalculadossiestosestndisponibles,o
degenerardinmicamentelosresultadosdesdelosdatoselementalessiespreciso.Esta
arquitecturaaccededirectamentealosdatosdelDataWarehouse,ysoportatcnicasde
optimizacindeaccesosparaacelerarlasconsultas.Estasoptimizacionesson,entreotras,
35
Consultasrpidasdebidoalaoptimizacindelrendimientodealmacenamiento,la
indexacinmultidimensionalylamemoriacach.
Ocuparmenortamaoendiscoencomparacinconlosdatosalmacenadosenbase
dedatosrelacionaldebidoatcnicasdecompresin.
Automatizacindelprocesamientodelosdatosagregadosdemayornivel.
Muycompactoparaconjuntosdedatosdepocasdimensiones.
Eficazextraccindelosdatoslogradagraciasalapreestructuracindelosdatos
agregados.
ROLAP
SoportananlisisOLAPcontragrandesvolmenesdedatos.
Lossistemaspuedencrecerhastaungrannmerodedimensiones.
Lostiemposdecargasonmuchomenores.
Los datos se almacenan en una base de datos relacional que puede ser accedida
porcualquierherramientadegeneracindeinformesSQL.
Esposiblemodelardatosconxitoquedeotromodonoseajustaranaunmodelo
dimensionalestricto.
Resumiendo,elsistemaROLAPesunaarquitecturaflexibleygeneral,quecreceparadar
soporte a amplios requerimientos OLAP. MOLAP es una solucin particular, adecuada
para soluciones departamentales con unos volmenes de informacin y nmero de
dimensionesmsmodestos.
36
Captulo4. Procesodedesarrollodeindicadores
Enestecaptulosepresentaunametodologaqueapoyaelprocesodedesarrollodelos
indicadoresobjetodeesteproyecto.
Elmaterialpresentadoenestecaptulohasidoextradodelasiguientefuente[8].
4.1. QuesTUNEUP?
TUNEUPesunametodologaqueincorporaaspectosgilesytradicionalesconunsentido
marcadamentepragmtico.TUNEUPsecaracterizafundamentalmenteporcombinarlos
siguienteselementos:
Modeloiterativoeincrementalparaeldesarrolloymantenimientodelsoftware.
El trabajo se divide en unidades de trabajo que son asignadas a versiones del
producto.Serealizancicloscortosdedesarrollo,entre3y6semanas,dependiendo
delproducto.
Workflows flexiblesparalacoordinacindeltrabajoasociadoacadaunidadde
trabajo. Los productos, segn sus caractersticas, tienen disponibles un conjunto
de workflows los cuales se asignan a cada una de las unidades de trabajo. Cada
unidaddetrabajosigueelflujodeactividadesdelworkflowparacompletarla.Bajo
ciertascondicionessepermitesaltarhaciaadelanteohaciaatrsenelworkflow,
as como cambios de agentes asignados e incluso cambio de workflow. Por
ejemplo, las tpicas situaciones de retrabajo en desarrollo de software
ocasionadaspordeteccindedefectosseabordanconsaltosatrsnoexplcitosen
elworkflow.
Procesodedesarrollodirigidoporlaspruebasdeaceptacin(TestDriven).
La definicin de una unidad de trabajo es bsicamente la especificacin de sus
pruebasdeaceptacinacordadasconelcliente.Apartirdeall,todoelprocesogira
en torno a ellas, se estima el esfuerzo de implementar, disear y aplicar dichas
pruebas, se disean e implementan y luego se aplican sobre el producto para
garantizarelxitodelaimplementacin.
Planificacinyseguimientocontinuocentradosenlagestindeltiempo.En
todomomentodebeestaractualizadoelestadodelasversiones,delasunidadesde
trabajo, y del trabajo asignado a los agentes. El jefe del proyecto puede actuar
oportunamente con dicha informacin, tomando decisiones tales como:
redistribuircargadetrabajoentreagentes,cambiarlosplazosdelaversin,mover
unidadesdetrabajoentreversiones,etc.
Controldetiempos.Losagentesregistraneltiempoquededicanalarealizacin
de las actividades, el cual se compara con los tiempos estimados en cada una de
ellas, detectando oportunamente desviaciones significativas. Esto permite a los
agentes gestionar ms efectivamente su tiempo, mejorar sus estimaciones y
ofreceraljefedelproyectoinformacinactualizadadelestadodelaversin.
37
Figura4.1.WFdedesarrollosimpleparaunidadesdetrabajo
LaFigura4.1.ilustraunworkflowsimpleparaeldesarrollodeunaunidaddetrabajo.Un
workflow,engeneral,incluyeactividadesasociadasatresfasesdelproceso:
PreAsignacin:actividadesrealizadashastalaasignacindelosRRHHyversin.
La unidad de trabajo ha sido identificada pero an no tiene una prioridad como
paraasignarlelosRRHHyversin.
Preparacin:sepuedenrealizarcuandolaunidaddetrabajohaalcanzadocierta
prioridadyselehanasignadolosRRHHyunaversin.Secomienzaatrabajarenla
preparacin de la unidad de trabajo, y debera concluirse antes del inicio de la
versin objetivo en la cual se implementar. Incluye el anlisis, las revisiones y
estimacionesparasuimplementacin.
38
Omitida
Por Llegar
Comenzar
Pendiente
Finalizar
Continuar
Activa
Pausada
Pausar
Finalizar
Finalizada
Figura4.2.Posiblesestadosdeunaunidaddetrabajoenunaactividad
LaFiguramuestralosposiblesestados(PorLlegar,Pendiente,Activa,Pausada,Finalizada
yOmitida)enlosquesepuedeencontrarunaactividadasociadaaunaunidaddetrabajo.
4.2. TUNEUPProcessTool
TUNEUP Process Tool es una herramienta de apoyo para la aplicacin efectiva de la
metodologa TUNEUP. La herramienta est formada por tres mdulos principales:
Planificador Personal, Gestor de Unidades de Trabajo, y Planificador de Versiones. A
continuacinsedescribecadaunodeestosmdulos.
4.2.1. PlanificadorPersonal
ElPlanificadorPersonal(PP)presentaeltrabajoquetieneunagente.Cuandounagente
iniciasujornadalaboral,accedealPP(Figura4.3.)paravereltrabajoquetieneasignado
actualmente,yseleccionarquvaarealizardeacuerdoasusprioridades.ElPPofreceuna
variedad de facilidades de filtrado y ordenamiento de informacin, adems de datos de
tiempos,paraqueelagentepuedadeterminarsueleccindeacuerdoasusprioridades.
La tabla de la izquierda de la figura resume las contabilizaciones de las unidades de
trabajo segn la actividad y estado en el que se encuentran, y la tabla de la derecha,
muestra informacin de dichas unidades de trabajo incluyendo: producto, versin,
descripcin de la unidad de trabajo, tiempos calculados, estado de la actividad actual
dentrodelworkflow,etc.
39
Figura4.3.FragmentodeinterfazdelPlanificadorPersonal
4.2.2. GestordeUnidadesdeTrabajo
Cuandoelagentedecidelaunidaddetrabajoquevaarealizar,accedeconellaalGestor
deUnidadesdeTrabajo(GUT)(Figura4.4.)comoapoyoesencialpararealizarsutarea.En
la parte superior se observan los datos generales de la unidad de trabajo, y en la parte
inferior, un conjunto de pestaas con la funcionalidad que ofrece el GUT. Entre la
funcionalidaddisponibletenemoslaposibilidaddeactivar/pausar/finalizarlaactividad,
mandarpeticiones,aadir/consultardocumentacinasociadaalaunidaddetrabajo,ver
lostiemposregistradosendichaunidad,etc.
Figura4.4.GestordeUnidadesdeTrabajo
40
4.2.3. PlanificadordeVersiones
El Planificador de Versiones (PV) (Figura 4.5.) permite gestionar los productos, sus
versiones, los workflows disponibles para cada producto, los agentes por defecto
asignadosalasactividadesdelosworkflowsyrealizarelseguimientocontinuodelestado
actualdelasversiones.
Figura4.5.PlanificadordeVersiones
4.3. Workflowdedesarrollodeindicadores
TUNEUPdisponedeunconjuntodeworkflowsparacadatipodeproducto.Enelcasode
un producto de Business Intelligence, se ha definido un workflow especfico para el
desarrollodeindicadores(Figura4.6.)basadoenlaconstruccindeinformesOLAP.
Tal y como se observa, este WF se compone de numerosas actividades asociadas a
diferentesfasesdelprocesosdedesarrolloqueseejecutandeformasecuencialoparalela.
Enlaprimerafase(parteizquierda)seincluyenlasactividadesrelacionadasconanlisis,
revisiones y estimaciones; la segunda (parte central delimitada por las lneas
discontinuas) abarca las actividades de implementacin, testeo e implantacin en el
cliente del producto final y la fase final (parte derecha) incluye la implantacin de
pruebasderegresin 12 .
12 Se denominan Pruebas de regresin a aquellas pruebas que intentan descubrir defectos producidos por cambios
recientementerealizadosenpartesdelaaplicacin.Pordefinicin,unapruebaaplicadadespusdelaprimeravezque
resultexitosa,esunapruebaderegresin.
41
Figura4.6.WFDesarrolloIndicador
Concretamente,lasactividadesquecomponendichoWFsonlassiguientes:
Figura4.7.GestordeUnidadesdeTrabajoActividadIntroducirIndicador
AsignarVersinyRR.HH.:Seasignaeldesarrollodelindicadoraunaversindel
producto dependiendo de la dificultad del mismo y del estado de la versin en
cuanto al trabajo pendiente de realizar, se valora el esfuerzo de implementacin
delindicadoryseasignarecursoshumanos.
Figura4.8.GestordeUnidadesdeTrabajoPestaaPlanificacin
PrepararAyudaIndicador:Serevisaeldocumentoenviadoporelclienteysihay
alguna cuestin que no est clara, nos ponemos en contacto con el cliente para
aclararla.Acontinuacin,seelaboraunapequeademodeloqueserelproducto
finalcondatosdepruebaysepreparaundocumentodeayuda(VerAnexoB)enel
queseindicadndehayqueintroducirlainformacinenelprogramaparaqueel
indicadormuestrelosdatoscorrectamente.
En lo que respecta a la construccin de la demo, se han de seguir los siguientes
pasos:
- Crearunabasededatosdepruebaconunaestructurasimilaralaquetendr
labasededatosdefinitiva.
- Introduciralgunosdatosenlabasededatoscreadaanteriomente.
- Crearelcubodedatospertinente.
- Construir el informe OLAP en Excel del indicador y definir un par de vistas
pordefecto.
El documento de ayuda es de vital importancia, ya que en muchas ocasiones es
posible introducir la informacin necesaria para calcular un indicador de varias
formas,todasellasvlidas.Sinembargo,enelprocesodedesarrollodelindicador,
el programador se decanta por una de las formas para obtener los datos porque
tratarlas todas sera muy complejo y por eso la necesidad de especificar en el
documentodeayudalaformacorrectadeintroducirlosdatos.Dadoesto,paraque
los datos que muestre el indicador sean correctos y se ajusten a la realidad, los
usuarios debern introducir la informacin tal y como se indica en dicho
documento.Denoseras,losdatosmostradosporelindicadornoserncorrectos
ypuedenllevarnosaerroresenlatomadedecisiones.
DiseoPreliminaryEstimacin:Serealizaunestudiodeldocumentodeanlisis
cuestionandolaspruebasdeaceptacinysudefinicin.Acontinuacinseelabora
44
EstimacindeTesteo:Sehaceunaestimacinconjunta,porpartedeltester,del
tiempo necesario para disear las pruebas y el tiempo necesario para aplicar
dichaspruebasalindicador.
ConfirmarRR.HH.yVersin:Seconfirmalaversindelproductoenlaqueseva
adesarrollarelindicadorylosrecursoshumanosasociadosadichodesarrollo.En
caso de que la incidencia se volviera urgente o si por el contrario su prioridad
bajara,esenestemomentocuandolamoveramosaotraversinyrealizaramos
unajustedelosrecursoshumanosasociadosalamisma.
DiseoeImplementacin:SecreaelprocesoETLencargadodecrearelalmacn
de datos, extraer los datos de la base de datos operacional, transformarlos y
cargarlos en el almacn de datos. Tras esto, se crea el cubo correspondiente, las
plantillasdeExcelparapodervisualizarlosresultadosdelindicadorylosinformes
estticossolicitadosporelcliente.Unavezfinalizadastodasestastareas,sesuben
lasplantillasdeExcelylosreportsalportaldepruebasysecreaeldashboard,lo
quesuponeelfindelaimplementacin.
ImplantarPruebasdeRegresin:Consisteencargarenelproyectolosscriptsde
automatizacin de las pruebas para que puedan ser ejecutadas en cualquier
momento. Concretamente estas pruebas se realizan cada vez que sale una nueva
versin del programa del que se extrae la informacin para los indicadores o
cuandoserealizaunamodificacindelindicadorparacomprobarque,pesealos
45
Figura4.9.WFModificarIndicador
DichoWFsecomponede4actividades:
46
CorregirIndicador:Semodificanlosdocumentosgeneradosduranteeldesarrollo
delindicadorparaquereflejenloscambiosquesevanaintroducirenelindicador
y se modifica el proceso ETL, los cubos y los reports en la medida que sea
necesario.
AplicarPruebasdeRegresin:Seejecutanlaspruebasanterioresparaverqueel
indicadorlaspasaconxitoyencasodequeseanecesarioaadirnuevaspruebas
paraverificarelcorrectofuncionamientodelindicadortrasloscambiosrealizados,
se crean nuevos scripts y se lanzan nuevamente las pruebas. Si las pruebas son
superadasconxito,sepasaarevisarlatareaperosinosehansuperado,eltester
devuelveelindicadoralprogramadorindicandodndeestelfalloparaqueste
loresuelva.Esteprocesoserepetirhastaqueelindicadorpasetodaslaspruebas.
RevisarResultadoTarea:Secompruebaqueloscambioshansidorealizadosde
formasatisfactoriayquesehanpasadoconxitotodaslaspruebas.
47
48
Captulo5. MarcotecnolgicodeunasolucinBI
En este captulo se presenta el marco tecnolgico en el que ha sido desarrollada la
solucin Business Intelligence objeto de este proyecto y se analiza cada una de las
tecnologasutilizadas.
Dado que este proyecto se centra fundamentalmente en la parte de diseo e
implementacin de los indicadores, a continuacin nicamente se van a analizar las
tecnologas utilizadas en esa parte del proceso de desarrollo. Por tanto, aunque en el
captuloanteriorseindicaqueeldesarrollodeindicadoresincluyeunapartedetesteo,el
estudiodelatecnologaespecficautilizadaparahacerlaspruebasestfueradelalcance
deesteproyecto.
Elmaterialpresentadoenestecaptulohasidoextradode[10]y[11].
Paranohacermuyextensoestecaptulo,enlosapartadoscorrespondientesacadaunade
lastecnologasutilizadassehacereferenciaaunanexoquecontieneunbrevetutorialde
esatecnologaparaentendermejorsufuncionamiento.
5.1. Componentesdelmarcotecnolgico
Elmarcotecnolgicopropuestoestformadoporlossiguientescomponentes:TUNEUP
Process Tool, como herramienta para la planificacin y seguimiento del proceso de
desarrollo, Microsoft BI, como suite de desarrollo de Inteligencia de Negocios, e IBM
Rational Functional Tester, como herramienta para el desarrollo de pruebas
automatizadasyderegresin.
Microsoft
Business
Intelligence
Solucin
BI
IBM
Rational
Functional
Tester
TUNEUP
Process
Tool
Figura5.1.Componentesdelmarcotecnolgicopropuesto
Dado que TUNEUP Process Tool fue descrita brevemente en el captulo anterior y la
parterelacionadaconlaspruebasautomatizadasyderegresinestfueradelalcancede
esteproyecto,slosedescribirnloscomponentesdeMicrosoftBI.
49
5.2. MicrosoftBusinessIntelligence
Microsoft Business Intelligence ofrece una suite completa de productos integrados,
proporcionando acceso continuo a aplicaciones de amplia difusin e informes, dando
coberturaatodoslosaspectosdelprocesodetomadedecisiones.Basadoenlaplataforma
deInteligenciadeNegociodeMicrosoftSQLServeryconunadifusinentreelpblicoa
travsdeMicrosoftOffice,esteenfoquecompletoeintegradopermitecrearyponeren
marchaaplicacionesdeinteligenciadenegocio.
Figura5.2.SolucindeBusinessIntelligencedeMicrosoft
5.2.1. MicrosoftSQLServer
Microsoft utiliza como plataforma de Inteligencia de Negocios la herramienta conocida
popularmentecomoSQLServer.Estesoftwareofreceunentornodedesarrollointegrado,
Business Intelligence Development Studio 13 , para desarrollar construcciones de
inteligencia empresarial, como cubos, orgenes de datos, informes y paquetes de
Integration Services. Concretamente, es Microsoft Visual Studio con tipos de proyecto
adicionales que son especficos de Business Intelligence, tales como proyectos de
Analysis Services, Integration Services y Reporting Services. Cada tipo de proyecto
proporciona plantillaspara crear los objetos necesariospara las soluciones deBusiness
Intelligenceyofrecevariosdiseadores,herramientasyasistentesparatrabajarconlos
objetos.
TodosestosproyectossonadministradosmedianteSQLServerManagementStudio,un
entornointegradoparaobteneraccesoatodosloscomponentesdeSQLServer,ascomo
paraconfigurarlosyadministrarlos.Dichoentornocuentaunmotordeplanificacionesy
alertas,AgenteSQLServerqueesdegranutilidadpararealizarlasprogramacionesde
13MicrosoftSQLServerconsolidalaadministracindeservidoresylacreacindeobjetoscomercialesendosentornos
integrados:SQLServerManagementStudioyBusinessIntelligenceDevelopmentStudio.
50
lanzamientodelospaquetesdelosindicadoresnecesariasenlasltimafase delproceso
dedesarrollodelosindicadores.
A continuacin se describe brevemente cada una de las tecnologas de SQL Server
utilizadasyenelapndiceseincluyenunaseriedeminitutorialesdecadaunadeestas
tecnologas. Dado que estas tecnologas ofrecen multitud de funcionalidades, en los
tutoriales slo se va a describir la funcionalidad usada a la hora de desarrollar los
indicadoresdeesteproyecto.
SQLServerIntegrationServices(SSIS)
Plataformaparalacreacindesolucionesempresarialesdetransformacionesdedatose
integracindedatosapartirdetareasytransformacionesfcilesderealizarparalosno
desarrolladores, empleando un modelo de objetos potente que soporta la creacin de
tareasytransformacionesdedatospersonalizadas.
Ms informacin en el apndice (Ver Anexo E.), donde se describe cmo construir
paquetesETLconSSIS.
SQLServerAnalysisServices(SSAS)
Servicio que ofrece funciones de procesamiento analtico en lnea (OLAP) y minera de
datosparaaplicacionesdeBusinessIntelligence.AnalysisServicesadmiteOLAPypermite
disear, crear y administrar estructuras multidimensionales que contienen datos
agregadosdesdeotrosorgenesdedatos,comobasesdedatosrelacionales.
Msinformacinenelapndice(VerAnexoF),dondesedescribecmoconstruircubos
OLAPconSSAS.
AgenteSQLServer
Motor de planificaciones y alertas que permite crear trabajos flexibles con mltiples
pasos y dependencias entre los distintos pasos de trabajo y configurar alertas que
realicenaccionesautomatizadasobienenvenmensajesaregistrosdeerrores.
Msinformacinenelapndice(VerAnexoG),dondesedescribecmoconstruirtrabajos
conelAgenteSQLServer.
5.2.2. MicrosoftOffice
Dos de las soluciones de Microsoft Office ms utilizadas como herramientas de difusin
entreelpublicodelaInteligenciadeNegociosson:MicrosftOfficeExcelyMicrosoftOffice
SharePointServer.
MicrosoftOfficeExcel
Microsoft Office Excel ofrece un entorno para los usuarios de negocios, incorporando
capacidades OLAP que permiten al usuario conectarse a cubos de Analysis Services y
explotarsuinformacinmediantetablasy/ogrficasdinmicas.
Adicionalmente,previalainstalacindeunaddin,tambinesposiblerealizarMinerade
Datos.
51
MicrosoftOfficeSharePointServer
Microsoft Office SharePoint Server (MOSS) es una plataforma web que ayuda a las
organizaciones a ofrecer capacidades de inteligencia empresarial a todos los empleados
para compartir, controlar y reutilizar informacin empresarial con el fin de tomar
mejores decisiones en la empresa. Las caractersticas de BI que ofrece MOSS son las
siguientes:
52
Captulo6.Casodeestudio
ElsiguientecaptuloincluyeunadescripcindelcasodeestudioResiPlusBI,enmarcado
en ofrecer servicios de Inteligencia de Negocios al sector sociosanitario. El objetivo es
ilustrar cmo se desarrollan e implentan los indicadores de negocio en el marco
tecnolgico propuesto en el captulo anterior pero contextualizado en ResiPlus BI. Para
ellosedescribenunconjuntodeconsideracionespreviasenelentornodeResiplusBIyse
ejemplificadeformaprcticaeldesarrollodevariosreports.
6.1.QuesResiPlusBI?
ResiPlus es un programa informtico que permite a las residencias, centros de da y de
discapacitadosgestionarsuscentros.
ResiPlus ofrece una amplia gama de servicios a travs de su plataforma de servicios
ResiPlusPS(ResiPlusPlatformServices).Entrelosservicioscontratablesporloscentros,
podemos encontrarel servicio ResiPlus BI (ResiPlus Business Intelligence) encargado de
ofreceralclienteunserviciointegraldeInteligenciadeNegocio.LosServiciosBIentran
en la esencia del negocio del cliente. As, estos servicios estn orientados al personal
involucradoenlatomadedecisionesdemayornivel.Elclientepodrcontarconinformes
OLAP, cuadros de mandos, anlisis y predicciones de datos, etc. todo esto basado en
tecnologadeAlmacenesdeDatosyMineradeDatos.
6.2.FuncionamientodeResiPlusBI
Cuando los centros contratan el servicio BI y a medida que van solicitando reports o
indicadores 14 ,deformatransparentesedesarrollaincrementalmenteunDataWarehouse
que les permite contar con informacin preparada para el anlisis. De esta manera se
logra una independencia total del sistema transaccional de ResiPlus, dando lugar a un
nuevo almacn con una estructura mucha ms simple y cuya informacin puede ser
explotadarpidamenteporloscentros.
Mediante el servicio BI los centros acceden a los reports que van contratando y les
permiteanalizarlainformacindentrodeunaampliagamadeperspectivas.Loscentros
tambin disponen de la opcin de contratar dashboards para tener una vista
integrada/unificada de los reports con el fin de ilustrar el estado y rendimiento en un
mbitodeterminado(residente,empleado,rea,unidad,departamento,centroogrupo).
6.3.Consideracionespreviasaldesarrollodeindicadores
Antesdecomenzarconlaimplementacindeunindicador,hayquetenerencuentauna
serie de factoresexistentes cuando el desarrollo se realiza en un entorno multiempresa
(clientesconmsdeuncentrooresidencia).
El primero de ellos, y quizs el ms importante, es que los indicadores van a atacar a
distintas bases de datos, cada una correspondiente a una instalacin de ResiPlus
14
Utilizamoslostrminosreportoindicadorindistintamente,yaqueelclienteaveceshabladeindicadores
de negocio y otras de reports como si fueran la misma cosa. Esto es as porque para obtener un report,
previamentesenecesitaladefinicindeunindicador.
53
independiente.Estopareceunfactor no demasiadoimportante,peroesvitalahondarun
pocoenl.
Encadaunadeestasbasesdedatostendremosdatosquesernindependientesdeuna
residencia a otra, como por ejemplo los residentes. Dichos residentes tendrn su
identificadorpropioensubasededatosdeResiPlusperodadoqueestamosrealizandoun
proyectodealmacenesdedatos,loquesedeseaestenertodosesosdatosenunamisma
tabla,independientementedelcentrodelqueprovengan,ytenerlosidentificadosentodo
momento.
Porejemplo,sedaelcasodequeelresidenteconidentificador1delaresidencia001es
Vicente,mientrasqueelidentificador1delaresidencia002esJuan.Enelmomentoenel
que estos datos se introduzcan en la tabla de dimensin Residentes del almacn de
datos,suidentificadorseperderporquelosidentificadoresnopuedenrepetirseyyano
podremossaberdedndeprovienecadaresidente.
Porelloescruciallacreacindeunidentificadorpropiodelalmacn,queasuvezenlace
conelregistrocorrespondienteasubasededatosorigen.Aesteidentificadorselepasar
adenominarcdigounificado,queestarformadoenestoscasosporelidentificadordela
residenciaalaqueperteneceelregistro,unguinyelidentificadorpropiodelregistro.
Aspues,enelejemploenunciadoanteriormente,enelalmacnsetendrandosregistros:
Vicenteconcdigounificado0011,yJuanconcdigounificado0021.
Estecdigounificadodeberestarpresentetantoenelalmacndedatoscomoenlabase
de datos origen, para poder as en todo momento realizar un enlace entre estas dos
instancias.
En las siguientes figuras, podemos ver la variacin introducida y el efecto que este
produce:
Figura6.1.EjemplodelatablaResidentessincdigounificado
54
Figura6.2.EjemplodelatablaResidentesconcdigounificado
Elsegundofactoratenerencuentaesalahoraderellenartablasimportantesdelabase
de datos de ResiPlus, queriendo a posteriori crear un indicador con los datos de dichas
tablas.
Porejemplo,imagnesedosresidenciasparaunmismoclienteenlascualessetienenun
conjunto de caracteres de plaza distintos: en la residencia 001 se cuenta con los
caracteres de plaza pblico, semipblico, semiprivado y privado; mientras tanto, en la
residencia 002 se tienen los caracteres plaza pblico, cuasipblico, cuasiprivado y
privado.
Si se tiene en cuenta que existe una correspondencia entre los caracteres de plaza (es
decir, semipblico y cuasipblico son los mismos caracteres de plaza, as como
semiprivadoycuasiprivado),setendraungraveproblemayaqueconunaintroduccin
directadelosregistrosseobtendranseiscaracteresdeplazadistintos,apesardesertan
slocuatro:pblico,privadoylasunionesresultantesdesemipblicoycuasipublicoy
semiprivadoycuasiprivado.
Dadaestacircunstancia,paraquelainformacinmanejadaporlosindicadoressealoms
real posible, se introduce aqu tambin el concepto de cdigo unificado, pero con una
visinuntantodistintaalavistaanteriormente.
En primer lugar, se tiene en cuenta que cada residencia, de partida, tendr sus propios
caracteres de plaza previamente introducidos, con valores que podran ser distintos en
cadaresidencia.Porello,elencargadodelaempresaclienteparaelmantenimientodelos
indicadoresdebeocuparsederecopilartodoesteconjuntodevalores.
Una vez recopilados estos valores, requerir de una reunin con los responsables
correspondientes al objeto de unificar los criterios de todas las residencias del mismo
grupo.Unavezhechoesto,ymedianteResiPlusBI,elencargadodemantenimientodelos
indicadores deber rellenar la tabla maestra de la dimensin correspondiente con la
unificacinresultantedelareuninconlosresponsables,comunicandoacadaunadelas
residencias los cdigos unificados de cada uno de los caracteres de plaza que hay
introducidosenlasbasesdedatos.
Deestemodo,sehaconseguidocrearunenlaceentrelosregistrosdecarcterdeplazade
cadaunadelasresidenciasconelintroducidoenelalmacn,aligualqueanteriormente
seconsiguiconlosresidentes.
55
Enelsiguienteejemploseobservacomotresresidenciascondistintoscaracteresdeplaza
logranunificarloentanslouno:
Figura6.3.EjemplodelatablaCaracterPlazaconcdigounificado
Cabedestacarquelaaplicacindeestemtodoserposiblesiemprequeelcompromiso
entreresidenciasyadministracincentral(dondeestinstaladoResiPlusBI)seafuerte,y
hayaunabuenacomunicacin.
Apesardelopesadodelatarea,conellasepodrnconseguirlosmejoresresultados,ya
quelavariacinenelnombrederegistrosendistintasresidenciasesalgohabitualenel
entornoestudiado.
6.4.Desarrolloeimplementacindeindicadores
En este punto vamos a desarrollar e implementar una serie de indicadores de negocio
relacionados con el programa Resiplus. Concretamente, se van a implementar tres para
observar las diferencias en el proceso de implementacin dependiendo del tipo de
indicador.
Unavezfinalizados,utilizaremoslostresindicadoresimplementadosenestepuntojunto
conelindicadordeVisitasFamiliaresutilizadoenlostutorialesdelasherramientaspara
elaborar un posible dashboard para nuestro cliente y crearemos un trabajo que se
encarguedeactualizarlosdatosdelosindicadoresdiariamente.
Dado que el proceso de implementacin de un indicador consta de diversas tareas, en
cadaapartadodelossiguientestrataremosunadeellas.
6.4.1. Descripcindelosindicadores
Ladescripcindelosindicadoresvienedadaenlaplantilladelindicadorquenosenvael
cliente. Sin embargo, como lo que interesa en este captulo son los detalles de
implementacin de los indicadores, no se va a adjuntar esa plantilla ni el resto de
documentos originados durante el proceso de desarrollo: documento de ayuda,
documento de anlisis y documento de desarrollo. En lugar de estos documentos, a
continuacin se indica la informacin relevante de cada indicador, la cual incluye una
56
brevedescripcindelmismo,unalistadecosasquesedeseasaberacercadelindicadory
ladefinicindelasmedidasyKPIs.
Losindicadoresaimplementarsonlossiguientes:
IndicadorlcerasCuras
Muestraeltotaldecurasdelcerasquesehanrealizadoenunaresidencia.
Concretamentesedeseasaberlasiguienteinformacin:
Descripcindelalcera.
Fechaenlaqueseproducelacura.
Residentequepadecelalcerayalqueselerealizalacura.
Carcterplazadelresidenteenlafechadelacura.
Tipologadelresidenteenlafechadelacura.
Centroalqueperteneceelresidente.
Localizacindelacura.
Tipodelalcerapadecida.
Procedenciadelalcera,esdecir,dndeleaparecialresidente.
Estadio/Gravedaddelacura.
Tamaodelalcera.
Silalceraestcuradaono.
Enloquerespectaalasmedidas,sedeseasaberelnmerototaldecurasrealizadasyel
tamaomediodeunalcera.
Porotraparte,losKPIsdefinidosparaesteindicadorson:
El tamao medio de las lceras para la Residencia 1 se espera que sea menor o
iguala3.Losvalorescomprendidosentre3y4nosondeltodomalosylosvalores
apartirde4sonmalos.
El tamao medio de las lceras para la Residencia 2 se espera que sea menor o
iguala1.Losvalorescomprendidosentre1y2nosondeltodomalosylosvalores
apartirde2sonmalos.
IndicadorDiferenciaSeguimientosProfesionales
Muestra el nmero total de das transcurridos entre los seguimientos/evaluaciones de
cadatipodeprofesional(mdico,psiclogo,etc)aunresidente.
Concretamentesedeseasaberlasiguienteinformacin:
Residentealqueselerealizaunseguimiento.
Carcterplazadelresidenteenlafechadelseguimiento.
Tipologadelresidenteenlafechadelseguimiento.
Centroalqueperteneceelresidente.
Fechaenlaqueserealizaelseguimiento.
57
Profesionalquerealizaelseguimiento.
Dastranscurridosdesdeelltimoseguimientorealizadoporeseprofesional.
En lo que respecta a las medidas, se desea saber el nmero total de das transcurridos
entreseguimientosprofesionalesalosresidentes,eltiempomnimotranscurridoentre2
seguimientos de un mismo profesional, el tiempo mximo transcurrido entre 2
seguimientos de un mismo profesional y el tiempo medio transcurrido entre
seguimientos.
Porotraparte,losKPIsdefinidosparaesteindicadorson:
ElnmeromediodedastranscurridosentredosseguimientosparalaResidencia
1seesperaqueseamenoroiguala50.Losvalorescomprendidosentre50y75no
sondeltodomalosylosvaloresapartirde75sonmalos.
ElnmeromediodedastranscurridosentredosseguimientosparalaResidencia
2seesperaquesemenoroiguala30.Losvalorescomprendidosentre30y40no
sondeltodomalosylosvaloresapartirde40sonmalos.
IndicadorEstanciaUnidades
Muestraelnmerototaldedasquelosresidentespasanenlasdiferentesunidadesdela
residencia o de un hospital (enfermera, psiquiatra, etc.) y a su vez, permite consultar
paraunafechacualquiera,cantosdasllevaunresidenteenesaunidad.
Concretamentesedeseasaberlasiguienteinformacin:
Residentequeseencuentraenlaunidad.
Carcterplazadelresidenteenlafechaqueseencuentraenlaunidad.
Tipologadelresidenteenlafechaqueseencuentraenlaunidad.
Centroalqueperteneceelresidente.
Fechaenlaqueelresidenteseencuentraenlaunidad.
Unidadenlaqueseencuentraelresidente.Sedebeindicarsilaunidadesinternao
externa.
Tiempoquellevaelresidenteenlaunidadaesafecha.
En lo que respecta a las medidas, se desea saber el nmero totalde das deestancia en
unidades,eltiempomnimoqueunresidentepasaenunaunidad,eltiempomximoque
un residente pasa en una unidad y el tiempo medio de estancia de un residente en una
unidad.
Porotraparte,losKPIsdefinidosparaesteindicadorson:
EltiempomediodeestanciadeunresidenteenunaunidadparalaResidencia1se
esperaqueseamenoroiguala100.Losvalorescomprendidosentre100y200no
sondeltodomalosylosvaloresapartirde200sonmalos.
Dadaestainformacin,sededucequelosposibletiposdeindicadoresson:
Indicadoresquecalculantotalesenfuncindevariasdimensiones.
58
EnestegrupoincluimoselindicadordeUlcerasCurasyeldeVisitasFamiliares.La
mayoradelosindicadoressolicitadosporlosclientessondeestetipo.
Indicadoresquemuestranunaevolucin.
EnestegrupoincluimoselindicadordeEstanciaUnidades.Estosindicadoresson
muy demandados, ya que con ellos el cliente est informado de lo que pasa
diariamenteenloscentros(residentesenelhospital,lcerasactivas,etc).
6.4.2. Hechosydimensionesdelosindicadores
Segn la informacin del punto anterior, la definicin de las tablas de hechos y
dimensiones necesarias para los indicadores sera la que aparece a continuacin. Se
indican las dimensiones que componen cada uno de los hechos, los atributos que
componen cada una de estas dimensiones, el nombre de las tablas de las que vamos a
extraerlainformacinyloscamposqueesnecesarioaadiralastablasdehechospara
podercalcularlasmedidas.
Puesto que los indicadores comparten algunas de sus dimensiones, a continuacin para
las dimensiones que son compartidas slo se indican sus atributos en uno de los
indicadores.EntreentasdimensionesseencuentranCentro,Tiempo,Residente,Carcter
PlazayTipologa.
Enloquerespectaalatcnicadediseoutilizada,usaremoselesquemaencopodenieve
porquealgunadelasdimensionesincluyeclavesqueapuntanaotrasdimensiones.
IndicadorlcerasCuras
a) Dimensiones:
Tiempo(UtilizaremoselcampoFechaHoradelatablaUlcerasCuras)
Atributos:IDTiempo,Fecha,Ao,MesID,Mes,Trimestre,Semana,NumDiaSemana,
DiaSemana,NombreCompleto.
Centro(UtilizaremoslatablaDatosResidencia)
Atributos:IDCentro,CodigoUnificado,Nombre,Ciudad,Provincia,Comunidad,Pais.
Residente(UtilizaremoselcampoIDResidentedelatablaUlcerasCurasparaluego
obtenereliddelalmacncorrespondienteparaeseresidente)
Atributos:IDResidente,CodigoUnificado,Nombre,Sexo,FechaIngreso.
59
lcera(UtilizaremoselcampoIDUlceradelatablaUlcerasCurasparaenlazarcon
latablaUlceras)
Atributos:IDUlceras,CodigoUnificado,Nombre.
Tipolcera(UtilizaremoselcampoIDUlceraTipondelatablaUlcerasparaenlazar
conlatablaUlcerasTipos)
Atributos:IDUlcerasTipos,CodigoUnificado,UlcerasTipos.
lceraCurada(UtilizaremoselcampoCuradodelatablaUlceras)
Atributos:IDUlceraCurada,UlceraCurada.
En este caso no precisamos de tener un cdigo unificado porque todas las
residencias tienen los mismos valores para ese campo y por tanto podemos
rellenarladimensinconlosvaloresutilizadosporelprograma.
b) Camposparalasmedidas:
Tamaolcera(UtilizaremoselcampoTamaodelatablaUlcerasCuras)
Por tanto la tabla de hechos del indicador se va a componer de los siguientes campos:
IDUlceras, IDTiempo, IDResidente, IDCaracterPlaza, IDTipologia, IDCentro,
IDCurasLocalizacion,
IDUlcerasTipos,
IDUlcerasProcedencias,
IDCurasEstadio,
IDUlceraCuradayTamaoUlcera.
IndicadorDiferenciaSeguimientosProfesionales:
a) Dimensiones:
Tiempo (Utilizaremos el campo FechaHora de cada una de las tablas de
seguimientos. Dichas tablas son las siguientes: ResiPsiSeguimientos,
ResiFisSeguimientos,
ResiDieSeguimientos,
ControlesSeguimientos,
ResiEnfSeguimientos,
ResiTsoSeguimientos,
ResiAscSeguimientos,
ResiTocSeguimientos,
ResiSupSeguimientos,
ResiDirSeguimientos,
ResiAuxSeguimientos,
ResiAesSeguimientos,
ResiPedSeguimientos
y
ResiPodSeguimientos)
Centro(UtilizaremoslatablaDatosResidencia)
60
Residente(UtilizaremoselcampoIDResidentedelastablasdeseguimientospara
luegoobtenereliddelalmacncorrespondienteparaeseresidente)
TipoProfesional(AsignaremosunIDTipoProfesionalalosdatossegnlatablade
seguimientosutilizada)
Atributos:IDTipoProfesional,TipoProfesional.
b) Camposparalasmedidas:
Tiempo Transcurrido (Pondremos el nmero de das transcurridos entre 2
seguimientosdeunmismoprofesionalaunmismoresidente)
Por tanto la tabla de hechos del indicador se va a componer de los siguientes campos:
IDTiempo, IDResidente, IDCaracterPlaza, IDTipologia, IDCentro, IDTipoProfesional y
TiempoTranscurrido.
IndicadorEstanciaUnidades:
a) Dimensiones:
Tiempo(UtilizaremoselcampoFechaIngresodelatablaResiUniEstancias)
Centro(UtilizaremoslatablaDatosResidencia)
Unidad(UtilizaremoselcampoIDUnidaddelatablaResiUniEstanciasparaenlazar
conlatablaUnidades)
Atributos:IDUnidad,CodigoUnificado,Unidad,IDTipoUnidad.
TipoUnidad(UtilizaremoselcampoTipodelatablaUnidades)
Atributos:IDTipoUnidad,TipoUnidad.
En este caso no precisamos de tener un cdigo unificado porque todas las
residencias tienen los mismos valores para ese campo y por tanto podemos
rellenarladimensinconlosvaloresutilizadosporelprograma.
Esta dimensin se considera una subdimensin, ya que no va a aparecer
directamente referenciada desde la tabla de hechos. De hecho, ser referenciada
desdeladimensinUnidadatravsdelcampoIDTipoUnidad.
b) Camposparalasmedidas:
TiempoEstancia(Pondremoselnmerodedasquellevaelresidenteenlaunidad
enciertafecha)
61
TotalEstancia(Pondremoselnmerototaldedasquepasaelresidentedurante
unaestanciaenunaunidad)
MinEstancia(Pondremoselperodomnimoquepasaunresidenteenunaunidad)
Por tanto la tabla de hechos del indicador se va a componer de los siguientes campos:
IDTiempo, IDResidente, IDCaracterPlaza, IDTipologia, IDCentro, IDUnidad,
TiempoEstancia,TotalEstanciayMinEstancia.
6.4.3. CreacinpaquetesETL
A continuacin vamos a crear los paquetes ETL necesarios para el desarrollo de los
indicadores. Concretamente, estos paquetes han de crear la estructura del almacn de
datos, rellenar los cdigos unificados de las dimensiones que lo requieran, rellenar las
dimensionesestticasquenocogeninformacindetablasmaestrasyfinalmenterellenar
lastablasdehechosdelosindicadores.
Adems, en ocasiones ser necesario disponer de tablas auxiliares para obtener
informacinqueesconsultadafrecuentemente(tipologadeunresidenteenciertafecha)
ylospaquetesETLtambinhandeencargarsedecrearyrellenarestastablas.
Dadoqueelnmerodetareasarealizareselevado,vamosacrearvariospaquetesETL.El
primerodeellosseencargardeconstruirelalmacndedatosyrellenarlasdimensiones
estticas; el segundo rellenar las dimensiones que utilizan cdigo unificado pero su
informacin no se introduce mediante tablas maestras (residentes, lceras) y luego
tendremosunoporcadaindicador.
Puesto que en el tutorial de Integration Services se detalla paso a paso cmo crear un
paqueteETL,enestepuntonoentraremosendetalleencmorealizarlasaccionesvistas
enesetutorial(crearunproyecto,crearunaconexin,etc).
Antes de comenzar la implementacin de los paquetes ETL comentados anteriormente
necesitamos crear un proyecto SSIS. Como ya creamos uno para el indicador de Visitas
Familiares,utilizaremosesemismoproyecto.
Aadimos 5 nuevos paquetes SSIS al proyecto y los renombramos para que tengan un
nombre significativo. Los nombres de dichos paquetes sern Almacen, Dimension,
HechoUlcerasCuras, HechoDiferenciaSeg y HechoEstanciaUnidades. Los pasos a seguir
son:
1. Seleccionamos la carpeta Paquetes SSIS en el Explorador de soluciones,
hacemos clic con el botn derecho y seleccionamos Nuevo Paquete SSIS.
Automticamentesecrearunnuevopaqueteconunnombrepordefecto.
2. Seleccionamoselpaqueterecincreadoylecambiamoselnombreenlaventana
Propiedades.
Elproyectoenelqueestamostrabajandoconstadedosconexiones,unaalabasededatos
operacionaldelaqueseextraenlosdatosparaelindicadoryotraalalmacndedatos.No
obstante, necesitamos aadir dos nuevas conexiones: una que se conecte a la base de
datosmasterdenuestramquinaparapodercrearlastablasdelalmacndedatosyotra
que se conecte a la base de datos DatosUsuarios para poder obtener el nombre del
centroparaelquelanzamoslospaquetes.
Despusdecrearlospaquetesnecesariosylasconexionesqueutilizarnuestroproyecto,
elExploradordesoluciones(Figura6.4.)mostrarlosiguiente:
62
Figura6.4.Exploradordesoluciones
Hayquetenerencuentaquesiqueremoslanzarlospaquetesparamsdeunaresidencia,
tendremosquecambiarlaconfiguracindelaconexinResidenciaparaqueapunteala
basededatosdelnuevocentroparaelquequeremoslanzarlospaquetesantesdelanzar
dichospaquetes.
PaqueteAlmacen
El paquete Almacen es el encargado de construir el almacn de datos y rellenar las
dimensionesestticas.Dadoqueeselencargadodecrearlastablasdelalmacndedatos,
eselpaquetequeprimeroseejecuta.Seejecutaalprincipiodelprocesoynosevuelvea
ejecutar hasta que no se necesita introducir cambios en el paquete para crear nuevas
tablasenelalmacnosedeseaborrarelcontenidodelalmacndedatos.
Endefinitiva,lastareasquedeberealizarestepaqueteson:
Eliminarlastablasauxiliares.
Crearlastablasdedimensiones.
Crearlastablasdehechos.
Crearlastablasauxiliares.
Rellenardimensionesestticas.
Reiniciarlassemillasdeaquellastablascuyocontenidoesborradoparaquelosid
empiecenen1.
LoprimeroquetenemosquehaceriralpaneldeAdministradoresdeconexin,hacer
clicenNuevaconexindesdeorigendedatosyaadirlossiguientesorgenesdedatos:
AlmacenyConexin.
Cuandotengamoslasconexionesconfiguradas,pasamosaconstruirelflujodecontrolde
nuestropaquete,elcualvaaestarcompuestodelastareasindicadaspreviamente.
Para construir el flujo de control utilizaremos contenedores de secuencias, ya que
agrupan tareas en una unidad lgica de trabajo. Dentro de estos contenedores de
63
secuenciasutilizaremostareasqueejecutanSQLparaintroducirlosscriptsdelabasede
datos.
Dichoesto,arrastramos6contenedoresdesecuenciasdesdeelcuadrodeherramientasa
la superficie de diseo de nuestro flujo de control y los conectamos unos con otros
arrastrandolasflechasverdes.
Acontinuacinsedetallanlasaccionesarealizarparacadaunodeestoscontenedores:
EliminarTablasAuxiliares
Esta tarea es la encargada de borrar las tablas auxiliares del almacn de datos. Se
componedetrestareas,tantascomotablasauxiliaresnecesitamosparalosindicadores,
cada una de las cuales contiene el cdigo SQL necesario para borrar una tabla auxiliar
(Figura6.5.).
Figura6.5.ContenedordesecuenciaEliminarTablasAuxiliares
Dadoquelosindicadoresnecesitaninformacinsobrelatipologa,carcterplazaoestado
deunresidenteparaunafechacualquierayestainformacinnosealmacenatalcualenel
programa, necesitamos tablas auxiliares para almacenar esta informacin. El hecho de
que sean tres tablas y no una solamente es porque preferimos tener la informacin
separada.
Pararellenarelcontenedordesecuenciahayquehacerlosiguiente:
1. ArrastramosunatareaqueejecutaSQLdesdeelcuadrodeherramientasalinterior
delcontenedordesecuencias.
2. Hacemosdobleclicsobrelatareaparaeditarlatarea(Figura6.6.)yrellenamosel
campo Nombre, seleccionamos la conexin que utiliza, pulsamos el botn que
aparece en el campo del comando SQL para introducir el cdigo SQL que debe
ejecutaryunavezintroducidopulsamosAceptar.
ElcdigoSQLquedebeejecutarcadaunadeellasdebecomprobarquelatablaen
cuestin existe y si existe, proceder a su borrado. A continuacin se muestra el
cdigodelatareaEliminarCarcterPlazaamododeejemplo:
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CaracterPlaza]') AND type in (N'U'))
DROP TABLE [dbo].[CaracterPlaza]
64
Figura6.6.EditortareaSQL
3. Repetimoslospasos12conlasotrasdostareas.
4. Renombramos el nombre del contenedor de secuencias haciendo clic sobre el
nombre o haciendo clic con el botn derecho, seleccionando la ventana
Propiedadesycambiandoelnombre.
EliminarHechosyDimensiones
Estatarea(Figura6.7.)eslaencargadadeborrarlastablasdehechosylastablasdelas
dimensionescuyocdigounificadoesrellenadoautomticamenteconunpaqueteETL,ya
que dicho cdigo unificado es susceptible de cambios en su construccin. Estas
dimensionessonlceras,residenteycentro.
Figura6.7.ContenedordesecuenciaEliminarHechosyDimensiones
65
Pararellenarelcontenedordesecuenciahacemoslomismoqueantesconladiferenciade
queahoranecesitamosestablecerunarelacindeprecedenciaentreambastareas.Deno
hacerloseproduciraunerrorporquelas dimensionesnopuedenserborradasantesque
lastablasdehechos,yaquestasltimasreferencianalasdedimensiones.
El cdigo SQL a introducir en las tareas es similar al anterior y lo nico que hay que
cambiareselnombredelatablasqueseborran.
CrearDimensiones
Estatareaeslaencargadadecreartodaslastablasdedimensionesdelalmacndedatos.
Secomponedetantastareascomotablasdedimensionesnecesitamoscrear(Figura6.8.).
Figura6.8.ContenedordesecuenciaCrearDimensiones
Pararellenarelcontenedordesecuenciahacemoslomismoqueantes.Simembargo,en
estecasoelcdigoSQLaintroducirenlastareasdifiere,yaqueahoraloquehacemoses
crearlastablasconsusatributos.Ademsesposiblequehayarelacionesdeprecedencia
entre las dimensiones como la que se observa entre Dim Tipo Unidad y Unidad y eso
tambinhayqueindicarloendichocdigo.Enelcasodeestasdosdimensiones,DimTipo
Unidad ha de ser creada previamente porque se trata de una subdimensin de Dim
Unidad.
ElcdigoSQLdeladimensinUnidadseraelsiguiente.Enlaparecenenotrocolorlas
referenciasalasotrastablas:
if not exists (Select * From information_schema.tables where table_name='Dim_Unidad')
CREATE TABLE [dbo].[Dim_Unidad](
[IDUnidad] [int] IDENTITY(1,1) NOT NULL,
[CodigoUnificado] [nvarchar](19) NULL,
[Unidad] [nvarchar](50) NULL,
[IDTipoUnidad] [int] NOT NULL
PRIMARY KEY CLUSTERED
(
[IDUnidad] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
66
CrearHechos
Esta tarea es la encargada de crear todas las tablas de hechos del almacn de datos. Se
componedetantastareascomotablasdehechosnecesitamoscrear(Figura6.9.).
Figura6.9.ContenedordesecuenciaCrearHechos
Para rellenar el contenedor de secuencia, arrastramos las tareas de SQL al interior del
contenedoryeditamossuspropiedades.Enestecaso,elcdigoSQLdedichastareasdebe
crear las tablas de hechos indicando las referencias de estas tablas a las tablas de
dimensiones.
ElcdigoSQLdelatareaquecreaelhechoSeguimientosProfesionaleseselsiguiente:
if not exists (Select * From information_schema.tables where table_name='Fact_UlcerasCUras')
CREATE TABLE [dbo].[Fact_UlcerasCuras](
[IDUlceras] [int] NOT NULL,
[IDTiempo] [int] NOT NULL,
[IDResidente] [int] NOT NULL,
[IDCaracterPlaza] [int] NULL,
[IDTipologia] [int] NULL,
[IDCentro] [int] NOT NULL,
[IDCurasLocalizacion] [int] NULL,
[IDUlcerasTipos] [int] NULL,
[IDUlcerasProcedencias] [int] NULL,
[IDCurasEstadio] [int] NULL,
[TamanoUlcera] [float] NULL,
[IDUlceraCurada] [int] NULL
67
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDCaracterPlaza])
REFERENCES [dbo].[Dim_CaracterPlaza] ([IDCaracterPlaza])
GO
ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDCentro])
REFERENCES [dbo].[Dim_Centro] ([IDCentro])
GO
ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDCurasLocalizacion])
REFERENCES [dbo].[Dim_CurasLocalizacion] ([IDCurasLocalizacion])
GO
ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDCurasEstadio])
REFERENCES [dbo].[Dim_CurasEstadio] ([IDCurasEstadio])
GO
ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDResidente])
REFERENCES [dbo].[Dim_Residente] ([IDResidente])
GO
ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDTiempo])
REFERENCES [dbo].[Dim_Tiempo] ([IDTiempo])
GO
ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDTipologia])
REFERENCES [dbo].[Dim_Tipologia] ([IDTipologia])
GO
ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDUlceras])
REFERENCES [dbo].[Dim_Ulceras] ([IDUlceras])
GO
ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDUlcerasTipos])
REFERENCES [dbo].[Dim_UlcerasTipos] ([IDUlcerasTipos])
GO
ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDUlcerasProcedencias])
REFERENCES [dbo].[Dim_UlcerasProcedencias] ([IDUlcerasProcedencias])
GO
68
El cdigo del resto de tareas es similar pero cambian las referencias a las tablas de
dimensiones,yaquenotodosloshechostienenlasmismasdimensiones.
CrearTablasAuxiliares
Estatareaeslaencargadadecreartodaslastablasauxiliares.Secomponedetrestareas
porquedemomentoslosenecesitantrestablasauxiliares(Figura6.10).
Figura6.10.ContenedordesecuenciaCrearTablasAuxiliares
Para rellenar el contenedor de secuencia, arrastramos las tareas de SQL al interior del
contenedoryeditamossuspropiedades.Enestecaso,elcdigoSQLdedichastareases
comoelsiguiente:
if not exists (Select * From information_schema.tables where table_name='Tipologias')
CREATE TABLE [dbo].[Tipologias](
[IDResidenteAlmacen] [int] NULL,
[Fecha] [datetime] NULL,
[IDTipologiaAlmacen] [int] NULL,
) ON [PRIMARY]
Lastablasauxiliaresslovanaestarcompuestasdetrescolumnas:unaparaelresidente,
otra para la fecha y la ltima para almacenar la tipologa, carcter plaza o estado. Esta
ltimacolumnaeslaquevaradeunatablaauxiliaralaotra.
Rellenardimensiones
Estatarea(Figura6.11.)eslaencargadaderellenarlasdimensionesestticas,esdecir,las
dimensiones que no se rellenan por medio de las tablas maestras que proporciona la
interfaz del programa Resiplus BI. Estas dimensiones se caracterizan porque no tienen
cdigo unificado, ya que los valores son comunes para todas las residencias. Debido a
esto,lasdimensionesserellenanconlosvaloresutilizadosporelprogramaResipluspara
poder enlazar con las tablas directamente, sin necesidad de comparar ningn tipo de
cdigo.
Enestegrupotambinseincluyenlasdimensionesquesecreanconobjetodediferenciar
datos. Un ejemplo de este tipo de dimensiones es la Dim Tipo Profesional, la cual no se
enlaza con ninguna otra tabla, sino que se utiliza para identificar la tabla de la que
procedenciertosdatostalycomoveremosenelpaquetedeSeguimientosProfesionales.
Dichatablaserellenaconlosdiferentestiposdeprofesionalesquerealizanseguimientos.
69
Figura6.11.ContenedordesecuenciaRellenarDimensiones
Para rellenar el contenedor de secuencia, arrastramos las tareas de SQL al interior del
contenedoryeditamossuspropiedades.Enestecaso,elcdigoSQLdedichastareases
comoelsiguiente:
if not exists (Select * From Dim_EstadoResidente)
begin
DBCC CHECKIDENT ('Dim_EstadoResidente' ,RESEED,1)
INSERT INTO Dim_EstadoResidente
(EstadoResidente)
VALUES ('Baja Voluntaria')
INSERT INTO Dim_EstadoResidente
(EstadoResidente)
VALUES ('Expulsado')
INSERT INTO Dim_EstadoResidente
(EstadoResidente)
VALUES ('Fallecido')
INSERT INTO Dim_EstadoResidente
(EstadoResidente)
VALUES ('Hospital')
INSERT INTO Dim_EstadoResidente
(EstadoResidente)
VALUES ('Residencia')
INSERT INTO Dim_EstadoResidente
(EstadoResidente)
VALUES ('Ausente')
End
70
PaqueteDimension
El paquete Dimension es el encargado de rellenar las dimensiones que utilizan cdigo
unificado pero su informacin no se introduce mediante tablas maestras (centro,
residentesylceras)ydecargarlosdatosenlastablasauxiliarescreadaspreviamente.
Se ejecuta tras el paquete Almacen y tantas veces como residencias queremos utilizar
paralosresultadosdenuestrosindicadores,esdecir,siqueremoslanzarlosindicadores
para dos centros, debemos lanzar este paquete para cada uno de los centros, previo
cambiodelaconfiguracindelaconexinResidencia.
Endefinitiva,lastareasquedeberealizarestepaqueteson:
Obtenerciertasvariablesquenosayudenaidentificarelnombredelcentroparael
quevamosalanzarelpaquete.
Cargarlasdimensionesquenoserellenanatravsdelastablasmaestras.
Cargarlastablasauxiliares.
Antes de empezar con el desarrollo del paquete, debemos acceder a la interfaz del
ResiplusBIyrellenarlastablasmaestrasquenecesitamosparanuestrosindicadores.Las
tablas a rellenar son las que corresponden a las siguientes dimensiones:CarcterPlaza,
Tipologa, Curas Localizacin, Curas Estadio, lceras Procedencias, lceras Tipos y
Unidad.
Para todas estas tablas, el campo Cdigo Unificado ya ha sido creado y rellenado en su
tabla homnima en la base de datos operacional y por eso solamente tenemos que
rellenarlastablasdelalmacndedatos.
LaFigura6.12.muestralainterfazdelResiplusBIpararellenarlastablasmaestras.
71
Figura6.12.InterfazResiplusBIpararellenarlatablamaestraUlcerasProcedencias
Figura6.13.Variablesdefinidasenelpaquete
Ahoraconstruiremoselflujodecontroldenuestropaquete,elcualvaaestarcompuesto
delastareasindicadaspreviamente.
Para construir el flujo de control utilizaremos contenedores de secuencias, ya que
agrupan tareas en una unidad lgica de trabajo. Dentro de estos contenedores de
secuenciasutilizaremostareasqueejecutanSQLytareasdeflujodedatos.
Dichoesto,arrastramos4contenedoresdesecuenciasdesdeelcuadrodeherramientasa
la superficie de diseo de nuestro flujo de control y los conectamos unos con otros
arrastrandolasflechasverdes.
Lasaccionesarealizarparacadaunodeestoscontenedores:
Obtencindevariables
Estatareaeslaencargadadedarvaloralasvariablesdefinidasanteriormente.Constade
dos tareas de flujos de datos entre las que existe una relacin de precedencia (Figura
6.14.).
72
Figura6.14.ContenedordesecuenciaObtencinVariables
Pararellenarelcontenedordesecuenciahayquehacerlosiguiente:
1. Arrastramos una tarea de flujo de datos desde el cuadro de herramientas al
interiordelcontenedordesecuencias.
2. HacemosclicsobrelatareayseleccionamoslapestaaFlujodedatos.
3. Arrastramos un Origen OLE DB y un Componente de script a la superficie de
diseo del flujo de datos y los conectamos con la flecha verde (Figura 6.15.).
Utilizamos estas transformaciones porque son las que necesitamos en este caso
perostasserndistintassegnloquesevayaahacer.
Figura6.15.FlujodedatosasociadoalatareaAdquiereNombre
CrearyRellenarCdigosUnificados
Estatarea(Figura6.16.)eslaencargadadecrearloscamposdecdigounificadoqueno
existenenlabasededatosoperacionalyrellenardichoscampos.Constadecuatrotareas
73
que ejecutan cdigo SQL entre las que se existen relaciones de precedencia, ya que
primerosecreaelcampoyluegoserellena.
Esta accin es necesaria para las dimensiones que no se rellenan a travs de tablas
maestras.Anteriormenteindicamosqueestasdimensioneserancentro,residenteylcera
peroparacentronosehaceporquenoexisteningunatablacontodalalistadecentros.
Figura6.16.ContenedordesecuenciaCrearyRellenarCodigosUnificados
Para rellenar el contenedor de secuencia, arrastramos las tareas de SQL al interior del
contenedor y editamos sus propiedades. Las tareas que crean el campo para el cdigo
unificadotienenuncdigosimilaraste:
if not exists (select * from information_schema.columns where Table_name='Residentes' and
column_name='CodigoUnificado')
alter table Residentes
add CodigoUnificado nvarchar(50)
Encambio,paralastareasquerellenanelcdigounificadosucdigoserasimilaraste:
declare @bd nvarchar(50)
select @bd=(select distinct replace(replace(table_catalog,'DatosResidencia','-'),'_','') from information_schema.tables)
UPDATE Residentes
SET CodigoUnificado=convert(nvarchar,IDResidente)+@bd
Conestecdigo,loscdigosunificadosdelosresidentesserndelaformaIDResidente
NombreBD.
CargarDimensiones
Esta tarea (Figura 6.17.) es la encargada de cargar datos en las dimensiones que no se
rellenanatravsdetablasmaestras.Constadetrestareasdeflujodedatos,cuyotrabajo
consisteensacarinformacindelabasededatosoperacionalyalmacenarlaenelalmacn
dedatos.
Figura6.17.ContenedordesecuenciaCargarDimensiones
Figura6.18.FlujodedatosasociadoalatareaResidente
75
Figura6.19.VentanaconfiguracinOrigenOLEDBResidente
Ahora hacemos doble clic sobre el Destino OLE DB, seleccionamos como Modo de
accesoadatoslaopcindeCargarpidadetablaovistayseleccionamoslatablaque
vamosarellenar,queenestecasoesDim_Residente.LuegohacemosclicenAsignaciones
y hacemos corresponder las columnas de entrada con las columnas de destino
correspondientes.
76
Figura6.20.VentanaAsignacionesdelDestinoOLEDBDimResidente
CargarTablasAuxiliares
Estatarea(Figura6.21.)eslaencargadadecargardatosenlastablasauxiliares.Constade
trestareasdeflujodedatos,cuyotrabajoconsisteensacarinformacindelastablasdela
basededatosoperacional,procesarlaparaqueseajustealasnecesidadesdelatablay
almacenarlaenlastablascorrespondientesdelalmacndedatos.
Figura6.21.ContenedordesecuenciaCargarTablasAuxiliares
77
Figura6.22.Parte1delflujodedatosasociadoalatareaTipologia
78
Figura6.23.VentanaconfiguracinOLEDBEvolucionTipologias
ElsiguientepasoesobtenerelIDResidentedelalmacndedatosquesecorrespondecon
el IDResidente de los datos obtenidos. Como lo que vamos a hacer es unir los datos
obtenidos con los datos del almacn usando el IDResidente, necesitamos ordenar los
datospordichocampo.Dichaordenacinsepuederealizarutilizandounatransformacin
Ordenarobienmodificandolaconfiguracindelorigen.
Para realizar la ordenacin de la segunda forma, debemos hacer clic sobre el origen y
seleccionar Mostrar Editor Avanzado. Vamos a la ltima pestaa (Figura 6.24.),
ponemos a cierto el campo IsSorted, seleccionamos la columna por la que deseamos
ordenarelconjuntodedatos(IDResidente)yponemoslapropiedadSortKeyPositiona1.
De esta forma nos ahorramos poner una transformacin y el paquete es algo ms
eficiente.
79
Figura6.24.EditorAvanzadoOLEDBEvolucionTipologias
Cuandotenemoslosdatosordenados,losiguienteesobtenerlacorrespondenciadeIDs
delaresidenciayelalmacnparalosresidentes.Paraelloaadimosdosnuevosorgenes:
uno que saque la informacin de los residentes de la residencia y otro que saque esta
mismainformacinperodelalmacndedatos.
Como lo que nos interesa es la informacin de los IDs, la consulta slo recupera los
camposIDyCodigoUnificado(Figura6.25.),siendosteltimoelimportanteparaenlazar
con el almacn de datos por ser comn en ambas bases de datos. La configuracin del
origenqueaccedealabasededatosoperacionalquedadelasiguienteforma:
80
Figura6.25.VentanaconfiguracinOLEDBResidentes
En el caso del orgen de datos que accede al almacn, la configuracin es similar. Las
nicasdiferenciassonlaconexin,enestecasoserAlmacen,yelnombredelatabladela
consulta,queserDim_Residente.
Aligualquehicimosanteriormente,ordenamosambosconjuntosdedatosporelcampo
CodigoUnificado para poder hacer la unin. Posteriormente, aadimos una
transformacin de Combinacin de mezcla (Merge Join) y la configuramos tal y como
indicalaFigura6.26.
81
Figura6.26.ConfiguracinMergeJoinResidentes
Nosquedamosconlosresidentesqueaparezcanenambastablas(innerjoin)porqueno
queremos tener IDs nulos. Es muy importante renombrar las salidas, ya que ambos
campossellamanigualynotenemosformadediferenciarlos.
Ahorayatenemoslacorrespondenciaexistenteentreambosyloquetenemosquehacer
es utilizar otra combinacin de mezcla para unir estos datos con los datos de las
tipologas.Apartirdeestemomento,yanoesnecesariopasaratravsdelflujodedatosel
IDResidentedelaconexinResidencia.
ElsiguientepasoesobtenerelIDTipologiadelalmacndedatosquesecorrespondecon
el IDTipologia de los datos obtenidos de la residencia.Para llevarlo a cabo, aadimos
nuevastransformacionesyrepetimoslasaccionesrealizadasconlosresidentes.
Laprimerapartedelflujodedatosacabacondosconjuntosordenadosdedatos.Poruna
partetenemoslainformacindelastipologasprocedentedelabasededatosoperacional
enlazada con el IDResidente del almacn correspondiente y por la otra tenemos la
correspondenciaentrelosIDsdelastipologas.
LasegundapartedelflujodedatoseslaquemuestralaFigura6.27.
82
Figura6.27.Parte2delflujodedatosasociadoalatareaTipologia
LoprimeroquesehaceesaadirunatransformacindeCombinacindemezcla(Merge
Join)paraunirambosconjuntosdedatosutilizandoelcampoIDTipologaPlaza.
Losdatosdelosquedisponemosnosindicanelmomentoenquelosresidentescambian
de tipologa. Sin embargo, nosotros lo que queremos saber es la tipologa de los
residentesencualquiermomentoyportanto,necesitamoshacerunscriptqueintroduzca
registros entre los cambios de tipologas y desde el ltimo cambio de tipologa hasta la
fechaactual.
De estaforma tendremos un registro para cada da para cada residente con la tipologa
quetieneelresidenteenesafecha.
Dichoesto,aadimosunComponentedescriptyconfiguramossussalidasparaquesean
lasqueseindicanenlaFigura6.28.
83
Figura6.28.Salidasdelcomponentedescript
ElcampoOrdenloutilizaremoscuandosedelcasodequehayaunresidentequetenga
dos tipologas para un mismo da. En este caso, nos quedaremos con el registro cuyo
campoOrdenseamayor,yaqueimplicaquefueintroducidoposteriormenteyportanto,
eslatipologamsactual.
Elcontenidodelscriptpararealizarelprocesamientorequeridoeselsiguiente.Seindica
slo el mtodo de procesamiento de las filas de entrada porque es el nico que tiene
cdigo.
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
fechaactual = Row.Fecha
If Row.HastaFecha_IsNull Then
fechafin = Date.Today
Else
fechafin = Row.HastaFecha
End If
While fechaactual <= fechafin
Me.Output0Buffer.AddRow()
Me.Output0Buffer.IDResidenteAlmacen = Row.IDResidenteAlmacen
Me.Output0Buffer.Fecha = fechaactual
84
Me.Output0Buffer.Orden = Row.IDResiHisTipologiaPlaza
If Row.IDTipologiaAlmacen_IsNull Then
Else
Me.Output0Buffer.IDTipologiaAlmacen=Row.IDTipologiaAlmacen
End If
fechaactual = fechaactual.AddDays(1)
End While
End Sub
Posteriormente necesitamos otro script para tratar el problema de las dos tipologas
comentadoanteriormente.Estescriptprecisaqueelconjuntodedatosestordenadotal
ycomoseindicaenlaFigura6.29.
Figura6.29.ColumnasordenacindelatransformacinSort8
85
Elcdigodeestescriptsera:
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
If Row.IDResidenteAlmacen = ResidenteAnterior And Row.Fecha = FechaAnterior Then
Row.NextRow()
Else
Me.Output0Buffer.AddRow()
Me.Output0Buffer.Fecha = Row.Fecha
Me.Output0Buffer.IDResidenteAlmacen = Row.IDResidenteAlmacen
If Row.IDTipologiaAlmacen_IsNull Then
Else
Me.Output0Buffer.IDTipologiaAlmacen=Row.IDTipologiaAlmacen
End If
ResidenteAnterior = Row.IDResidenteAlmacen
FechaAnterior = Row.Fecha
End If
End Sub
Para finalizar el flujo de datos, aadimos un destino con la misma configuracin que
siempre, seleccionamos la tabla que vamos a rellenar (Tipologias), hacemos clic en
Asignaciones y hacemos corresponder las columnas de entrada con las columnas de
destinocorrespondientes.
Unavezcreadoslosdosflujosdedatosquenosfaltan,eldesarrollodeestepaquetehabr
finalizado.
PaqueteHechoUlcerasCuras
ElpaqueteHechoUlcerasCuraseselencargadodeobtenerlosdatosrelacionadosconlas
curas de las lceras de la base de datos operacional y rellenar la tabla de hechos del
indicador de Ulceras Curas. Se ejecuta tras el paquete Dimension y tantas veces como
residencias queremos utilizar para los resultados del indicador, es decir, si queremos
lanzarelindicadorparadoscentros,debemoslanzarestepaqueteparacadaunodelos
centros,previocambiodelaconfiguracindelaconexinResidencia.
Este indicador estaba incluido en el grupo de los indicadores que calculaban totales en
funcin de varias dimensiones y por ello, la dificultad del mismo no radica en el
procesamientoarealizarconlosdatos,sinoenelelevadonmerodedimensionesconlas
quetenemosqueenlazarlosdatos.
LoprimeroquetenemosquehaceriralpaneldeAdministradoresdeconexin,hacer
clicenNuevaconexindesdeorigendedatosyaadirlossiguientesorgenesdedatos:
AlmacenyResidencia.
Cuando tengamos las conexiones configuradas, necesitamos crear una variable llamada
IDCentro para poder utilizarla en las diferentes tareas de flujo de datos que vamos a
aadir al flujo de control del paquete. En ella guardaremos el valor del IDCentro
almacenadoenelalmacndedatoscorrespondienteconelIDCentroparaelqueestamos
lanzandoelpaquete.
86
Paraconstruirelflujodecontrolutilizaremosdostareasdeflujodedatos,colocadastaly
comoindicalaFigura6.30.
Figura6.30.FlujocontroldelindicadorUlcerasCuras
Laprimeradeellasseencargardedotardevaloralavariablecreadapreviamenteyla
segundaserlaencargadadecargarlosdatosdelindicadorenlatabladehechos.
Acontinuacinsedetallaelflujodedatos(Figura6.31.)delaprimeradelastareas.
Figura6.31.FlujodedatosasociadoalatareaConsigueCentro
Loprimeroquenecesitamosesarrastraralasuperficiedediseodelflujodedatosunpar
de orgenes de datos que accedan a la tabla DatosResidencia y Dim_Centro
respectivamente para obtener los datos del centro. Concretamente, la configuracin del
origendedatosqueaccedealabasededatosoperacionaleslaqueapareceenlaFigura
6.32.
87
Figura6.32.ConfiguracinOrigenOLEDBCentroResidencia
valor = Row.IDCentro
Me.Output0Buffer.IDCentro = Row.IDCentro
End Sub
Public Overrides Sub PostExecute()
Me.Variables.IDCentro = valor //aqu rellenamos la variable
End Sub
End Class
Ahoraconstruiremoselflujodedatosdelasegundatarea.Dadoqueelflujoaconstruires
bastantegrande,iremosconstruyendoloporpartespequeas.
ElflujodedatoscomienzatalycomoindicalaFigura6.33.
Figura6.33.Parte1delflujodedatosasociadoalatareaUlcerasCuras
Caberecordarquelatabladehechosdelindicadorsecomponedelossiguientescampos:
IDUlceras, IDTiempo, IDResidente, IDCaracterPlaza, IDTipologia, IDCentro,
IDCurasLocalizacion,
IDUlcerasTipos,
IDUlcerasProcedencias,
IDCurasEstadio,
IDUlceraCuradayTamaoUlcera.
Comotodaestainformacinnoseencuentraenunanicatabla,debemosaadirtantos
orgenes de datos como tablas en las que se encuentra repartida esa informacin. En
nuestrocaso,esainformacinseencuentraenlastablasUlcerasCurasyUlcerasdelabase
dedatosoperacional.
Lasconsultasaintroducirendichosorgenessonlassiguientes:
UlcerasCuras
SELECT IDUlcera, FechaHora, IDEstadio, Tamano, IDResidente
FROM
dbo.UlcerasCuras
89
Ulceras
SELECT IDUlcera, IDUlceraProcedencia, IDUlceraTipo, IDLocalizacion, CodigoUnificado, Curado
FROM
dbo.Ulceras
Elrestodeinformacinlaobtendremosenlazandoconlastablasauxiliares.
EnlatabladeUlcerasCuraslascurasllevanasociadaunafechayunahora.Lahoracarece
deintersyademssinolaeliminamos,nopodremosenlazarlosdatosconladimensin
Tiempo. Por tanto, la siguiente transformacin que se requiere es un componente de
scriptqueeliminelahoradelosregistrosydejenicamentelafecha.Adems,dichoscript
hadeincorporartratamientodenulosparaserdeltodocorrecto.
El cdigo que se necesita para eliminar las horas de un registro es el que aparece a
continuacin:
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
fechaactual = Row.FechaHora
hora = Row.FechaHora.Hour * (-1)
Min = Row.FechaHora.Minute * (-1)
seg = Row.FechaHora.Second * (-1)
fechaactual = DateAdd(DateInterval.Hour, hora, fechaactual)
fechaactual = DateAdd(DateInterval.Minute, Min, fechaactual)
fechaactual = DateAdd(DateInterval.Second, seg, fechaactual)
Me.Output0Buffer.AddRow()
Me.Output0Buffer.Fecha = fechaactual
If Row.IDEstadio_IsNull Then
Else
Me.Output0Buffer.IDEstadio = Row.IDEstadio
End If
Me.Output0Buffer.IDResidente = Row.IDResidente
Me.Output0Buffer.IDUlcera = Row.IDUlcera
If Row.Tamano_IsNull Then
Else
Me.Output0Buffer.Tamano = Row.Tamano
End If
End Sub
Loquehacemosenelscriptessumarlealafechaquetenemos,lamismahoraperocon
valornegativoparaquelahorasequedeacero.
Elsiguientepasoesordenarambosconjuntosdedatosporelcampoporelquelosvamos
aunir(IDUlcera)yaadirunatransformacindecombinacindemezclaparaunirambos
conjuntosdedatos.
LaFigura6.34.muestralasiguientepartedelflujodedatos.
90
Figura6.34.Parte2delflujodedatosasociadoalatareaUlcerasCuras
Aadimosunatransformacindecolumnaderivada(Figura6.35.)paraaadiralconjunto
dedatoselIDCentrodelalmacnusandolavariableconelmismonombre.
Figura6.35.ConfiguracintransformacinColumnaDerivada
EnestemomentotenemostodalainformacinnecesariayloquefaltaesobtenerlosIDs
del almacn que se corresponden con los de la base de datos operacional, los cuales se
obtienentodosdelamismamanera.
91
EnprimerlugarobtenemoselIDResidentedelalmacndedatosquesecorrespondecon
el IDResidente de los datos obtenidos tal y como se indic anteriormente, es decir,
obtenemos el par IDResidenteIDResidenteAlmacen y lo enlazamos con la datos que
tenemosparaquedarnossolamenteconelIDResidenteAlmacen.
LasiguientepartedelflujodedatoseslaquemuestralaFigura6.36.
Figura6.36.Parte3delflujodedatosasociadoalatareaUlcerasCuras
EnestaparteloquesetrataesdeobtenerelIDUlcerasProcedenciasyelIDUlcerasTipos
delalmacndedatosquesecorrespondenconsushomnimosdelosdatosquellevamos
hastaelmomento.
LaFigura6.37.muestralapartequelesiguealaanterior.
Figura6.37.Parte4delflujodedatosasociadoalatareaUlcerasCuras
92
AquloquequeremosesobtenerelIDCurasLocalizacionyelIDCurasEstadiodelalmacn
dedatosquesecorrespondenconelIDLocalizacionyelIDEstadiodelosdatosobtenidos.
AcontinuacinnosencontramosconlapartequeindicalaFigura6.38.
Figura6.38.Parte5delflujodedatosasociadoalatareaUlcerasCuras
En lo que respecta a la dimensin Ulcera Curada, los campos a comparar son
UlceraCurada (Dim_UlceraCurada) y Curado (flujo de datos izquierdo). Como el campo
Curadoesdetipobooleanoyelotroesdetipoentero,debemoshacerunaconversindel
tipo de UlceraCurada para pasarlo a booleano y poder hacer la unin de datos. El
resultadodedichauninserelIDUlceraCuradadelalmacndedatos.
LasiguienteparteeslamostradaenlaFigura6.39.
Figura6.39.Parte6delflujodedatosasociadoalatareaUlcerasCuras
93
AquloquequeremosesobtenerelIDUlcerasdelalmacndedatosquesecorresponde
con el IDUlceras de los datos obtenidos utilizando el campo CodigoUnificado. Adems,
tambinseobtieneelIDCaracterPlazaquetienenasociadoslosresidentesenlafechade
lascurasenlazandoconlatablaauxiliarCaracterPlaza.Enestecaso,paraenlazarconla
tablaauxiliarutilizamosloscamposIDResidenteyFecha.Deutilizarslounodeellos,no
sepodraobtenerelIDCaracterPlaza.
LapenltimapartedelflujodedatossemuestraenlaFigura6.40.
Figura6.40.Parte7delflujodedatosasociadoalatareaUlcerasCuras
Figura6.41.Parte8delflujodedatosasociadoalatareaUlcerasCuras
UnavezhemosenlazadoconladimensinTiempolonicoquefaltaesaadirundestino
dedatos.Configuramosdichodestinocomosiempre,seleccionamoslatablaquevamosa
rellenar(Fact_UlcerasCuras)yhacemosclicenAsignaciones(Figura6.42.).
94
Lasasignacionesdebenserlassiguientes:
Figura6.42.VentanaAsignacionesdelDestinoOLEDBRellenarHecho
Trasesto,eldesarrollodeestepaquetehabrfinalizado.
PaqueteHechoDiferenciaSeg
ElpaqueteHechoDiferenciaSegeselencargadodeobtenerlosdatosrelacionadosconlos
seguimientosprofesionalesdelabasededatosoperacionalyrellenarlatabladehechos
del indicador de Seguimientos Profesionales. Se ejecuta tras el paquete Dimension y
tantas veces como residencias queremos utilizar para los resultados del indicador, es
decir,siqueremoslanzarelindicadorparadoscentros,debemoslanzarestepaquetepara
cadaunodeloscentros,previocambiodelaconfiguracindelaconexinResidencia.
Esteindicadorestabaincluidoenelgrupodelosindicadoresquecalculabanladiferencia
de das transcurridos entre dos eventos y por ello, la dificultad del mismo radica en la
formadecalcularesadiferenciadedas.
LoprimeroquetenemosquehaceriralpaneldeAdministradoresdeconexin,hacer
clicenNuevaconexindesdeorigendedatosyaadirlossiguientesorgenesdedatos:
AlmacenyResidencia.
Cuandotengamoslasconexionesconfiguradas,necesitamoscrearlavariableIDCentroal
igualquehicimosenelindicadoranterior.
95
El flujo de control de este paquete ser similar al del paquete anterior, ya que tenemos
querealizarlasmismastareas:dotardevaloralavariableIDCentroycargarlosdatosdel
indicadorenlatabladehechos.
Dado que el flujo de datos asociado a la primera tarea fue analizado en detalle en el
paqueteanterior,acontinuacintrataremoselflujodedatosasociadoalasegundatarea.
Dichoflujoserparcialmentedistintoaldelotroindicadorporquedebemosrealizarotros
procesamientosporeltipodeindicadorquees.
Caberecordarquelatabladehechosdelindicadorsecomponedelossiguientescampos:
IDTiempo, IDResidente, IDCaracterPlaza, IDTipologia, IDCentro, IDTipoProfesional y
TiempoTranscurrido.
Puestoquenosencontramosconquetienedimensionescomunesconelotroindicador,
slovamosadetallarlaspartesdelflujodedatosqueseanpropiasdedichoindicador.
ElflujodedatoscomienzatalycomoseindicaenlaFigura6.43.
Figura6.43.Parte1delflujodedatosdelindicadorSeguimientosProfesionales
96
Figura6.44.ConfiguracindelOrigenOLEDBSeguimientosPsiclogos
6Trabajadorsocial
11Auxiliar
2Fisioterapeuta
7Animadorsocial
12Atencinespiritual
3Dietista
8Terapiaocupacional
13Pedagogo
4Mdico
9Supervisor
14Podlogo
5Enfermera
10Director
97
Figura6.45.ConfiguracintransformacinDerivedColumn
Figura6.46.Parte2delflujodedatosdelindicadorSeguimientosProfesionales
98
Esta parte es similar a la anterior pero incluye una transformacin Unin de todo para
combinartodoslosconjuntosdedatosquetenemoshastaelmomento.Comoloscampos
sellamandelamismaformaentodaslastablas,lasasociacionesentrecolumnasaparecen
automticamentetalycomoseindicaenlaFigura6.47.
Figura6.47.ConfiguracintransformacinUnionAll1
Tras esto, repetimos el proceso para el resto de tablas de seguimientos que faltan por
aadiralflujodedatos.
LaFigura6.48.muestralasiguientepartedelflujodedatos.
Figura6.48.Parte3delflujodedatosdelindicadorSeguimientosProfesionales
La transformacin Unin de todo la utilizamos para combinar todos los datos de las
tablasdeseguimientosquetenemoshastaelmomento.Laformadecombinarloseslaque
seindicanteriormente.
Como lo que queremos es calcular la diferencia de das transcurridos entre dos
seguimientos de un mismo profesional para un mismo residente, debemos ordenar los
datosporelTipoProfesional,IDResidenteyFechaHorarespectivamente.
Una vez los tengamos ordenados, aadimos un Componente de script cuyas entradas
sern todos los campos que tenemos hasta ahora y cuyas salidas sern esos mismos
campos y un campo adicional en el que guardaremos el tiempo transcurrido entre dos
seguimientos.
99
El cdigo del script sin incluir la declaracin de las variables que utilizamos es el
siguiente:
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
If contador <> 0 Then
If Row.IDResidente = residente Then
If Row.TipoProfesional = tipoProfesional Then
If Row.FechaHora_IsNull Then
Else
fecha2 = Row.FechaHora
Me.Output0Buffer.AddRow()
Me.Output0Buffer.IDResidente = Row.IDResidente
Me.Output0Buffer.Fecha = fecha2
Me.Output0Buffer.TipoProfesional=Row.TipoProfesional
Me.Output0Buffer.TiempoTranscurrido = DateDiff(DateInterval.Day, fecha1, fecha2)
fecha1 = Row.FechaHora
residente = Row.IDResidente
tipoProfesional = Row.TipoProfesional
End If
Else
If Row.FechaHora_IsNull Then
Else
fecha1 = Row.FechaHora
residente = Row.IDResidente
tipoProfesional = Row.TipoProfesional
End If
End If
Else
If Row.FechaHora_IsNull Then
Else
fecha1 = Row.FechaHora
residente = Row.IDResidente
tipoProfesional = Row.TipoProfesional
End If
End If
Else
If Row.FechaHora_IsNull Then
Else
fecha1 = Row.FechaHora
residente = Row.IDResidente
tipoProfesional = Row.TipoProfesional
contador += 1
End If
100
End If
End Sub
Elscriptfuncionaguardndoselainformacindelprimerseguimientodeunresidentede
un determinado tipo de profesional para calcular la diferencia de das con el siguiente
seguimientodeeseprofesional.Sitenemosesesegundoseguimiento,elscriptaadeuna
filaysino,pasamosalsiguienteregistroycomprobamoslomismo.Elhechodenoaadir
filas siempre provoca que el nmero de filas resultantes tras el script sea inferior al
nmerodefilasentrantes.
LapartedelflujodedatosquevieneahoraeslaqueseindicaenlaFigura6.49.
Figura6.49.Parte4delflujodedatosdelindicadorSeguimientosProfesionales
101
Figura6.50.VentanaAsignacionesDestinoOLEDBSeguimientosProfesionales
Trasesto,eldesarrollodeestepaquetehabrfinalizado.
PaqueteHechoEstanciaUnidades
ElpaqueteHechoDiferenciaSegeselencargadodeobtenerlosdatosrelacionadosconlas
estancias de los residentesen lasdiferentesunidades de la base de datos operacionaly
rellenarlatabladehechosdelindicadordeEstanciaUnidades.Seejecutatraselpaquete
Dimension y tantas veces como residencias queremos utilizar para los resultados del
indicador,esdecir,siqueremoslanzarelindicadorparadoscentros,debemoslanzareste
paqueteparacadaunodeloscentros,previocambiodelaconfiguracin de la conexin
Residencia.
Este indicador estaba incluido en el grupo de los indicadores que mostraban una
evolucin y por ello, la dificultad del mismo radica en la forma de derivar los registros
paracadada.
LoprimeroquetenemosquehaceriralpaneldeAdministradoresdeconexin,hacer
clicenNuevaconexindesdeorigendedatosyaadirlossiguientesorgenesdedatos:
AlmacenyResidencia.
Cuandotengamoslasconexionesconfiguradas,necesitamoscrearlavariableIDCentroal
igualquehicimosenelindicadoranterior.
102
El flujo de control de este paquete ser similar al del paquete anterior, ya que tenemos
querealizarlasmismastareas:dotardevaloralavariableIDCentroycargarlosdatosdel
indicadorenlatabladehechos.
Dado que el flujo de datos asociado a la primera tarea fue analizado en detalle en el
paqueteanterior,acontinuacintrataremoselflujodedatosasociadoalasegundatarea.
Dichoflujoserparcialmentedistintoaldelotroindicadorporquedebemosrealizarotros
procesamientosporeltipodeindicadorquees.
Caberecordarquelatabladehechosdelindicadorsecomponedelossiguientescampos:
IDTiempo, IDResidente, IDCaracterPlaza, IDTipologia, IDCentro, IDUnidad,
TiempoEstancia,TotalEstanciayMinEstancia.
Puestoquenosencontramosconquetienedimensionescomunesconelotroindicador,
slovamosadetallarlaspartesdelflujodedatosqueseanpropiasdedichoindicador.
ElflujodedatoscomienzatalycomoindicalaFigura6.51.
Figura6.51.Parte1delflujodedatosasociadoalindicadorEstanciaUnidades
ComotodalainformacinquenecesitamosseencuentraenlatabladeResiUniEstancias,
loprimeroquehacemosesaadirunorigendedatosqueaccedaadichatablaenlabase
dedatosoperacional.Laconsultaaintroducirendichoorigeneslaquesemuestraenla
Figura6.52.
103
Figura6.52.ConfiguracinOrigenOLEDBEstanciaUnidades
Else
fechafinal = Row.FechaBaja
If fechafinal = fechaactual Then
Else
fechafinal = fechafinal.AddDays(-1)
End If
End If
End If
While fechaactual <= fechafinal
Me.Output0Buffer.AddRow()
Me.Output0Buffer.IDResidente = Row.IDResidente
If Row.IDUnidad_IsNull Then
Else
Me.Output0Buffer.IDUnidad = Row.IDUnidad
End If
Me.Output0Buffer.Fecha = fechaactual
Me.Output0Buffer.TiempoEstancia = DateDiff(DateInterval.Day, Row.FechaIngreso, fechaactual) + 1
If fechaactual = fechafinal Then
Me.Output0Buffer.TotalEstancia = DateDiff(DateInterval.Day, Row.FechaIngreso, fechaactual) + 1
End If
fechaactual = fechaactual.AddDays(1)
End While
End Sub
A la salida del script ordenamos nuevamente los datos, pero esta vez ascendentemente
segnelIDResidenteydescendentementesegnlaFechadelregistro.
Posteriomenteaadimosunnuevocomponentedescriptquesevaaencargarderellenar
elcampoMinEstanciaqueutilizaremosparacalculareltiempomnimodeestanciadelos
residentesenlasunidades.
PararellenardichocampoutilizamoselcampoTotalEstanciatalycomosedetallaenel
cdigodelscript:
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Me.Output0Buffer.AddRow()
Me.Output0Buffer.Fecha = Row.Fecha
Me.Output0Buffer.IDResidente = Row.IDResidente
If Row.IDUnidad_IsNull Then
Else
Me.Output0Buffer.IDUnidad = Row.IDUnidad
End If
Me.Output0Buffer.TiempoEstancia = Row.TiempoEstancia
If Row.TotalEstancia_IsNull Then
Else
105
Me.Output0Buffer.TotalEstancia = Row.TotalEstancia
MinEstancia = Row.TotalEstancia
End If
Me.Output0Buffer.MinEstancia = MinEstancia
End Sub
OtrapartedelflujodeldatoseslaquemuestralaFigura6.53.
Figura6.53.Parte2delflujodedatosasociadoalindicadorEstanciaUnidades
Enlaparteizquierda,aadimosunatransformacindecolumnaderivadaparaaadiral
conjuntodedatoselIDCentrodelalmacnusandolavariableconelmismonombre.En
cambio,enlapartederechaloquehacemosesobtenerelIDUnidaddelalmacndedatos
quesecorrespondeconelIDUnidaddelabasededatosoperacional.
Llegados a este momento, lo siguiente es enlazar con las tablas de dimensiones y las
tablas auxiliares para obtener los siguientes IDs del almacn: IDResidente, IDTiempo,
IDCaracterPlaza y IDTipologia. La forma de enlazar es la misma que se indic en el
paqueteanterior.
El flujo de datos finaliza con la adicin del destino de datos. La tabla destino es
Fact_EstanciaUnidadesylasasignacionessonlasqueaparecenenlaFigura6.54.
106
Figura6.54.VentanaAsignacionesDestinoOLEDBEstanciaUnidades
Trasesto,eldesarrollodeestepaquetehabrfinalizado.
Una vez finalizado el desarrollo de todos los paquetes ETL necesarios para la carga de
nuestros indicadores, lo nico que falta es ejecutar cada uno individualmente para
comprobarquetodofuncionacorrectamente.Recordamosqueparaejecutarunpaquete
debemosseleccionardichopaqueteenelExploradordesoluciones,hacerclicconelbotn
derechoyseleccionarEjecutarpaquete.
6.4.4. CreacincubosOLAP
AhoravamosacrearloscubosOLAPdecadaunodenuestrosindicadores,incluyendolas
medidassolicitadasparacadaunodeellos.
PuestoqueeneltutorialdeAnalysisServicessedetallapasoapasocmocrearuncubo,
enestepuntonoentraremosendetalleencmorealizarlasaccionesvistasenesetutorial
(crearunproyecto,crearunavistadedatos,etc).
Antes de comenzar con la implementacin de los cubos comentados anteriormente
necesitamos crear un proyecto SSAS. Como ya creamos uno para el indicadorde Visitas
Familiares,utilizaremosesemismoproyecto.
107
Dichoproyectotieneunorigendefinidoqueseconectaalalmacndedatosyunavistade
dichoorigendedatosqueincluyetodaslastablasdefinidasparaelindicadordeVisitas
Familiares. Dado que las tablas de los nuevos indicadores no aparecen en dicha vista
automticamente, lo primero que tenemos que hacer es aadir dichas tablas a la vista.
Paraaadirtablasalavistadedatosdebemos:
1. SeleccionamoslavistadelorigendedatosenelExploradordesoluciones,hacemos
clicenelbotnderechoyseleccionamosAbrir.
2. Nos situamos sobre la vista, pinchamos con el botn derecho sobre ella y
seleccionamosAadir/Quitartablas.
3. Seleccionamostodaslastablasquedeseamosaadiralavistaenlalistadeobjetos
disponibles(Figura6.55.),pulsamos>yAceptar.
Figura6.55.VentanaAadir/Quitartablas
Opcionalmente,podemosdefinirundiagramaovistaparcialdelaanteriorparacadauno
de los indicadores. Para crear uno de estos diagramas debemos ir a la seccin de los
diagramas,hacerclicconelbotnderechoyseleccionarNuevoDiagrama(Figura6.56.).
108
Figura6.56.Crearnuevodiagrama
Cuando tengamos el nuevo diagrama, hacemos clic con el botn derecho sobre el
diagrama, seleccionamos la opcin Mostrar Tablas y seleccionamos las tablas que
queremosqueaparezcaneneldiagrama.Portanto,siqueremosconstruireldiagramadel
indicadordeUlcerasCuras,debemosseleccionartodaslastablasconlasqueserelaciona
latabladehechosylatabladehechospropiamente.
El siguiente paso es definir los cubos. En nuestro caso la arquitectura escogida es la
MOLAPporqueeslaquemejorsecomportacondatosdepocasdimensionescomolosde
nuestrosindicadores.
Paradefinirloscubosrealizamoslassiguientesacciones:
1. Vamos al Explorador de soluciones, hacemos clic con el botn secundario en
CubosyluegoseleccionamosNuevocubo.
2. Indicamos como mtodo de generacin Usar tablas existentes y seleccionamos
unadelastablasdehechosdelosnuevosindicadores(Fact_UlcerasCuras).
3. Aceptamos todas las medidas y dimensiones que aparecen por defecto, le damos
nombrealcubo(UlcerasCuras)ypulsamosFinalizar.
4. Repetimos los pasos 13 para crear los cubos SeguimientosProfesionales y
EstanciaUnidades.
LaFigura6.57.muestraunodeloscubosqueacabamosdecrearcontodassusrelaciones:
109
Figura6.57.CuboEstanciaUnidades
Alfinalizarelprocesodecreacindeloscubos,seobservaquestosaparecenincluidos
en la carpetas Cubos del Explorador de soluciones y las dimensiones aparecen en la
carpetaDimensiones.
A continuacin modificaremos las dimensiones que acaban de ser aadidas haciendo
dobleclicenellas(Figura6.58.).Concretamente,tenemosquehacerlosiguiente:
1. Arrastraremoslosatributosquequeremosquesemuestrenposteriormentedesde
lavistadelorigendedatosalapartedelosatributos.
Figura6.58.VentanaasociadaalaDimensionTipoProfesional
110
2. Enlaventanadeatributos,seleccionamoselnombredeladimensin,hacemosclic
con el botn secundario y seleccione Propiedades. Nos aseguramos de que la
propiedad UnknownMemberestVisibleyponemoselvalorNo Definidoenla
propiedadUnknownMemberName.
3. Modificamos las propiedades de los atributos de la dimensin que aparecen
marcadoscomoclavedeladimensinhaciendoclicconelbotnderechosobreel
atributo y modificando a False el campo AttributeHierarchyVisible de la
ventana Propiedades para que no se vean dicho atributos, ya que se trata de
identificadores. Para el resto de atributos dejamos las propiedades tal y como
aparecenpordefecto.
4. Repetimoslospasos13paracadaunadelasnuevasdimensiones.
El cubo de EstanciaUnidades posee una particularidad, ya que una de sus dimensiones
(Dim_Unidad)hacereferenciaaunasubdimensin(Dim_TipoUnidad).Estaparticularidad
ha de ser tratada indicando en el cubo que, adems de las dimensiones referenciadas,
existeotradimensinqueesreferenciada atravsdeotra.Paraindicaresto,lospasosa
seguirsonlossiguientes:
1. Hacemos doble clic sobre el cubo de EstanciaUnidades y seleccionamos la ficha
Usodedimensiones.
2. Hacemos clic con el botn secundario, seleccionamos Aadir Dimension y
seleccionamosladimensinDim_TipoUnidad.
3. Hacemos clic sobre el botn que aparece junto a la dimensin que acabamos de
aadiryrellenamoslapantallaqueaparecetalycomoindicalaFigura6.59.
Figura6.59.DefinicindelarelacinentreDimUnidadyDimTipoUnidad
111
Ahora es el momento de configurar las medidas de cada uno de los cubos y eliminar
aqullasqueaparecenpordefectoyquenonosinteresan.Acontinuacinseindicanlas
medidasquevamosadefinirparacadaunodeloscubos:
CuboUlcerasCuras
Queremossaberelnmerototaldecurasrealizadasyeltamaomediodelaslceras.
Lasmedidasycamposcalculadosadefinirsonlossiguientes:
Tamao:Eslasumadetodoslostamaosdelaslceras(CampoTamaoUlcera).
NmeroCuras:Eselnmeroderegistrosdelatabladehechosysecorrespondecon
el nmero total de curas realizadas. Se define como Count of rows de
Fact_UlcerasCuras.
Tamaomedio:Eseltamaomediodelaslcerasquepadecennuestrosresidentes.
SedefinecomouncocienteTamao/NmeroCuras(Figura6.60).
Figura6.60.DefinicindelamedidaTamaomedio
CuboSeguimientosProfesionales
Queremossaberelnmerototaldedastranscurridosentreseguimientosprofesionalesa
los residentes, el tiempo mnimo transcurrido entre 2 seguimientos de un mismo
profesional, el tiempo mximo transcurrido entre 2 seguimientos de un mismo
profesionalyeltiempomediotranscurridoentreseguimientos.
Lasmedidasycamposcalculadosadefinirsonlossiguientes(Figura6.61.):
Nmero Das: Es la suma de todas las diferencias de das (Campo
TiempoTranscurrido).
Tiempo Transcurrido Count: Es el nmero de registros de la tabla de hechos. Se
definecomoCountofrowsdeFact_DiferenciaSeg.
Mnimo:Eseltiempomnimotranscurridoentredosseguimientos.Sedefinecomo
MinimundeTiempoTranscurrido.
Mximo:Eseltiempomximotranscurridoentredosseguimientos.Sedefinecomo
MaximumdeTiempoTranscurrido.
112
Figura6.61.MedidascuboSeguimientosProfesionales
CuboEstanciaUnidades
Queremossaberelnmerototaldedasdeestanciaenunidades,eltiempomnimoque
unresidentepasaenunaunidad,eltiempomximoqueunresidentepasaenunaunidad
yeltiempomediodeestanciadeunresidenteenunaunidad.
Lasmedidasycamposcalculadosadefinirsonlossiguientes(Figura6.62.):
Total Estancia: Es la suma de todos las estancias en unidades (Campo
TotalEstancia).
NumRegistros:SedefinecomoCountofnonemptyvaluesdelcampoTotalEstancia,
yaquesloqueremosconsiderarlosregistroscuyovalornoseanulo.
MnimoTiempo:Eseltiempomnimoquelosresidenteshanestadoenlasunidades.
SedefinecomoMinimundeMinEstancia.
Mximo Tiempo: Es el tiempo mximo que los residentes han estado en las
unidades.SedefinecomoMaximumdelcampoTotalEstancia.
Media Estancia: Es el nmero de das medio que los residentes han estado en las
unidades.SedefinecomouncocienteTotalEstancia/NumRegistros.
Figura6.62.MedidascuboEstanciaUnidades
Cuandoacabemosdeconfigurarlasmedidas,elsiguientepasoarealizaresprocesartodo
el proyecto para ver que no hay ningn error. Para llevar a cabo esta accin
seleccionamos el nombre del proyecto, hacemos clic con el botn secundario y
seleccionamosProcesar.
LaFigura6.63.muestraqueelproyectohasidoprocesadoconxitoyporlotanto,nohay
ningnerror.
113
Figura6.63.Ventanadeprogresodelprocesamientodeloscubos
6.4.5. Creacintrabajodelanzamientodepaquetes
Enestepuntocrearemoseltrabajoencargadodeactualizarlosdatosdelosindicadores
diariamente.DichotrabajoseencargardelanzartodoslospaquetesETLyprocesarlos
cubosdesarrolladosenestecaptulo.
Puesto que en el tutorial del Agente SQL Server se detalla paso a paso cmo crear un
trabajo,enestepuntonoentraremosendetalleencmorealizarlasaccionesvistasenese
tutorial(crearuntrabajo,crearunaprogramacin,etc).
Como queremos obtener los datos de los indicadores para varias residencias, debemos
lanzarlospaquetesDimensionydecadaunodeloshechostantasvecescomoresidencias.
Ennuestrocasoqueremoslanzarlosdatospara3residenciasyporestemotivocadauno
de los paquetes se lanzar 3 veces a excepcin de Almacen. Adems, se necesita lanzar
tambinelpaqueteAlmacenparaborrarelcontenidodelalmacndedatosyrellenarlo
conlosdatosmsactualizadoscadada.
Eltrabajoquenecesitamoscreartienequelanzarlospaquetesyprocesarloscubosenel
siguienteorden:
1. LanzamoselpaqueteETLAlmacen.
2. LanzamoselpaqueteETLDimensionparaunadelasresidencias.
3. LanzamoslospaquetesETLdecadaunodelosindicadoresparaesaresidencia.
4. Lanzamos los paquetes Dimension y de los indicadores para el resto de
residencias.
114
5. Procesamosloscubos.
SuponiendoqueyahemosaccedidoalSQLServerManagementStudio,lospasosaseguir
paracrearestetrabajosonlossiguientes:
1. Hacemos clic con el botn derecho en el nodo Trabajos, seleccionamos Nuevo
Trabajo y rellenamos propiedades del mismo tales como el nombre y la
descripcin(Figura6.64.).
Figura6.64.Ventanadeconfiguracindeltrabajo
2. SeleccionamoslapginaPasosyhacemosclicenNuevo.
3. Especificamoselnombreparaelpaso(Almacen),eltipodepasocomoPaquetes
deIntegrationServices,dejelaopcinEjecutarcomoqueaparece,pongacomo
Origendelpaqueteelsistemadearchivos(Filesystem)eindiquelarutadondese
encuentraelpaquetequequeremosejecutar(Figura6.65.).
115
Figura6.65.VentanadeconfiguracindelpasoAlmacen
Figura6.66.PestaaDataSourcesdelpasoDimensionResidencia2
6. Creamosunnuevopasoparaprocesarloscubosdelosindicadores.Ponemoscomo
tipo de paso Comando de Analysis Services, dejamos la opcin Ejecutar como
queaparece,ponemoscomoServidorlamquinalocaleindicamosenComando
lasiguienteinstruccinXML:
116
<Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>Proyecto Analysis Services</DatabaseID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
Esta instruccin procesar todos los elementos de nuestro proyecto de Analysis
Services.
7. Porserelltimopaso,hacemosclicenlapginaAvanzadoyespecificamosSalir
deltrabajoeinformardelxitocomoAccinencasodexito,1comoNmero
dereintentosparaquevuelvaaintentarejecutarelpaqueteySalirdeltrabajoe
informardelerrorcomoAccinencasodeerror.
8. HagaclicenAceptarparaguardarelnuevotrabajo.
EltrabajoresultanteeselquemuestralaFigura6.67.
Figura6.67.ListadepasosdeltrabajoLanzamientoIndicadores
Una vez tenemos creado el trabajo, lo que falta es crear la programacin para dicho
trabajodeformaqueeltrabajoseejecutediariamente.
Paracrearlaprogramacindeltrabajodebemosseguirlossiguientespasos:
117
1. SeleccionamoslapginaProgramacionesdeltrabajoyhacemosclicenNueva.
2. Rellenamos los datos de la programacin tal y como indica la Figura 6.68. y
hacemosclicenAceptar.Segnestaconfiguracin,eltrabajosevaalanzartodos
losdasalas00:00h.
Figura6.68.Configuracindelaprogramacin
Figura6.69.Ventanadeprogresodeltrabajoejecutado
118
6.4.6. Creacininformes
Enestepuntocrearemoslosinformesdelosindicadorescreadosenpuntosanteriores.
PuestoqueeneltutorialdecreacindeinformesconExcelsedetallapasoapasocmo
crear un informe, eneste punto no entraremos en detalle en cmo realizar las acciones
vistasenesetutorial(crearunaconexin,crearungrfico,etc).
Como ya tenemos el informe que creamos para el indicador de Visitas Familiares,
necesitamoscrearsolamentetresinformes.
Segnelindicadoralqueasociemoselinforme,laconexinalcuboserdiferente.Enel
casodelindicadordeUlcerasCuras,debemosconfigurarlaconexinparaqueseconecte
alcuboconesemismonombre.Lospasosaseguirsonlossiguientes:
1. Vamos a la ficha Datos del Excel, en el grupo Obtener datos externos hacemos
clic en De otras fuentes y luego en Desde Analysis Services y se mostrar el
Asistenteparalaconexindedatos.
2. Indicamos el nombre del servidor OLAP donde se encuentra nuestro cubo,
seleccionamosUsarautenticacindeWindowscomoCredencialesdeconexin
yacontinuacinseleccionamoslabasededatosquecontienelainformacinque
desea (Proyecto Analysis Services) y cubo al que nos queremos conectar
(UlcerasCuras)talycomoseindicaenlaFigura6.70.
Figura6.70.ConfiguracindelaconexindelarchivoExcel
quedenohacerlonotendremoslaposibilidaddeutilizarlosvaloresdellibrodeExcelen
ladefinicindelosmismos.
AcontinuacinsedefinenunpardevistasmuysencillasparaelindicadorUlcerasCuras.
Conlaprimeradeellasobtenemoselnmerodecurasrealizadasencadacentrosegnel
ao(Figura6.71.):
Figura6.71.Vistadelnmerodecurastotalesporaoycentro
Otraposibilidaddeobtenerinformacinsimilarastaescolocarunfiltro(Figura6.72.)
quenospermitaseleccionarelaooaosenlosquequeremosconsultarelnmerode
curas.
Figura6.72.Vistadelnmerodecurasporcentroconunfiltroporao
ElgrficoasociadoadichatablaseraelquesemuestraenlaFigura6.73.
120
Figura6.73.Grficodelnmerodecurasporcentros
Otra de las posibles vistas a definir de este indicador es el nmero de curas segn el
estadiodelaslceras(Figura6.74.).
Figura6.74.Vistaygrficodelnmerodecurassegnelestadiodelaslceras
Trasdefinirlasvistasdelindicador,losiguienteesdotardenombreacadaunadeestas
vistasdelaformaqueseindicaeneltutorial.Esimportantedotardenombretambinal
rangodeceldasquecontienelatablayelgrficoparaluegoutilizarlocomounavistaenel
dashboard.
Laformadeguardarelinformeparaluegopoderusarloselementosalosqueleshemos
dado nombre en el dashboard es utilizando la pestaa Publish del cuadro de dilogo,
seleccionando Excel Services y en el cuadro de Excel Services Options (Figura 6.75.)
seleccionandoloselementosdellibrodeExcelquequeremosqueseanvisiblesdelalista
ItemsintheWorkbook.
121
Figura6.75.ElementosdellibroExcelseleccionadosparaservisibles
Finalizado el informe del primero de los indicadores, debemos hacer lo mismo para los
indicadoresdeSeguimientosProfesionalesyEstanciaUnidades.
En el caso del indicador de Seguimientos Profesionales, una posible vista sera ver el
tiempomediotranscurridoentreseguimientossegnelcentroyelao(Figura6.76.).
Figura6.76.Vistaygrficodeltiempomedioentreseguimientosporcentro
Por otra parte, para el indicador de Estancia Unidades se puede definir una vista que
muestreeltiempodeestanciamedioenlasunidadesporresidente(Figura6.77.).
122
Figura6.77.Vistaygrficodeltiempomediodeestanciaenunidadesporresidente
Cuandohayamosacabadodecrearlasvistasdecadaindicadorydarlenombreadichas
vistas,elprocesodecreacindelosreportshabrfinalizado.
6.4.7. Creacindashboard
Para finalizar el desarrollo e implementacin de los indicadores, lo nico que falta es
subirlosreportsysusconexionesalportaldeSharepointycreareldashboard.
Enprimerlugarsubiremoslosreportsdelaformaindicadaeneltutorialdedesarrollode
dashboards con Sharepoint. Tras subir los reports, podemos ver en la Figura 6.78. que
hansidoaadidosenelapartadodeReportsLibrary.
Figura6.78.Listadereportsdisponibles
HacemoslomismoconlasconexionesenlapginaDataConnections(Figura6.79.)pero
enestecaso,ademstenemosqueaprobarlasconexionesqueacabamosdesubir.
Figura6.79.Listadeconexionesdisponibles
123
Si consultamos los reports que acabamos de subir pinchando en sus enlaces asociados,
podemosobservarqueslosemuestranlasvistasquehemosdefinidoencadaunodelos
informes.Encasoquedeseramosconsultarotrainformacin,tenemoslaopcindeabrir
elarchivodeExceldesdelapginadeconsultaparajugarconlastablasdinmicashasta
obtenerlainformacindeseada.
Para el report del indicador de Ulceras Curas, los elementos definidos en el report que
aparecenenlapestaaViewsonlosqueaparecenenlaFigura6.80.
Figura6.80.ElementosvisiblesparaelindicadorUlcerasCuras
Acontinuacinvamosacreareldashborardparanuestroscuatroindicadores.Paraello
vamosalapginadeDashboards,hacemosclicenNew,rellenamoselnombrededicho
dashboardydejamoselrestodecamposcomoaparecenpordefecto.
Como lo que tenemos es cuatro indicadores, aadiremos a nuestro dashboard cuatro
webpartsdetipoExcelWebAccessparaquemuestrenlasvistasdefinidasenelreport.
Despusdeaadirlasdebemoseditarlasparadarlesunttulo,indicarelreportalquese
conectan y modificar sus dimensiones para que se ajusten a las dimensiones del
contenidoquequeremosmostrar.Todoestoloharemosenlatablaqueaparececuando
pinchamoselenlaceClickheretoopenthetoolpaneoseleccionamoslaopcinModify
SharedWebPartdelalistadesplegablequeapareceenlaesquinaderechasuperiordela
webpart.
Despusdeaadirlaswebparts,eldashboardquedaratalycomosemuestraenlaFigura
6.81.
124
Figura6.81.Dashboardcompuestode4indicadores
ElsiguientepasoesaadirlosKPIsaldashboardusandolawebpartquehasidoaadida
automticamentealcreareldashboard.
LosKPIsquedebemosdefinireneldashboardsonlossiguientes:
El tamao medio de las lceras para la Residencia 1 se espera que sea menor o
iguala3.Losvalorescomprendidosentre3y4nosondeltodomalosylosvalores
apartirde4sonmalos.
El tamao medio de las lceras para la Residencia 2 se espera que sea menor o
iguala1.Losvalorescomprendidosentre1y2nosondeltodomalosylosvalores
apartirde2sonmalos.
ElnmeromediodedastranscurridosentredosseguimientosparalaResidencia
1seesperaqueseamenoroiguala50.Losvalorescomprendidosentre50y75no
sondeltodomalosylosvaloresapartirde75sonmalos.
ElnmeromediodedastranscurridosentredosseguimientosparalaResidencia
2seesperaquesemenoroiguala30.Losvalorescomprendidosentre30y40no
sondeltodomalosylosvaloresapartirde40sonmalos.
EltiempomediodeestanciadeunresidenteenunaunidadparalaResidencia1se
esperaqueseamenoroiguala100.Losvalorescomprendidosentre100y200no
sondeltodomalosylosvaloresapartirde200sonmalos.
125
ParaaadirlosKPIsdebemosutilizarlalistadesplegablequeapareceenlawebpart.En
nuestrocasoparaladefinicindelosKPIsutilizaremoslosdatosexistentesenunlibrode
Excel.
La Figura 6.82. muestra la definicin del KPI del tamao medio de una lcera para la
residencia2.
Figura6.82.DefinicinKPIdeltamaomediodeunalceraparalaResidencia2
DespusdeaadirtodoslosKPIsconsuscorrespondientesvalores,lawebpartquedara
comosemuestraenlaFigura6.83.
126
Figura6.83.ListadeKPIsdefinidosparalosindicadores
Segnesto,losKPIsdefinidosnosealcanzanenlamayoradeloscasos,yaquede8que
hemos definido solamente 3 estn en verde, lo cual indica que hemos alcanzado ese
objetivo.LosKPIsdecoloramarilloestnprximosaalcanzarelobjetivomientrasque
losdecolorrojo,estnbastantelejosdealcanzardichoobjetivo.
Dicho esto y tras finalizar la creacin del dashboard, podemos dar el proceso de
desarrolloeimplementacindelosindicadoresporfinalizado.
127
128
Captulo7.Conclusiones
ActualmentelasherramientasdeBusinessIntelligencesuponenunapoyofundamentalen
latomadedecisionesdelosdirectivosdelasempresas.Estasherramientaspermitenla
construccinde solucionesamedidayofrecendeformasencillaunapotenteexplotacin
delainformacingenerandounaventajacompetitivaparalatomadedecisiones.
La solucin de Business Intelligence desarrollada en este proyecto es un ejemplo de
solucinhechaamedida.Enlaactualidad,dichasolucinesutilizadaporvariosclientes
con mltiples residencias. Debido a los buenos resultados, son varios los clientes que
estninteresadosensolucionessimilares.
En cuanto a los objetivos de este proyecto, podemos afirmar que se han cumplido con
xito:
-
Respectoalaexperienciaadquiridaeneldesarrollodeindicadoressonmuchaslascosas
acomentarperoacontinuacinespecificolasmsrelevantes:
-
129
Personalmenteesteproyectomehasupuestoungrandesafopuestoquecuandoempec
a trabajar en l, los conceptos de almacenes de datos, cubos OLAP, etc., eran
completamente novedosos para m. Adems no conoca nada acerca de la tecnologa
proporcionadaporMicrosoftparallevaracaboproyectosdeInteligenciadeNegocios,lo
quesuponaundesafoaadidoparalaelaboracindelproyecto.
En cuanto a la continuacin de este trabajo, en este momento se est extendiendo este
trabajo en el mbito del desarrollo de reports estticos incluidos en la norma UNE
158101, utilizando la tecnologa Microsoft Reporting Services. Adems se estn
incorporandomecanismosdeseguridadenlosindicadorespararestringirelaccesoalos
reportsdedichosindicadoreseinclusorestringirlavisualizacindepartedelosdatosde
dichosindicadores.Deestaformaseconsiguequelosusuariossloaccedanalosreports
cuyopermisoleshasidoconcedidoyquenicamentevisualicenlosdatosquesondesu
inters. Junto a esto, se est investigando la manera de dar un servicio centralizado de
soluciones BI a los clientes desde la empresa del ERP pero existe mucha problemtica
relacionadaconlatransmisinseguradedatosentrelaempresaclienteyladelERP.
130
Referencias
[1]Bernabeu,R.Dario.DataWarehousingymetodologaHefesto.Julio2008.Obtenidode
http://www.dataprix.com/es/datawarehousinghefesto
[2] Business Intelligence fcil. Cuadrante mgico de Gartner para las plataformas BI.
Febrero 2010. Obtenido de http://www.businessintelligence.info/mercado/cuadrante
magico2010.html
[3] Hernndez Orallo, Jos. Parte II: Almacenes de datos. 2003. Obtenido de
http://users.dsic.upv.es/~jorallo/cursoDWDM/dwdmII.pdf
[4]Hotek,Mike.PasoaPasoMicrosoftSQLServer2008.AnayaMultimedia.2009.
[5]
Ibermatica.
Business
Intelligence.
Obtenido
http://www.ibermatica.com/publicaciones/BusinessIntelligence.pdf
de
131
de
Intelligence?.
132
Anexos
En estos anexos se adjuntan algunos ejemplos de documentos utilizados durante el
procesodedesarrollodeindicadoresdenegocioyseincluyenpequeostutorialesdelas
herramientasutilizadasendichoproceso.
Partedelmaterialpresentadoenestecaptulohasidoextradode[4].
133
134
AnexoA:PlantillaIndicador
PlantillaIndicadores
INFORMACINDELINDICADOR
Hecho:
Visitasfamiliares
Descripcin:
Esteindicadormuestraelnmerodevisitasporresidenteyporda.
Finalidad:
Sepretendeconocerlaspersonasconmenosvisitasparapoderdarlesunamayor
atencinpersonal.
Medidas:
Sumatorioymediadelnmerodevisitasfamiliares.
Granularidad
Diaria
KPIs:
Valorpordefecto:
INSTRUCCIONES
1.
Hecho.Nombredelavariablequesedeseaanalizar.Ejemplos:Visitasfamiliares.
2.
Descripcin. Escuetamente describe el hecho. Ejemplo: Este indicador muestra el
nmerodevisitasporresidenteyporda.
3.
Finalidad. Uso que se pretende dar al indicador. Ejemplo: Se pretende conocer las
personasconmenosvisitasparapoderdarlesunamayoratencinpersonal.
4.
Medidas.Operacionesarealizarconelhecho.Ejemplo:sumatoriodelasvisitas.Otros
posiblesvalorespodranser:Media,mnimo,mximoymoda.
5.
Granularidad Temporal. Unidad mnima de detalle de la cual se puede obtener
informacin. Normalmente se utilizara una granularidad diaria, aunque se pueden usar otros
valores, como por ejemplo: semanal, mensual, trimestral y anual. Para nuestro Ejemplo
utilizamosladiaria,loquesignificaqueobtendremoslasvisitasagrupadasporda.
6.
KPIs. Campos a resaltar segn su valor y la agrupacin de estos. Ejemplo:
Mostraremosenrojoaquelloscamposquemuestrenmenosde4visitaspormesyporresidente.
7.
Dimensin. Campos por los cuales queremos categorizar el hecho. Ejemplo:
residentes,tipologa,carcterplazaytiempo.(Noimportaelordendelasdimensiones.Agregue
cuantasdesee)
1DIMENSIN
Descripcin:Residente
Semostrarnlosdatosdelresidentevisitado.
Atributos:
Nombreyapellidos,sexoyfechadeingreso.
2DIMENSIN
Descripcin:Centro
Semostrarelcentroalquepertenececadaresidente.
Atributos:
Nombredelcentro,ciudad,provincia,comunidadautnomaypas.
135
3DIMENSIN
Descripcin:Tipologa
Semostrarlatipologadelosresidentes.
Atributos:
Tipologia
4DIMENSIN
Descripcin:CarcterPlaza
Semostrarelcarcterplazadelosresidentes.
Atributos:
CarcterPlaza
5DIMENSIN
Descripcin:Tiempo
Semostrartodalainformacinrelativaalafechadelavisita.
Atributos:
Fecha,dasemana,semana,mes,trimestre,aoynombrecompletodelafecha.
136
AnexoB:DocumentodeAyudadelIndicador
IndicadordeVisitasFamiliares
1.Descripcin.......................................................................................................................................1
2.Dimensin.........................................................................................................................................1
3.Hecho..................................................................................................................................................4
4.Cdigounificado..............................................................................................................................5
5.Mantenimientotablasmaestras...................................................................................................6
1.Descripcin
Esteindicadormuestralasvisitasrecibidasporresidenteylasagrupapor:
Residente,tipologa,carcterplaza,centroytiempo.
LaGranularidaddeesteindicadoresdiaria.Estosignificaquesesumaraelnmerode
visitas que ha recibido un residente por da, lo cual conlleva que no se puede obtener
informacinsobreelnmerodevisitasporunaunidaddetiempomenoralda.
2.Dimensin
Paraelcorrectofuncionamientodeesteindicadordebemoscumplimentarcorrectamente
lossiguientescampos:
Tipologa
CarcterPlaza
137
LossiguientescamposarellenarseencuentranenlapestaadeDatosResidencia.
ResidenciayPas
Poblacinyprovincia.
138
3.Hecho
Tenemosqueintroducirtodalainformacinrelativaacadaunadelasvisitas:residente
visitado,familiarquehacelavisita,elparentescodedichofamiliar,nmerodepersonas
querealizanlavisitayfechadeentrada.
4.Cdigounificado
Adems de los campos que muestran las capturas, debemos de rellenar el cdigo
unificadoparacadaunadelastablasmaestrasdeResiPlusyqueestecdigocoincidacon
elcdigounificadodelastablasmaestrasdelAlmacndedatos.
ParaaccederaestastablasmaestrasdeberemosiraConfiguracinDatosGenerales.
Una vez abierta la ventana Datos Generales, para cumplimentar el cdigo unificado de
CarcterPlaza,deberemosiraResidentes/CarcterPlazas.
139
5.Mantenimientotablasmaestras
Paraqueesosvaloresunificadospuedanaparecerenelindicadortenemosquecompletar
lastablasmaestrasdelalmacndedatos,tantodetipologascomodecarcterplaza.Esto
serealizadesdeelResiPlusBI,comodetallamosacontinuacin:
AccedemosalmenprincipaldelBIyseleccionamosmantenimientotablasmaestras.
140
MaestradeTipologas
141
142
AnexoC:DocumentodeAnlisis
Departamento:
Desarrollo
Programa/Proyecto:
IndicadoresPFC
Tipo:
DocumentoAnlisis
Analista:
Marta
ID5263
Fechacreacin:
01/05/2010
1.Descripcin..........................................................................................Error!Marcadornodefinido.
2.Motivacin..........................................................................................................................................1
3.Definicin...........................................................................................................................................1
4.Pruebasdeaceptacin...............................................................................................................2
1.DESCRIPCIN
CreacindelIndicadordeVisitasFamiliaresparaelproyectodeIndicadoresPFC.
2.MOTIVACIN
Elclientepretendeconocerqutipoderesidentesrecibemenosvisitasparadarlems
atencinpersonal.
3.DEFINICIN
3.1.Hechos
VisitasFamiliares
Descripcin:Sumatoriodelasvisitasrecibidasporlosresidentesagrupadas
portodaslasdimensionesqueseindicanenlaseccin3.3.
GranularidadTemporal:Diaria.
FrecuenciadeRecoleccindedatos:1da
Frecuenciaderefrescodelcubo:1da
3.2.KPI
Descripcin: Nos indicar grficamente si el nmero de visitas familiares es
mayorqueunvalordado.
Valorpordefecto:4
3.3.Medidas
/*Enesteapartadoesdondeindicamoselrestodemedidasqueaparecenenlatablade
hechos sin contar lo que medimos en el hecho propiamente (N visitas que reciben los
residentescadada)*/
143
3.4.Dimensiones
Dimensiones
Histrico
Centro
No(*)
Tiempo
No(*)
Residente
No(*)
Tipologa
CarcterPlaza
(*) Siempre se mostrarn los valores actuales, es decir, los valores que posean esas
dimensionesenlabasededatosdeResiPlus.
4.PRUEBASDEACEPTACIN
5263.1 Comprobar que si un residente recibe ms de una visita en un da, todas las
visitasaparecencontabilizadasenunnicoregistro.
5263.2Comprobarquesihayalgunadimensinsinvalor,siemprequenoseacentro,
residentenitiempo,noseproduceningnerror.
5263.3Comprobarquesialgunadimensinnoposeecdigounificadoonoapareceen
latablamaestradelalmacn,aparecercomonodefinida.
144
AnexoD:DocumentodeDiseo
Departamento:
Desarrollo
Programa/Proyecto:
IndicadoresPFC
Tipo:
DocumentoDiseo
Analista:
Marta
ID5263
Fechacreacin:
01/05/2010
1. Descripcin...............................................................................................................................................................1
2. Diseo...........................................................................................................................................................................1
3. Notasdediseo.............................................................................................................................................2
1.DESCRIPCIN
CreacindelIndicadordeVisitasFamiliaresparaelproyectodeIndicadoresPFC.
2.DISEO
EsteindicadorsecargapormediodelETL.
Dimensionesdelindicador:
Tiempo(UtilizaremoselcampoFechaHoraEntradadelatablaVisitasFamiliares)
Centro(UtilizaremoslatablaDatosResidencia)
Residente (Utilizaremos el campo IDResidente de latabla VisitasFamiliares para
luegoobtenereliddelalmacncorrespondienteparaeseresidente)
Carcter Plaza (Utilizaremos el campo IDResidente de la tabla VisitasFamiliares
para posteriormente atacar a la tabla ResiHisCaracterPlaza con ese id y la fecha
queindicaelcampoFechaHoraEntradayobtenerelcarcterplazadelresidenteen
esafecha)
Tipologa (Utilizaremos el campo IDResidente de la tabla VisitasFamiliares para
posteriormenteatacaralatabla ResiHisTipologiasPlazaconeseidylafechaque
indica el campo FechaHoraEntrada y obtener la tipologa del residente en esa
fecha)
Hechosdelindicador:
VisitasFamiliares:Sumatoriodelasvisitasfamiliaresagrupadoporresidentey
da. Se aadir el campo NumVisitas a la tabla de hechos. Dicho campo se
cumplimentarcon1paracadaregistrodelatablaresidentes,siemprequeno
se repita el IDResidente ni la fecha de la visita. En caso de que estos campos
aparezcan repetidos, se incrementar el campo NumVisitas en 1 por cada
registrorepetido.Estedatoseobtendrenlatablavisitasfamiliares.
145
CUBO
CrearemosuncuboenmodoMolapqueseprocesarcada24horas,inmediatamente
despusdelacargadelosdatosennuestroalmacndedatos.Poseerlasdimensiones
enunciadasenelapartadoanterior.
3.NOTASDEDISEO
146
AnexoE:DesarrollodepaquetesETLenMicrosoftIntegrationServices
SQLServerIntegrationServices(SSIS)sehadiseadoparaproporcionarloscomponentes
deinfraestructuraquepermiteneltrasladodedatosdeunsistemaaotro,altiempoque
se manipulan los datos para que adopten el formato deseado a medida que se produce
dichotraslado.
Enestetutorial,conoceremosculessonloscomponentesdisponiblesdentrodeSSIS,as
como a construir paquetes SSIS flexibles para su entorno. Dado que los documentos de
ejemplomostradosanteriormentehacanreferenciaalindicadordevisitasfamiliares,ese
eselindicadorquevamosautilizarcomoejemplodeestetutorial.
AcontinuacinseindicanlospasosnecesariosparapoderdesarrollarelpaqueteETLdel
indicadorencuestin,suponiendoqueelalmacndedatoshasidocreadoycargado.
Paso1:CrearunproyectodeIntegrationServices
En primer lugar, crearemos un nuevo proyecto de SSIS y nos familiarizaremos con los
camponentesbsicosdelentorno.
ParacrearunproyectodeSSIS,seguimosestospasos:
1. Hacemos clic en Inicio, seleccionamos Todos los programas, seleccionamos
Microsoft SQL Server y, despus, hacemos clic en SQL Server Business
Intelligence Development Studio. De esta forma se abrir el entorno de
desarrollodeMicrosoftVisualStudio.
2. Cerramos la ficha Pgina de Inicio. En el men Archivo de Visual Studio,
seleccionamosNuevoyhacemosclicenProyecto.
3.
EnelcuadrodedilogoNuevoproyecto,seleccionamosProyectosdeBusiness
Intelligence en el panel Tipos de proyecto, y seleccionamos Proyecto de
IntegrationServicesenelpanelPlantillas.
4.
LaFiguraE.1.muestralapantallaresultantetraslacreacindelproyecto.
Enlaparteinferiordelapantalla,vertrespestaas:Listadeerrores,Listadetareasy
Resultados. La Lista de errores muestra todos los errores y advertencias relativas a su
paqueteduranteeldiseoodepuracin.LaListadetareasesunazonadondepodrhacer
un seguimiento de una lista detareas que necesita lanzar mientras trabaja dentro de la
solucin. Las ventanas de Resultados mostrarn la informacin del estado y progreso
juntoconcualquiermensajequeseproduzcadurantelaejecucindeunpaquete.
En la parte derecha de la pantalla ver las ventanas Explorador de soluciones y
Propiedades.ElExploradordesolucionesseutilizaparaagrupartodoslosobjetosenun
proyectoylepermiteagregarFuentesdedatos,VistasdefuentesdedatosyPaquetes
al proyecto. En la ventana Propiedades puede ver y editar las propiedades del objeto
seleccionado.
147
FiguraE.1.Pantallaresultantetraslacreacindeunproyecto
Paso2:RenombrarelpaqueteSSIS
Para cambiar el nombre que tiene por defecto el paquete cuando creamos un nuevo
proyectodebemos:
1. SeleccionarelpaqueterecincreadoenelExploradordesoluciones.
2. Cambiarelnombre(CampoNombre)enlaventanadePropiedades(FiguraE.2.)y
hacer clic en S cuando aparezca un cuadro de dilogo preguntando si desea
renombrarelobjetodelpaquete.
FiguraE.2.VentanaPropiedadesdelpaqueteSSIS
Las dos zonas donde pasaremos la mayor parte de nuestro tiempo son el Cuadro de
herramientas a la izquierda y la superficie de diseo en el panel central. El Cuadro de
148
herramientascontienetodaslastareasytransformacionesquepuedenutilizarsealahora
de construir un paquete SSIS. La superficie de diseo se utiliza para construir el flujo y
movimientodedatosdelpaquete.
La superficie de diseo se divide en cuatro pestaas: Flujo de control, Flujo de datos,
ControladoresdeeventosyExploradoresdepaquetes.LapestaadelExploradorde
paquetes permite explorar un paquete de forma jerrquica con el fin de ver todos los
componentes que se han configurado. La pestaa Flujo de control es el lugar donde se
disea el proceso de negocios que ejecutar el paquete. En la pestaa Flujo de datos
disearemos la forma en que los datos se movern y se manipularn. La pestaa
Controladores de eventos nos permite especificar acciones en respuesta a un evento de
paquetes.
SSIS incluye 40 tareas diferentes que pueden agregarse a un paquete. Las tareas se
dividen en dos categoras principales: tareas de Flujo de control y tareas del Plan de
mantenimiento.
Ennuestrocaso,solamenteutilizamostareasdeFlujodecontrol,siendolasmsutilizadas
lassiguientes:
Contenedordesecuencias:Seutilizaparaagrupartareasenunaunidadlgicade
trabajo.
Tarea Flujo de datos: Es una tarea esencial en casi todos los paquetes SSIS que
llevaasociadaunpaneldeFlujodedatosdondesepodrconfigurardequmanera
se mueven los datos y cualquier manipulacin exigida a medida que se van
procesandolosdatos.
TareaEjecutarSQL:PermiteejecutarscriptsdeTSQL.
Ordenar:Ordenaelconjuntodedatos.
Divisincondicional:Seutilizaparadividirunorigendedatosendiversassalidas
basndoseenunacondicin.
Conversindedatos:Conviertetiposdedatos.
Columnaderivada:Seutilizasiemprequenecesitamosmanipulardatos,talescomo
la sustitucin de cadenas vacas con un valor NULL, la eliminacin de caracteres
invlidosoelclculodenuevosvalores.
Mezclar:Combinadoscorrientesdedatosordenadosenunasalidanica.
Unindetodo:Igualquelaanteriorperopuedecombinarmsdedosentradasde
datosdesordenadas.
Multidifusin:Permitedistribuirunaentradaenmltiplessalidas.
149
Componentedescript:PermiteincrustarscriptVisualBasic.NEToC#enunflujo
dedatos.
Paso3:Creacinyconfiguracindelasconexiones
Unavezcomentadaslastareasytransformacionesmsutilizadas,elsiguientepasoenla
creacindelpaqueteETLeslacreacinyconfiguracindelasconexiones.Primeramente
aadimos los orgenes de datos y luego agregamos las conexiones al panel de
Administradoresdeconexinutilizandolosorgenesdedatos.
Parallevaracaboestatareatenemosque:
1. SeleccionarlacarpetaOrgenesdedatosenelExploradordesoluciones,hacer
clic en el botn derecho y seleccionar Nuevo origen de datos. Se abrir el
AsistenteparaorgenesdedatosyhacemosclicenSiguiente.
2. En la pgina Seleccione cmo definir la conexin, hacemos clic en Nueva.
AparecerelcuadrodedilogoAdministradordeconexin(FiguraE.3.).Eneste
cuadrodedilogosedefinenlaspropiedadesdeconexinparaelorigendedatos.
Unadministradordeconexinesunarepresentacinlgicadelaconexinquese
utilizarentiempodeejecucin.
3. En la lista Proveedor, comprobamos que la opcin OLE DB nativo\SQL Native
Clientestseleccionada.
4. En el cuadro de texto Nombre de servidor, escribimos el nombre del servidor
dondesealojalabasededatosconlaquequeremosconectar.Enestecasolabase
dedatosseencuentra enelequipolocal;noobstante,lasbasesdedatosdeorigen
generalmenteseencuentranalojadasenunoomsequiposremotos.
5. Comprobamos que la opcin Utilizar autenticacin de Windows est
seleccionada. En la lista Seleccione o escriba un nombre de base de datos,
seleccionamoselnombredelabasededatos.
150
FiguraE.3.CuadrodedilogoAdministradordeconexin
6. HacemosclicenAceptary,acontinuacinenSiguiente.
Hastaelmomentohemoscreadounorgendedatosquesecorrespondeconlabasede
datos operacional de la que se extraen los datos para el indicador. Dado que nuestro
indicador requiere una conexin a la base de datos operacional y otra conexin al
almacn de datos, ya que es ah donde se guarda la informacin a explotar por los
indicadores, debemos repetir los pasos 16 para crear un orgen de datos asociado al
almacndedatos.
7. Hacemos clic en el panel Administradores de conexin, seleccionamos Nueva
conexin desde origende datos yseleccionamoslosorgenesdedatoscreados
anteriormente.
A continuacin, hay que especificar el proceso de negocio que queremos que ejecute el
paquetepormediodetareasdeflujodedatosagregadasalflujodecontrol.Sinembargo,
en muchas ocasiones resulta necesario definir variables para poder utilizarlas en
diferentestareasdeflujodedatosyporesoelsiguientepasoesladefinicindevariables.
Paso4:Definicindevariables
ParaagregarunavariableaunpaquetedeSSISrealizaremoslassiguientesacciones:
1. IralmenVista,seleccionarOtrasVentanasyhacerclicenVariables.
2. EnlaventanaVariables(FiguraE.4.),hagacliceneliconoAgregarvariableyse
agregar la nueva variable a la lista. Dependiendo de qu parte del paquete
tengamosseleccionadacuandoagreguemoslavariable,elmbitodelamismaser
151
diferente,esdecir,sitenemosseleccionadaunatareadeflujodedatos,elmbito
de la variable ser esa tarea mientras que si no tenemos seleccionada ninguna
tarea,elmbitosertodoelpaquete.
3. Ponemosnombrealavariableeindicamoseltipodedatosyelvalorpordefecto
delamisma.
FiguraE.4.VentanaVariables
Paso5:Construccindelflujodecontrol
El flujo de control puede estar compuesto de varias tareas de flujo de control o de
mantenimiento. Sin embargo, para nuestro indicador, slo vamos a necesitar dos tareas
deflujodecontrol(FiguraE.5.):unaqueseencarguederellenarlavariabledefinidaenel
pasoanterioryotraqueextraigalosdatosdelabasededatosoperacionalylosalmacene
enlatabladehechosdelalmacndedatos.
Paraconstruirelflujodecontrol,tenemosque:
1. Arrastrar dos Tareas de flujo de datos desde el Cuadro de herramientas a la
superficiedediseodeflujodecontrol.
2. SeleccionarlaprimeraTareadeflujodedatosyarrastrarlaflechaverdehastala
segundatareaparacrearunarestriccindeprecedencia.
3. Cambiar el nombre de las tareas para ponerle nombres ms significativos. Para
ello, haga clic con el botn derecho en la tarea correspondiente y seleccione
CambiarNombreobienseleccionelatareaymodifiqueelnombreenelpanelde
Propiedades.
4. Dadoqueannoestamoslistosparalaejecucindelastareas,hacemosclicconel
botnderechoenlastareasyseleccionamoslaopcinDeshabilitar.
152
FiguraE.5.FlujodecontroldelindicadorVisitasFamiliares
Dadoqueyatenemoselflujodecontrolconstruido,ahorahayqueconfigurarelflujode
datosparacadaunadelastareasagregadasalflujodecontrol.
Paso6:Construccindelflujodedatos
Enestepasosevaaprocederalaconstruccindelflujodedatos.Comohayqueconstruir
elflujodedatosdedostareas,primeroseconstruirelflujodedatoscorrespondienteala
primeratareayluegoeldelasegundatarea.
El objetivo de la primera tarea es dotar de un valor a la variable IDCentro y para ello
necesita obtener el valor almacenado en el almacn para el centro del que estamos
obteniendolosdatos.Concretamente,lospasosaseguirparaconstruiresteflujodedatos
son:
1. SeleccionarlapestaadeFlujodedatosyarrastrardosOrgenesOLEDB,dos
Conversiones de datos, dos Ordenar, una Combinacin de mezcla y un
Componentedescriptalasuperficiedediseodeflujodedatos.
2. Hacer doble clic en uno de los orgenes y elegir la conexin Residencia como
administrador de conexiones. Repetir la accin en el otro orgen y elegir la
conexinAlmacn.
3. Seleccionar en el desplegable de Modo de acceso a datos, la opcin Comando
SQL. Otra posibilidad sera pinchar la opcin Tabla o vista y seleccionar las
columnasperoserecomiendalaprimeraalternativa.
4. IntroducirlaconsultaSQLobienpincharelbotndeGenerarconsulta.Alpulsar
este botn, hacemos clic en el botn derecho, seleccionamos Aadir tabla y
marcamos las columnas que queremos que salgan en la consulta. Repetimos el
procesohastaquetengamostodaslastablasycolumnasaadidasnecesariaspara
laconsultaypulsamosAceptar.
5. Haga clic en el botn Vista previa para asegurarse de que ha elegido el
administradordeconexionescorrectoyhagaclicenCerrar.
6. ArrastrelaflechaverdedeOrgenOLEDBhastalatransformacindeConversin
dedatosenamboscasos.
153
FiguraE.6.TransformacinConversindedatos
8. ArrastrelaflechaverdedesdelatransformacindeConversindedatoshastala
deOrdenar.
9. Hagadobleclicenlatransformacinde Ordenar,seleccionelacolumnaporlaque
deseaordenarlosdatosyhagaclicenAceptar.
10. Arrastre la flecha verde desde la transformacin de Ordenar hasta la de
Combinacindemezcla.
11. Haga doble clic en la transformacin de Combinacin de mezcla (Figura E.7.),
seleccioneeltipodeunin(Innerjoin,LeftouterjoinoFullouterjoin),seleccione
las columnas que desea de cada conjunto de datos y haga clic en Aceptar. Se
observaqueambosconjuntosdedatosaparecenenlazadosporlacolumnaporla
queloshemosordenadoenelpasoprevio.
154
FiguraE.7.TransformacinCombinacindemezcla
12. ArrastrelaflechaverdedesdelatransformacindeCombinacindemezclahasta
latransformacindeComponentedescript.
13. Haga doble clic en la transformacin de Componente de script. Primeramente,
indique el lenguaje del script y las variables que se van a leer o escribir. Luego
indique las columnas de entrada, las entradas y salidas del script utilizando los
botonesAadirSalidayAadirColumna.Esmuyimportantequeparalassalidas
pongaelcampoSynchronousInputIDaninguno(FiguraE.8.).Finalmente,pulseel
botnEditarscriptparaponerelcdigodelmismo,gurdeloypulseAceptar.
155
FiguraE.8.Configuracindeentradasysalidasdelcomponentedescript
14. Dunnombrereconociblealosobjetosdelflujodedatos(FiguraE.9.)talycomo
seindicanteriormenteyguardeelpaquete.
FiguraE.9.FlujodedatosasociadoalatareaConsigueCentro
156
Finalizadoelflujodedatosdelaprimeratarea,tenemosqueconstruirelflujodedatosde
lasegundatarea.Aligualqueparalaprimeratarea,tenemosqueaadirunOrgenOLE
DB por cada tabla de la base de datos operacional o del almacn de datos que
consultemos,transformacionesdeOrdenar,transformacionesdeConversindedatos,
transformaciones de Combinacin de mezcla y arrastrar las flechas verdes de una
transformacinaotraparaenlazarlas.
Puesto que ya hemos comentado en la tarea anterior cmo funcionan la mayora de las
transformaciones, a continuacin slo vamos a comentar de la segunda tarea aqullas
transformacionesnovistashastaelmomento.
Agregado:
Hacemosdobleclicenlatransformacin(FiguraE.10.),seleccionamoslascolumnassobre
las que vamos a hacer alguna operacin e indicamos la operacin a realizar sobre cada
una de ellas (Group by, Count, Count distinct, Sum, Average, Maximum, Minimum).
PulsamosAceptarparaguardarloscambios.
FiguraE.10.TransformacinAgregado
Columnaderivada:
FiguraE.11.TransformacinColumnaDerivada
DestinoOLEDB:
158
FiguraE.12.ConfiguracinDestinoOLEDB
159
FiguraE.13.PestaaAsignacionesdelDestinoOLEDB
Unavezfinalizadoslosdosflujosdedatos,elsiguientepasoesejecutarelpaqueteSSISy
comprobarquetodofuncionacorrectamente.
Paso7:Ejecucindelpaquete
Para comprobar que el paquete recin construido funciona correctamente debemos
ejecutarlo. Existe la posibilidad de ejecutar cada tarea del flujo de control por separado
utilizando la opcin Ejecutar tarea cuando haces clic con el botn secundario sobre la
tareaoejecutarelpaqueteentero.Lospasosaseguirsonlossiguientes:
1. Habilitarlasdostareasdelflujodecontrolhaciendoclicconelbotnderechoenla
tareayseleccionandoHabilitar.
2. Seleccionamos el paquete en el Explorador de soluciones, hacemos clic con el
botnderechoyseleccionamosEjecutarpaquete.
Si ambas tareas aparecen de color verde significa que el paquete se ha ejecutado
correctamenteysehanalmacenadolosdatosenelalmacn.Encasodequealgunatarea
tengacolorrojo,significaqueelflujodedatosdeesatareacontienealgnerroryporlo
tanto hay que revisarlo. Las tareas aparecern de color amarillo mientras se estn
ejecutandoynohayanfinalizado.
160
FiguraE.13.CuadrodedilogoEditorderutasdeflujodedatos
161
162
AnexoF:DesarrollodecubosOLAPenMicrosoftAnalysisServices
En este tutorial, aprenderemos a definir orgenes de datos, vistas de orgenes de datos,
dimensiones y cubos en un proyecto de Analysis Services, facilitando al usuario la
explotacindeunDataWarehouse.
Para obtener ms informacin sobre como modificar medidas, dimensiones, jerarquas,
atributos,gruposdemedidadelproyecto,ascomodefinirclculos,indicadoresdeclave
de rendimiento (KPI), acciones, perspectivas, traducciones y funciones de seguridad
debemosconsultareltutorialdeMicrosoft.
Dado que los documentos de ejemplo mostrados anteriormente hacan referencia al
indicadordevisitasfamiliares,eseeselindicadorquevamosautilizarcomoejemplode
estetutorial.
A continuacin seindican los pasos necesarios para poder desarrollarelcuboOLAPdel
indicadorencuestin,suponiendoqueelalmacndedatoshasidocreadoycargadoyel
paqueteETLhasidoejecutado.
Paso1:CrearunproyectodeAnalysisServices
En primer lugar, crearemos un nuevo proyecto de SSAS y nos familiarizaremos con los
camponentesbsicosdelentorno.
ParacrearunnuevoproyectodeAnalysisServices:
1. Hacemos clic en Inicio, seleccionamos Todos los programas, seleccionamos
Microsoft SQL Server y, despus, hacemos clic en SQL Server Business
Intelligence Development Studio. De esta forma se abrir el entorno de
desarrollodeMicrosoftVisualStudio.
2. Cerramos la ficha Pgina de Inicio. En el men Archivo de Visual Studio,
seleccionamosNuevoyhacemosclicenProyecto.
3. EnelcuadrodedilogoNuevoproyecto,seleccionamosProyectosdeBusiness
Intelligence en el panel Tipos de proyecto, y seleccionamos Proyecto de
AnalysisServicesenelpanelPlantillas.
4. Cambiamos el nombre del proyecto, el cal cambiar tambin el nombre de la
solucin,yhacemosclicenAceptar.
En la parte derecha de la pantalla ver las ventanas Explorador de soluciones y
Propiedades.ElExploradordesolucionesseutilizaparaagrupartodoslosobjetosenun
proyecto y le permite agregar Orgenes de datos, Vistas de origen de datos, Cubos,
Dimensiones,Estructurasdemineradedatos,Funciones,EnsambladosyVariosal
proyecto. En la ventana Propiedades puede ver y editar las propiedades del objeto
seleccionado.
Paso2:Definirunorigendedatos
Trascrearelproyecto,generalmenteseempiezaatrabajarconelmismodefiniendounoo
ms orgenes de datos. Al definir un origen de datos, se especifica la informacin de la
cadenadeconexinqueseutilizarparaestablecerlaconexinconelDataWarehouse.
Enelsegundopasodefiniremosunorigendedatosrealizandolossiguientespasos:
163
Paso3:Definirunavistadelorigendedatos
Una vez definido el orgen de datos que utilizaremos en el proyecto, el paso siguiente
consisteendefinirunavistadelorigendedatosparaelproyecto.
Unavistadelorigendedatosesunasolavistaunificadademetadatosdetablasyvistas
especificadas que el origen de datos define en el proyecto. Almacenar metadatos en la
vista permite trabajar con ellos durante el proceso de desarrollo sin ninguna conexin
abiertaconningnorigendedatossubyacente.
Paradefinirunavistadelorigendedatosnuevarealizaremoslassiguientesacciones:
1. EnelExploradordesoluciones,hacemosclicconelbotnsecundarioenVistas
deorigendedatosy,acontinuacin,hacemosclicenNuevavistadeorigende
datos. Se abrir el Asistente para vistas de origen de datos y hacemos clic en
Siguiente.
2. EnlapantallaSeleccionarunorigendedatos,comprobamosqueenOrgenesde
datosrelacionalesapareceseleccionadonuestroorigendedatos,yhacemosclic
enSiguiente.
3. EnlapantallaSeleccionartablasyvistas(FiguraF.1.),seleccionaremoslastablas
dehechosydimensionesdenuestroindicadordelalistadeobjetosdisponiblesen
elorigendedatosseleccionado.Podemosfiltrarestalistaparafacilitarlaseleccin.
164
ParaagregarlastablasalalistadeObjetosIncluidostenemosqueseleccionarlas
tablasquequeramosincluir,mantenerpulsadalateclaCTRLyhacerclicen>.
FiguraF.1.PantallaSeleccionartablasyvistas
4. HacemosclicenSiguientey,acontinuacinhacemosenFinalizarparadefinirla
vistadeorigendedatos.
El contenido de la vista se muestra en el Diseador de vistas del origen de datos de
Business Intelligence Development Studio. Este diseador contiene los siguientes
elementos:
ElpanelTablas,enelquelastablasyloselementosdeesquemasemuestranen
unavistaderbol.
UnabarradeherramientasespecficadelDiseadordevistasdeorigendedatos.
EnlaFiguraF.2.semuestralavistadelorigendedatosenelDiseadordevistasdeorigen
dedatos.
165
FiguraF.2.Diseadordevistasdeorigendedatos
Paso4:Modificarlosnombresdetablapredeterminados
Enocasiones,losnombresquetienenlastablasdelavistadelorigendedatosnoresultan
losuficientementeclarosyresultaconvenientecambiarlos.Paracambiarelnombreque
tienecadatabla,debemoshacerlosiguiente:
1. EnelpanelDiagramadelDiseadordevistasdeorigendedatos,hacemosclic
conelbotnsecundarioenunadelastablasyluegoenPropiedades.Aparecerla
ventana oculta Propiedades, en la que se muestran las propiedades del objeto
seleccionado.
2. CambiamoslapropiedadFriendlyNameporelnombredeseado.Realizamosesta
mismaaccinparacadaunadelastablasquesedeseecambiarelnombre.
Paso5:Definiruncubo
Definida la vista del origen de datos, estaremos preparados para definir el cubo de
nuestro indicador. Para ello, utilizaremos el Asistente para cubos, el cual nos ayuda a
definir las medidas y las dimensiones de un cubo. En el asistente, podemos definir un
cubobasadoenunorigendedatosopodemosdefiniruncubosinningnorigendedatos
existente. Si definimos un cubo sin origen de datos existente, utilizaremos el asistente
paragenerarelesquemaparaelorigendedatossubyacente.
Paradefiniruncuboysuspropiedadesseguiremoslossiguientespasos:
1. EnelExploradordesoluciones,hacemosclicconelbotnsecundarioenCubos
y,acontinuacinhacemosclicenNuevocubo.AparecerlapginaAsistentepara
cubosyhacemosclicenSiguiente.
2. En la pgina Seleccionar mtodo de generacin, seleccionamos Usar tablas
existentesyhacemosclicenSiguiente.
3. Seleccionamos la tabla de hechos (Fact_VisitasFamiliares) para Tablas de grupo
demedidayhacemosclicenSiguiente.
166
4. AceptarlaopcinpordefectodelaspginasSeleccionarmedidasySeleccionar
nuevas dimensiones y hacer clic en Siguiente. En el caso de las medidas, el
asistenteseleccionacomomedidacadacolumnadetipodedatosnumricosdelas
tablasidentificadascomotablasdehechos.
5. IndiqueelnombredelcuborecincreadoyhagaclicenFinalizar.
Al finalizar el proceso de creacin del cubo, se observa que ste aparece incluido en la
carpetas Cubos del Explorador de soluciones y las dimensiones aparecen en la carpeta
Dimensiones. Adicionalmente, en el centro del entorno de desarrollo, el Diseador de
cubosmuestraelcubo.Esimportantemencionarquepordefectotodosloscuboscreados
con el asistente son de tipo Molap pero puede modificarse accediendo a la ventana de
propiedadesdelcubo.
En la Figura F.3. se muestran las tablas de dimensiones y de hechos en el diseador.
Observamos que la cabecera de la tabla de hechos es amarilla y las de las tablas de
dimensionessonazules.
FiguraF.3.TablasdehechosydimensionesdelindicadorVisitasFamiliares
TrasutilizarelAsistenteparacubosparadefiniruncubo,podemosrevisarlosresultados
enelDiseadordecubos.Acontinuacin,sedescribencadaunadelasfichasqueforman
partedelDiseadordecubos,lascualespermitengestionarlaestructuradeuncubo.
ElDiseadordecubosmuestralasdistintasvistasdeuncuboatravsdelassiguientes
fichas:
Estructuradecubo:permitemodificarlaarquitecturadeuncubo.
Usodedimensiones:utilizadaparadefinirlasrelacionesentrelasdimensionesy
losgruposdemedida,ascomolagranularidaddecadadimensindentrodecada
grupo de medida. Si utilizamos varias tablas de hechos, es posible que debamos
identificar si las medidas se aplican a una o ms dimensiones. Cada celda
representa una posible relacin entre el grupo de medida y la dimensin de la
interseccin.
167
Clculos: se utiliza para examinar los clculos definidos para el cubo, definir
nuevosclculosparatodoelcuboounsubcubo,reordenarlosclculosexistentesy
depurar los clculos paso a paso mediante puntos de interrupcin. Los clculos
permiten definir nuevos miembros y medidas en funcin de valores existentes,
comounclculodebeneficios,ydefinirconjuntosconnombre.
Examinador:permiteverlosdatosdelcubo.
Acontinuacinmodificaremoslasdimensionesymedidascreadasporelasistenteparala
creacin de cubos con el fin de proporcionar al usuario una interfaz de exploracin de
msfcilmanejo.Agregaremosademsunclculoalcuboquenosproporcionarlamedia
devisitasfamiliaresrealizadasalosresidentes.
Paso6:Modificarlasdimensionesycreacindejerarquas
Paradiseardimensiones,sigaestospasos:
1. EnelExploradordesoluciones,hagadobleclicencualquieradelasdimensiones
yseabrirlaventanadediseodeladimensin.
2. Arrastredesdelavistadelorigendedatosalapartedelosatributostodosaquellos
atributosquedeseaquesemuestrenposteriormente.
3. Enlaventanadeatributos,seleccioneelnombredeladimensin,hagaclicconel
botn secundario y seleccione Propiedades. Asegrese de que la propiedad
UnknownMember est Visible y ponga el valor No Definido en la propiedad
UnknownMemberName.Conestaltimaaccinconseguimosque,sihayvalores
nulosenesadimensin,todossemuestrencomoNoDefinido.
4. Modificarlaspropiedadesdelosatributosdeladimensinqueaparecenmarcados
comoclavedeladimensinhaciendoclicconelbotnderechosobreelatributoy
modificando a False el campo AttributeHierarchyVisible de la ventana
Propiedades para que no se vean dicho atributos, ya que se trata de
identificadores. Para el resto de atributos dejamos las propiedades tal y como
aparecenpordefecto.
168
Enelcasodealgunasdimensionesesdegranutilidaddefinirjerarquasquepermitana
losusuariosnavegarentrelosdatosdeunamaneramsintuitiva.Concretamente,enel
indicador de ejemplo, es conveniente definir una jerarqua para la dimensin Centro y
otraparaladimensinTiempo.Dadoqueambasjerarquassondiferentes,acontinuacin
sedetallanlospasosparacrearambas.
JerarquaDimensinCentro:
1. ArrastrelosatributosPais,Comunidad,Provincia,CiudadyNombreeneseorden
talycomoseapreciaenlaFiguraF.4.
FiguraF.4.JerarquaDimensinCentro
JerarquaDimensinTiempo:
1. Arrastre los atributos Ao, Trimestre, Mes, Semana, Dia Semana y Fecha en ese
orden.
2. Pasamos a la pestaa de Relaciones de atributo, pinchamos en la superficie de
diseoconelbotnderechoyseleccionamosNuevarelacindeatributo(Figura
F.5.). Primeramente creamos una relacin poniendo como atributo origen Mes y
MesIDcomoatributorelacionadoyluegorepetimoselprocesoconlosatributos
DiaSemanayNumDiaSemana.
FiguraF.5.Cuadrodedilogoparacrearunanuevarelacinentreatributos
169
Paso7:Adicinymodificacindemedidas
Esposiblequecuandocreamosuncubo,lasmedidasqueponepordefectoelasistenteno
seajustenaloquequeremosonecesitemoscrearnuevasmedidaspararealizarclculos
msespecficos.Parallevaracaboestasacciones,debemosseguirestospasos:
1. En el Explorador de soluciones, hacemos doble clic sobre el cubo al que
queremosmodificarlasmedidas.
2. Vamos al apartado de Medidas en la parte izquierda, seleccionamos la medida a
modificar,hacemosclicconelbotnsecundarioypinchamosenEditarMedida.Si
lo que queremos es eliminar la medida, hacemos lo mismo y seleccionamos
Eliminar.
Comonosotrosloquequeremosescalcularlamediadevisitasporresidente,necesitamos
unamedidaquecalculeeltotalderegistrosyunclculoquecalculelamedia.Portanto
lossiguientespasossoncrearlamedidayluegoelclculo.
3. En el apartado de medidas, hacemos clic en el botn derecho y seleccionamos
Nuevamedida.Puestoqueestamedidaslolaqueremosparahacerelclculode
lamedia,accedemosasuspropiedadesyponemoselcampoVisibleaFalse.
4. Seleccionamos la pestaa Clculos y luego en el botn Nuevo miembro
calculado.
5. Creamosunclculoquedividaelnmerodevisitasentreelnmeroderegistrosy
loagregamosalgrupodemedidasdelhecho(FiguraF.6.).
170
FiguraF.6.DefinicinmedidaMediaVisitas
Paso8:Procesaryexaminarelcubo
Paraverlosdatosdelcubo,elltimopasoarealizaresprocesarelcubodelasiguiente
forma:
1. Haga clic con el botn derecho en cubo creado dentro del Explorador de
soluciones y seleccione Procesar o bien haga lo mismo sobre el nombre del
proyecto.
2. HagaclicenSparagenerareimplementarelproyecto.
3. HagaclicenEjecutarparaprocesarelcubo(FiguraF.7.).
171
FiguraF.7.VentanadeprocesodelcuboVisitasFamiliares
4. PulseCerrarcuandoelprocesohayaconcluido.
5. HagaclicenlapestaaExaminarparaexplorarloscontenidosdelcubo.
Examinar un cubo implementado ayuda a comprender las modificaciones que deben
llevarse a cabo para mejorar la funcionalidad del mismo. Por ejemplo, es posible que
debamos definir criterios de ordenacin de los miembros de la dimensin, eliminar
atributos de dimensin innecesarios, definir jerarquas de usuario nuevas, modificar
jerarquas de usuario existentes o configurar propiedades de medidas. Una vez que
hemosimplementadoelcubo,losdatosdestepuedenverseenlafichaExaminadordel
Diseador de cubos y los datos de dimensin pueden verse en la ficha Examinador del
Diseadordedimensiones.
Lasaccionesarealizarparaexaminaruncuboimplementadoson:
6. En el Diseador de cubos hacemos clic en la ficha Examinador (Figura F.8.), y
luego hacemos clic en Volver a conectar en la barra de herramientas del
diseador.
172
Enelpanelizquierdodeldiseadorsemuestranlosmetadatosdelcubo.Aladerechadel
mismo, podemos ver dos paneles ms: el superior es el panel Filtro y el inferior es el
panelDatos.ObservamosquelasopcionesPerspectivaeIdiomaestndisponiblesenla
barradeherramientas.
FiguraF.8.FichaExaminadordelDiseadordecubos
7. Enelpanel MetadatosexpandimosMeasuresyarrastramoslasmedidasalrea
ColoqueCamposdetotalesocamposdetalladosaqudelpanelDatos.
8. EnelpanelMetadatosexpandimosaquellasdimensionesporlascualesqueremos
dimensionarelcubo.Arrastramoslasjerarquasdeatributosindistintamentealas
reas Coloque campos de fila aqu, Coloque campos de columna aqu y/o
ColoquecamposdefiltroaqudelpanelDatos.
EnlaFiguraF.9.semuestraunposibledimensionamiento.
FiguraF.9.EjemplodedimensionamientodelcuboVisitasFamiliares
174
AnexoG:CreacindetrabajosconelAgenteSQLServer
ElAgenteSQLServereselmotordeprogramacinqueincluyeSQLServerparaejecutar
tareas sobre una programacin definida. Se utiliza para crear trabajos programados,
planes de mantenimiento y configurar el envo de alertas basadas en condiciones
definidasporelusuario.
En este tutorial conoceremos cmo funcionan los trabajos y aprenderemos a crear
trabajos programados que lancen los paquetes ETL y procesen los cubos creados
previamente.Losplanesdemantenimientoylaconfiguracindealertasnosetratanpor
quedarfueradelalcancedeesteproyecto.
Lostrabajosofrecenelcontenedordeejecucinquenospermiteagruparunoomspasos
en un proceso que sea necesario ejecutar. Si bien muchos de los trabajos que se cree
tendrnunanicatarea,SQLServerpermitecreartrabajoscompuestospormultitudde
tareasparalasqueesposibleconfigurarelaccesoyaccionesdeconmutacinporerror.
Cadatareaounidaddetrabajoquedebarealizarseestcontenidaenunpasodetrabajo.
Los pasos de trabajo son los elementos de ejecucin dentro de un trabajo. Pueden
ejecutarselossiguientestiposdepasosdetrabajo:
TransactSQL.
Tareasdereplicacin.
Tareasdelsistemaoperativooarchivosejecutables.
TareasdeAnalysisServices.
PaquetesdeIntegrationServices.
ScriptsActiveX.
Aligualqueocurreconcualquiercdigoejecutable,cadapasodetrabajoseejecutabajo
undeterminadocontextodeseguridad.
Para cada paso de trabajo puede configurar opciones de flujo de control, adems de
opcionesderegistroynotificaciones.
Las opciones de flujo de control le permiten especificar una accin de xito o fracaso,
comosemuestraacontinuacin:
Abandonareltrabajoinformandodesuxito.
Abandonareltrabajoinformandodelfracaso.
Iralsiguientepaso.
Iraunnmerodepasoespecfico.
Adems de controlar las opciones de flujo, puede especificar el registro del paso. El
registropuededirigirseaunarchivoquesesobrescribircadavezqueelpasoseejecute,
o puede anexarlo a un archivo en ejecucin. Puede adems registrar el resultado de un
trabajoenunatabla,sibienporlogeneralestonoresultarecomendabledebidoalacarga
detrabajoextradelregistroentablafrentealregistroenunarchivodetexto.
AhoraqueyaconocemosunpocomssobrelostrabajosdelAgenteSQLServer,estamos
preparados para crear un trabajo. A continuacin se indican los pasos necesarios para
poder crear un trabajo que ejecute un paquete ETL desarrollado con SSIS y procese un
cubodesarrolladoconSSAS.Concretamente,elpaqueteETLyelcuboquevamosautilizar
175
paralacreacindeltrabajosonlosquehemosdesarrolladoparaelindicadordevisitas
familiares.
Paso1:Creacindeuntrabajo
A diferencia de SSIS, SSAS y SSRS que formaban parte de Business Intelligence
DevelopmentStudio,elAgenteSQLServerformapartedeSQLServerManagementStudio
(SSMS).Dadoesto,paracrearuntrabajoloprimeroquedebemoshaceresiniciardicha
herramienta.Concretamente,lospasosaseguirson:
1. Hacemos clic en Inicio, seleccionamos Todos los programas, seleccionamos
Microsoft SQL Server y despus, hacemos clic en SQL Server Management
Studio.
2. Cuando aparezca el cuadro de dilogo Conectar con el servidor, acepte las
opciones predeterminadas y haga clic en Conectar. La Figura G.1. muestra la
pantallaalaqueaccedemos.
FiguraG.1.PantallaprincipalSQLServerManagementStudio
3. HagaclicconelbotnderechoenelnodoTrabajosyseleccioneNuevoTrabajo.
4. Dunnombrealtrabajo,dejeelpropietarioqueaparezcapordefectoopongala
cuentasa,noseleccioneningunacategorayagregueunadescripcintalycomose
indicaenlaFiguraG.2.
176
FiguraG.2.VentanaconfiguracindeltrabajoIndicadorVisitasFamiliares
5. Seleccione la pgina Pasos y haga clic en Nuevo para abrir el cuadro de dilogo
Nuevopasodetrabajo.Enestecaso,vamosacrearelpasoqueejecuteelpaquete
SSIS.
6. Especifique un nombre para el paso, el tipo de paso como Paquetes de
Integration Services, deje la opcin Ejecutar como que aparece, ponga como
Origendelpaqueteelsistemadearchivos(Filesystem)eindiquelarutadondese
encuentraelpaquetequequeremosejecutar(FiguraG.3.).
FiguraG.3.VentanadeconfiguracindelpasoEjecutarPaqueteETL
177
7. HagaclicenlapginaAvanzadoyespecifiqueIralsiguientepasocomoAccin
en caso de xito, 1 como Nmero de reintentos para que vuelva a intentar
ejecutarelpaqueteySalirdeltrabajoeinformardelerrorcomoAccinencaso
deerror.
8. HagaclicenAceptarparaguardarelpaso.
9. Haga clic en Nuevo para crear el siguiente paso de trabajo en cual vamos a
procesarelcubo.
10. Especifiqueunnombreparaelpaso,eltipodepasocomoComandodeAnalysis
Services, deje la opcin Ejecutar como que aparece, ponga como Servidor la
mquinalocaleindiqueenComandolainstruccinXMLaejecutarqueaparecea
continuacin:
<Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>Proyecto Analysis Services</DatabaseID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
11. Haga clic en la pgina Avanzado (Figura G.4.) y especifique Salir del trabajo e
informar del xito como Accin en caso de xito, 1 como Nmero de
reintentos para que vuelva a intentar ejecutar el paquete y Salir del trabajo e
informardelerrorcomoAccinencasodeerror.
FiguraG.4.VentanaPropiedadesAvanzadasdelpasoProcesarcubo
12. HagaclicenAceptarparaguardarelpaso.
13. UtilicelasflechasqueaparecenenlapginadePasossideseacambiarelordende
lospasos.
Una vez que haya agregado uno o ms pasos a un trabajo, podemos especificar una
programacin. Las programaciones son objetos independientes y como tal, podemos
asignarlamismaprogramacinatantostrabajoscomoseanecesario.
178
Una programacinpuedecrearsebienatravsdelcuadrodedilogodeadministracin
deprogramaciones,obiendurantelacreacindeuntrabajo.Acontinuacinseenumeran
algunasdelaspropiedadesquepuedenconfigurarseparaunaprogramacin:
Tipodefrecuencia(diaria,semanal,mensual).
Recurrenciaaniveldiario,semanalomensual.
Recurrenciadentrodeundasobreunminutoocadahora.
Horasdeinicioyfin.
Fechadeinicioyfinparalavalidezdelaprogramacin.
Dichoesto,elsiguientepasoescrearunaprogramacinqueejecutediariamenteel
trabajoqueacabamosdecrear.
Paso2:Creacindeunaprogramacin
Paracrearlaprogramacindeuntrabajodebemosseguirlossiguientespasos:
1. Seleccionamos la pgina Programaciones de nuestro trabajo y hacemos clic en
Nueva para definir una nueva programacin diaria o bien hacemos clic con el
botn derecho en el nodo Trabajo, seleccionamos Manejar programaciones y
hacemosclicenNueva.
2. Rellenamos los datos relativos a la programacin taly como indica la Figura G.5.
paraqueeltrabajoseejecutetodoslosdasamedianoche.
FiguraG.5.Configuracindelaprogramacin
179
3. HagaclicenAceptar.
Al finalizar la creacin del trabajo y su respectiva programacin, slo falta ejecutar el
trabajo para ver que funciona correctamente y poder dar el proceso de creacin del
trabajoporfinalizado.
Paso3:Ejecucindeuntrabajo
Paraejecutaruntrabajo,hacemosclicconelbotnderechoen eltrabajoquedeseemos
ejecutar, seleccionamos la opcin Iniciar trabajo en el paso, especificamos el paso 1 y
hacemosclicenInicio.
Si el trabajo se ejecuta correctamente, en la ventana de progreso (Figura G.6.)
observaremos que pone xito. En caso contrario, podemos ver en qu paso se ha
producidoelerroryunadescripcindelmismo,haciendoclicconelbotnderechosobre
eltrabajoyseleccionandoVerhistorial.
FiguraG.6.Ventanadeprogresodeltrabajoejecutado
Sitenemosvariostrabajosejecutndosepodemossupervisarlaactividadactualdeesos
trabajosutilizandoelMonitordeactividaddetrabajo.
El Monitor de actividad de trabajo es accesible al expandir el Agente SQL Server en el
Explorador de objetos de Management Studio y seleccionar Ver actividad de trabajo.
Dichomonitorpermiterealizarlassiguientestareas:
Iniciarydetenertrabajos.
Verlaspropiedadesdeuntrabajo.
Verelhistorialdeundeterminadotrabajo.
LaFiguraG.7.muestraelMonitordeactividaddetrabajo.
180
FiguraG.7.Monitordeactividaddeltrabajo
Despusdeejecutareltrabajoycomprobarquetodofuncionacorrectamente,elproceso
decreacindeltrabajoconelAgenteSQLServerestfinalizado.
181
182
Fcilmanejo
Visibilidadentiemporealdelastendenciasdenegocio.
Mayorrapidezycalidadenlatomadedecisiones.
Ciclosmsbrevesdeanlisisyelaboracindeinformes.
Accesoainformacinrelevantecontenidaenmltiplesorgenesdedatos.
Ennuestrocasoeslaherramientautilizadapararealizarlaexplotacindelosdatosdelos
indicadores porque incorpora capacidades OLAP que permiten al usuario conectarse a
cubos de Analysis Services y explotar la informacin mediante tablas y/o grficas
dinmicas.
Enestetutorialaprenderemosarecuperarlosdatosdesdeuncuboyamanejarlastablas
dinmicas para poder explotar toda la informacin que nos proporciona el cubo.
Concretamente, utilizaremos el cubo desarrollado anteriormente para el indicador de
visitasfamiliares.
A continuacin se indican los pasos necesarios para conectar un libro de Excel con un
cubo de Analysis Services y utilizar una tabla dinmica para crear un informe de un
indicador.
Paso1:Configurarconexinconelcubo
LospasosaseguirparaconectarunlibrodeExcelconuncubodeAnalysisServicesson
lossiguientes:
1. Hacemos clic en Inicio, seleccionamos Todos los programas, seleccionamos
MicrosoftOfficeydespus,hacemosclicenMicrosoftOfficeExcel2007.
2. VamosalafichaDatos,enelgrupoObtenerdatosexternoshacemosclicenDe
otras fuentes y luego en Desde Analysis Services y se mostrar el Asistente
paralaconexindedatos.
3. En la pantalla de Conectar con el servidor de la base de datos, escribimos el
nombredelservidorOLAPdondeseencuentranuestrocuboenelcuadrodetexto
Nombre del servidor y seleccionamos Usar autenticacin de Windows como
Credenciales de conexin para usar el nombre de usuario y la contrasea
actualesdeWindows.Despusderellenarestosdatos,hacemosclicenSiguiente.
4. EnSeleccionelabasededatosquecontienelainformacinquedesea(Figura
H.1.),seleccionamoslabasededatos,nosaseguramosdequelaopcinConectar
con una tabla o a un cubo especfico est activada, seleccionamos el cubo de
VisitasFamiliaresyhacemosclicenSiguiente.
183
FiguraH.1.ConfiguracindelaconexinconelcuboVisitasFamiliares
5. EnlapantalladeGuardararchivodeconexindedatosyfinalizar,cambiamos
el nombre del archivo o dejamos el que aparece por defecto, cambiamos la
ubicacin predeterminada del archivo pulsando Examinar y opcionalmente
escribimosunadescripcindelarchivo,unnombredescriptivoyunaspalabrasde
bsqueda comunes. Es importante hacer clic en Intentar utilizar siempre este
archivoparaactualizarlosdatosparaasegurarnosdequesiempreseutilizael
archivo de conexin cuando se actualiza la tabla dinmica. De esta forma, se
asegurar de que todos los libros que utilicen ese archivo de conexin utilicen
siemprelasactualizacionesrealizadasendichoarchivo.
6. Haga clic en Finalizar para cerrar el Asistente para la conexin de datos y se
mostrarelcuadrodedilogodeImportardatos.
7. EnSeleccionecmodeseaverestosdatosenellibro,hacemosclicenInforme
detabladinmicayenlapartedeDndesituarlosdatos?,seleccionamosHoja
de clculo existente e indicamos la primera celda del rango de celdas donde
deseamos situar el informe de tabla dinmica. Finalmente, hacemos clic en
Aceptar.
Una vez configurada la conexin al cubo, estamos preparados para jugar con todas las
dimensiones de nuestro indicador e ir obteniendo informacin desde diferentes
perspectivas.Paraello,seleccionamoslasdimensionesenlaListadecamposdelatabla
dinmica que aparece en la parte derecha y las distribuimos en filas y columnas
utilizandolasreasqueaparecenenlaparteinferiordedichacolumna.
LaFiguraH.2.muestraunaposibleinstanciadelatabladinmicayelestadodelaListade
camposdelatabladinmica.Concretamente,queremossaberelnmerodevisitasque
hatenidocadaresidenteporao.
184
FiguraH.2.VistadelnmerototaldevisitasporaoyresidentejuntoconlaListadecamposdela
tabladinmica
EncasodequeperdamosdevistalaListadecamposdelatabladinmica,simplemente
tenemos que hacer clic en la tabla dinmica para volver a visualizarla o bien ir a la
pestaadeOpcionesyenelgrupodeMostrar/OcultarseleccionarListadecampos.En
enesegrupotambindondeindicamossideseamosonoverlascabecerasdeloscampos.
Trasjugarunpococonlatabladinmica,elsiguientepasoescrearalgngrficoquesirva
deapoyoalainformacinproporcionadaporlatabladinmica.
Paso2:Creacindeungrfico
Dependiendodeltipodegrficoquedeseemosutilizar,serequerirquelosdatostengan
unadisposicinuotra.Cuandotengamosladisposicindedatosadecuadaparaelgrfico,
debemosrealizarlassiguientesacciones:
1. Seleccionamos las celdas que contienen los datos que deseamos utilizar en el
grfico.
2. En la ficha Insertar, en el grupo Grficos, hacemos clic enel tipode grficoque
queremos y a continuacin, hacemos clic en el subtipo de grfico que queremos
(FiguraH.3.).Siloquequeremosesvertodoslostiposdegrficosdisponibles,al
hacerclicenuntipodegrfico,debemoshacerclicenTodoslostiposdegrfico
ysenosmostrarelcuadrodedilogoInsertargrfico.
185
FiguraH.3.Ejemplodeinsercindeungrfico
Paso3:Aadirunfiltro
Los datos pueden ser filtrados de diferentes maneras. Una de ellas es seleccionar para
cada campo que aparece en la Lista de campos de la tabla dinmica los valores que
deseamosmostrar utilizando la flecha que aparece junto al campoylaotraesarrastrar
loscamposdedichalistaalreaFiltrodeinformeparaquenosaparezcaelfiltroenla
hoja de Excel. En nuestro caso vamos a utilizar la segunda para poder filtrar la
informacinde losgrficosdemanera dinmica.Lospasosaseguirparaaadir unfiltro
son:
1. Arrastre los campos por los que desea filtrar la informacin al rea Filtro de
informe y encima de la tabla dinmica aparecer el filtro que acabamos de
seleccionar.
2. Seleccionarlosvaloresquedeseamosfiltrarhaciendousodelaflechadesplegable
queapareceenelfiltro(FiguraH.4.)yhagaclicenAceptar.
186
FiguraH.4.Listadevaloresdisponiblesporlosquepodemosfiltrar
Hasta el momento sabemos cmo conectar un libro de Excel con un cubo, utilizar las
tablasdinmicas,creargrficosyfiltros.Portanto,paraelaboraruninformecompletode
nuestro indicador, lo nico que falta es analizar la informacin desde diferentes
perspectivasyguardarcadaunadeestasperspectivasenunapginadiferentedellibro
de Excel. Cada perspectiva incluir una instancia de la tabla dinmica y una serie de
grficosyfiltros.
Concretamente,laformadeestructurarelinformequeproponemoseslasiguiente:
En la primera hoja siempre ha de aparecer una tabla resumen del indicador que
sea lo suficientemente significativa como para obtener toda la informacin
recogidaagrandesrasgos.
Cadaunadelashojassucesivas,hadeserunavistaparcialdelindicadorquerecoja
slociertosaspectosdelmismo.Dichavistaconstarbiendeunatablaresumeno
deunatablaresumenconungrficoasociado.
Dado que cada hoja va a necesitar una conexin al cubo, para asegurarnos de utilizar
siemprelamismadebemosiralafichadeDatos,hacerclicenConexionesexistentesen
elgrupoObtenerdatosexternosyseleccionarlaconexinutilizadaanteriormente.
Una vez analizado nuestro indicador desde todas las perspectivas de inters, debemos
guardarelinformeysedarelprocesodecreacindelinformeporfinalizado.
187
188
FiguraI.1.Ejemplodescorecard
Entendiendo por reports cada uno de los archivos de Excel que construimos durante el
proceso de desarrollo de indicadores, las vistas de reports son grficas o tablas
contenidasenunreport.
A continuacin se indican los pasos necesarios para poder crear un dashboard en un
portal de Sharepoint usando un informe creado en Excel. Suponemos que el portal en
cuestinhasidopreviamentecreado.
Paso1:Subirunreportalalibreradereportsdelportal
En lo que respecta a los reports, stos pueden ser creados y posteriormente subidos al
portal de Sharepoint o creados directamente desde dicho portal. En nuestro caso, los
189
reportssoncreadosalfinalizarelprocesodedesarrollodelosindicadoresyportantolos
pasosaseguirparasubirelreportsonlossiguientes:
1. Abrimos un navegador de internet e introducimos la direccin URL del portal de
Sharepoint.
2. SeleccionamoslapestaaReportsypinchamoselenlaceReportsqueapareceen
labarradenavegacinlateral.
3. Pinchamos la lista desplegable junto al men Upload y seleccionamos Upload
Document(FiguraI.2.).
FiguraI.2.Cargadeunreport
4. Pulsamoselbotn Browseparabuscarelarchivoquedeseamoscargarycuando
loencontremoshacemosclicenOK.
5. Revisamoslainformacindelreport,aadimosunabrevedescripcindelmismosi
lodeseamosypulsamoselbotnOKparasubirelarchivo.
Una vez completada la accin, veremos que el report que acabamos de subir ha sido
aadidoenelapartadoReportsLibrary.
Paso2:Subirlaconexindelreportalportal
ParasubirunaconexinasociadaaunreportdeExceldebemos:
1. Pinchar el enlace de Data Connections que aparece en la columna situada a la
izquierda y a continuacin seleccionar Office Data Connection File de la lista
desplegablejuntoalmenNew(FiguraI.3.).
FiguraI.3.Creacindeunaconexin
190
FiguraI.4.Aprobacinconexin
Alahoradeconsultarlosreports,elusuarionovaaverlashojasdeExceltalcual,sino
queslovaaverloselementosqueaparecenenellasdemaneraindividualjuntoconlos
elementosquenosotroshemosdefinidoenellas,esdecir,nosotrospodemosseleccionar
rangos de celdas en la hoja Excel y darles un nombre para que dicho rango sea
consideradocomounelementomsdelreport.Estoestilparaaquellasocasionesenlas
quedeseemosveralavezunatablaresumen,sugrficoasociadoysusfiltrosencasoque
lostuvieradefinidos.Portanto,elusuarioescapazdevercadaunadelastablasogrficos
queaparecenenelreportytodoslosrangosdeceldasquehayamosdefinido.
Portodolodichoanteriormente,sededucequeesdevitalimportanciadotaracadauno
de los elementos del report de un nombre adecuado para que el usuario sepa
exactamenteloquerepresentacadaelemento.PorcadahojadeExceldelreport,debemos
darlenombrealahojapropiamentedicha,alatablaresumen,algrficoasociadoadicha
tablayalrangodeceldasquecontienentantolatablaresumenconsusfiltrosasociados
comoelgrfico.
Dichoesto,elsiguientepasoarealizareseditarelreportparadotardenombreatodos
loselementosquehayamosdefinidoenl,esdecir,dotardenombreatodaslasvistasy
demselementoscontenidosenelreport.
Paso3:Ponernombrealasvistasydemselementosdeunreport
Lospasosarealizarparadotardenombreatodosestoselementossonlossiguientes:
1. Seleccionar de la lista desplegable que aparece junto al nombre del report que
hemossubidolaopcindeEditinMicrosoftOfficeExcel.
191
2. PonemosnombreacadahojadelExcelhaciendoclicconelbotnderechosobreel
nombredelahojayseleccionandoRename.
3. Cambiamoselnombredelastablasdinmicashaciendoclicconelbotnderecho
sobre la tabla, seleccionando PivotTable Options, editando el campo Name y
pulsandoOK.
4. Seleccionamoselgrfico,vamosalafichaLayoutymodificamoselChartName.
5. Seleccionamos el rango de celdas que cubre tanto la tabla resumen con filtros
comoelgrficoasociado,hacemosclicconelbotnderecho,seleccionamosName
aRange,ponemoselnombrecorrespondienteyhacemosclicenOK.
Unavezhemosdotadodenombreatodosloselementosdelreport,parapoderverluego
lalistadesplegabledeelementosdondeseleccionamoselelementoquequeremosver,en
elcuadrodedilogoqueaparececuandovamosaguardarelreport,debemosmarcarla
pestaaPublishyseleccionarExcelServices(FiguraI.5.).
FiguraI.5.CuadrodedilogoPublishconlaopcinExcelServicesmarcada
Paso4:Consultarlasvistaspreviamentedefinidas
Enestemomento,loquetenemoseselreportcorrectamenteestructuradoenvistaspara
poderserutilizadasenlaelaboracindeldashboard.
Para consultar el report, tan slo debemos pinchar el enlace asociado al nombre del
mismo o seleccionar de la lista desplegable asociada al mismo la opcin View in Web
192
Browser.Alpinchardichoenlace,vamosaunapgina(FiguraI.6.)dondesenosmuestra
uno de los elementos del report, que en este caso debera ser la tabla resumen de la
primerahojadelreport,esdecir,aquellaqueresumetodalainformacinimportantedel
reportqueestamosconsultando.Endichapgina,tenemoslapestaaView,lacualtiene
asociadaunalistadesplegablequecontienetodosloselementosdelreportquepodemos
consultar.Seleccionandocadaunodelosdiferenteselementosdedichalista,conseguimos
movernosporelcontenidodetodoelreport.
FiguraI.6.Vistadeunelementodelreport
Cuandotenemoselreportcorrectamenteestructuradoenvistas,losiguienteescrearun
dashboardqueusedichasvistasydefinirunscorecard.
Paso5:Crearundashboard
Alahoradecrearundashboarddebemos:
1. PincharelenlaceDashboardsqueapareceenlabarradenavegacinlateralosi
estamos en la librera de informes, seleccionar la opcin Dashboards del
desplegableasociadoaView.
2. HacemosclicenNewyseleccionamosDashboardpage.
3. Rellenamosloscamposrelativosalnombreyttuloydejamoselrestodecampos
talycomovienenpordefectoyhacemosclicenOK(FiguraI.7.).Deestaforma,el
dashboard que creemos estar compuesto por dos columnas verticales y tendr
unalistadeKPIsautomticamente.
193
FiguraI.7.Ventanacreacindeundashboard
Todo dashboard est estructurado en zonas (webparts). Las webparts pueden ser de
diferentestipos:
ExcelWebAccess:MuestrantablasogrficasdeunlibroExcel.
Filtros: Los hay de diferentes tipos y permiten mostrar los datos del dashboard
segnciertosparmetros.
Paso6:Definirwebpartsparamostrarelcontenidodelreportoreports
Ahora vamos a aadir un conjunto de webparts de tipo Excel Web Access que nos
permitirnmostrarelcontenidodelasvistasdefinidasenlosreports.Paraellodebemos:
1. Pinchar el enlace asociado al dashboard y luego seleccionamos Open the tool
paneobienpinchamosEditPageenlapartesuperiordelapginatalycomose
indicaenlaFiguraI.8.
194
FiguraI.8.Formasdeeditarundashboard
2. Cuandonosencontremosenmodoedicin,pinchamosAddawebpartyaparece
uncuadrodedilogo(FiguraI.9.)dondedebemosseleccionareltipodewebpart
quequeremosaadir,enestecasoExcelWebAccess.
FiguraI.9.CuadrodedilogodeAddawebpart
FiguraI.10.Formasdemodificarunawebpart
4. Alseleccionarcualquieradelasdosopciones,apareceunpanelaladerechaenel
que debemos rellenar toda una serie de campos relacionados con la webpart de
Excel. Concretamente, en la Figura I.11. que aparece a continuacin estn
marcadoslosmsrelevantes.
FiguraI.11.Camposarellenarenlaconfiguracindeunawebpart
5. ElatributoWorkbookeselreportalquevamosahacerreferenciaenlawebparty
elNamedItemeselelementoquequeremosquesalgapordefectoenlawebpart,
aunque este ltimo no es necesario ponerlo. Si queremos ponerle un ttulo
nosotrosalawebpart,esimportantedesmarcarlaopcindeautogenerarelttulo.
Alahoradeajustarlasdimensionesdelawebpart,debemoscambiarlosvalores
de Heighty Widthhastaencontrarunosvaloresqueseajustenalasdimensiones
deseadas.
6. Para especificar la situacin concreta de la webpart en el dashboard, debemos
cambiarelatributoZoneeindicarsiqueremosquelawebpartestarriba,abajo,
derecha o izquierda. En el caso que hayamos escogido una distribucin en 3
columnasdeldashboard,tambintendremoslaposibilidaddesituarlaswebparts
enelcentro.
196
Paso7:DefinirunawebpartparamostrarunalistadeKPIs
UnavezhayamosdefinidotodaslaswebpartsquereferencianarchivosExcel,eshorade
definirlosKPIsobrelosreportsquetenemosdefinidosparalaempresautilizandolalista
deKPIsquehasidogeneradaautomticamentealcreareldashboard.Paraelloseguimos
lossiguientespasos:
1. ParacrearunKPIdebemosiralawebpartquecontienelalistadeKPIsypincharla
lista desplegable que aparece junto al men New (Figura I.12.). Tal y como se
observa, podemos crear un indicador KPI de varias formas, segn si utilizamos
KPIsyadefinidosenotraplataforma,siutilizamoslosdatosexistentesenunlibro
Excel o si insertamos la informacin del KPI manualmente. En nuestro caso, de
momento slo vamos a definir KPI basados en la informacin contenida en
archivosExcel.
FiguraI.12.CreacindeunKPIusandounlibroExcel
FiguraI.13.PropiedadesdelKPI
197
3. Enelcampoquenospidequceldaindicaelvalordelindicador,debemosabrirel
archivoExcelasociadoyseleccionardichacelda.Adems,debemosindicarculera
elobjetivodelaempresaparaeseindicadoryelvalorapartirdelcuallaempresa
considera que ese objetivo se encuentra en parte satisfecho. Ambos valores los
podemosintroducirmanualmente(FiguraI.14.)obienusandolasceldasdelExcel
encasoqueestuvierandefinidos.
FiguraI.14.EjemplodeumbralesdeKPIintroducidosmanualmente
4. Finalmente,indicamoscmoseinterpretanlosvaloresdelindicador(FiguraI.15.),
es decir, si stos son mejores cuanto ms grandes o no y el icono con qu
representamos cada uno de los estados del indicador en funcin de su grado de
satisfaccin.
FiguraI.15.InterpretacindelosvaloresdelKPI
5. DefinimosdelamismaformaelrestodeindicadoresKPIycuandoyaloshayamos
definidotodosynotengamosqueaadirmswebparts,seleccionamoslaopcin
deguardarypararlaedicindelapginasituadaenlapartesuperiordelapgina.
EnloquerespectaalosKPIs,existendiferentesiconospararepresentarelestadodecada
unodelosindicadores.Paracambiardeuntipodeiconosaotro,debemosseleccionarla
198
opcinIconsdelalistadesplegableasociadaaActionsyelegireltipodeiconodeseado
talycomoindicalaFiguraI.16.
FiguraI.16.SeleccindeltipodeiconosdelosKPIs
Adems,siloqueremosesmostrarsloaquellosKPIscuyogradodesatisfaccinnoesel
deseado(FiguraI.17.),tanslodebemospincharlaopcindeShowOnlyProblems.
FiguraI.17.KPIsnosatisfactorios
CuandohayamosacabadodedefinirtodoslosindicadoresKPI,elprocesodecreacindel
dashboardhabrfinalizado.
199